Python运维监控系统之架构设计

        说起Python这门编程语言的作用,可以列举很多方面,其实每一门流行的编程语言都可以列举很多方面,但是要说起Python的主要领域,莫过于运维监控方面,在这方面有大量优秀的开源运维系统。

        虽然有很多优秀的开源运维监控系统,如Nagios、Zabbix、Prometheus、Grafana,但是当你真正在线上企业环境面对各种各样实际需求时,总感觉不够自己需要,这些系统提供的二次开发功能,要么自己不喜欢这些语言,要么自己不喜欢这种具体的模式,总想自己弄一个简单的、自己随意想怎么开发就怎么开发的系统来,所选择的主要语言自然是Python,因为Python简单,但又不像shell脚本那么过于简单。

        在我的运维经验里,基础资源的监控其实不重要,如CPU,内存,磁盘和网络等,这些不是说不要监控,而是随便用一个开源的系统就监控到了,如我们用Prometheus+Grafana就解决了,只要正常就行,其它部门对这个根本没特殊需求。但是,对业务系统的监控,对业务数据的监控和分析,这个需求就多了,各个部门可能都需要一些数据,严格讲这些数据应该是数据分析人员去做的,但是中小功能哪里有那么多岗位细化,在客户现场环境,公司驻点的唯一工程师就是运维工程师,他必须搞定一切,如果这些数据每次提取都是手工去用各种系统提供的命令行去做,速度可想而知,比如mysql表用sql查询一下,elasticsearch索引数据在kibana上查询一下,milvus特征向量数据统计用pymilvus脚本去统计,每天运维工作中这种比率将很大。

        

         上图给出了一种运维监控平台架构的设想,DataOps是一个通俗的名字,现在DevOps、DataOps、AIOps,到处都是概念,但是我感觉用数据说话的思路是最靠谱的,最基本的指标数据容易做的到,运维人员也容易理解,也容易去执行。AIOps太高级,运维人员未必能理解;DevOps太难搞,毕竟多个部门协作说的好听,效果能到哪里很难。

        这个架构的一个想法就是把各种指标数据推送到数据库里存储起来,然后前端来查询,技术上就这么简单,提倡的是一个个细节要做好,就是能不能真正去采集各种各样的有用的数据指标,能不能及时提供监测业务系统正确性的数据指标,是不是能做到,上线一个业务功能,运维部门能及时开发一个采集组件及时的配套上业务功能。

        有时候功能强大的运维监控系统对一个中小企业就是一个废品,架构师和主管组织上马了一个强大的运维监控系统让运维部门去使用,之后到底效果怎么样谁也不管,最后运维人员还是习惯用手工命令操作一下,搞几个他认为重要的,或者公司同事要他查询的,其它的一切不理。当然不光是运维系统,好多业务系统也是一样。

        我的DataOps系统核心还是把各种指标数据写入MySQL数据库,其实和Prometheus是一样的,都是采集时序数据指标,那为什么不直接用Prometheus呢? 其实我们已经用了Prometheus系统,但是运维人员就是搞不明白它,上线了也没真正用上,更不会用Prometheus客户端库写探针功能,而且我们也不喜欢Prometheus主动去连接各个探针的模式,开防火墙规则都麻烦死。

        opsstash就是承担了Prometheus的角色,只是opsstash是服务器,让各种beat来主动连接,一般采取短连接方式,数据封装采用JSON格式,尽量的简单,比如Python编写beat的话,用request库就搞定了,一般运维人员都能搞定,比Prometheus的客户端库和模式简单多了。opsstash用Flask框架实现一个API接口就行,支持各种指标数据推送即可,加上安全令牌身份证认证,一个服务接口就解决了所有的时序指标数据入库。

        opsapi提供各种指标数据项的查询接口,供运维前端系统调用,可能各个指标的查询条件、排序字段、显示字段的要求各不相同,这个就必须一个指标项一个API接口,但是基于Flask+SQlAlchemy框架,可以用Python写一个自动生成API接口模块的Python代码的工具程序,这个目前已经实现。

        opsweb是运维前端web系统,所有指标数据都要在这里展示,运维人员主要在这个系统界面上每日观察分析数据。运维人员99%都是在看运维指标数据,所以分页表格展示是最常用的,选择Amis低代码框架来实现前端web系统,只需要去生成JSON文件就可以轻松得到一个web界面,大大减少了开发门槛,因为中小公司的运维团队,不大可能擅长vue、react等,jquery系列库也搞不定,Javascrip语法都未必能学习好,唯一JSON语法是最简单的。而且,我也用Python写了一个自动生成简单web界面的工具程序,实现了对一张MySQL表数据进行分页表格显示,提供过滤条件和排序功能等,在这个基础上手工加JSON配置来实现更多特有功能,还是很简单的,百度开源的Amis低代码框架确实不错。

        opsmobile是一个想法,毕竟用手机监控是比较常见的,一套API服务接口给多种前端使用也是很正常的。另一个重要原因是我司的系统部署特点,基本都是在客户封闭的内网里部署,互联网是不可以访问的,只有客户颁发给我们特有的手机才可以访问这个内部网络,只能用这种手机才能远程监控系统。

        总之,DataOps系统是侧重于指标数据要多要强大,而使用的技术越简单越好,希望能用Python全部解决,不需要用Go、Java、C/C++等比较难的语言来实现。DataOps也需要和Promethues、Loki、ELK对接,那些现成的基础通用的数据指标采集,用这些开源组件实现就好了,比如CPU、内存、磁盘和网络等,没必要自己用Python写一通,我们写各种beat主要是针对业务系统指标,对业务数据进行统计分析采集,业务数据监控其实比基础资源数据更重要。

        

        

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/170819.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法设计与分析算法实现——删数问题

通过棋盘输入一个高精度的正整数n(n的有效位数<=240)去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。变成对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 输入:n,s 输出:最后剩下的最小数 输入实例: 178543 4 输出示例: 13 首先…

U盘恢复怎么做?3个宝藏方法分享!

“我经常都会把各种数据保存在u盘中&#xff0c;但是不知道为什么&#xff0c;有时候经常会出现u盘数据丢失的情况。有什么方法可以恢复U盘吗&#xff1f;请朋友们给我出出主意吧&#xff01;” 由于u盘的小巧便捷&#xff0c;很多用户都会选择将文件保存在u盘中。但是在使用u盘…

Windows10环境下Python解析pacp文件

Windows10环境下Python解析pacp文件 一、背景 在Python中,你可以使用scapy库来解析pcap文件。scapy是一个功能强大的网络分析工具,可以用于解析、构建和发送网络数据包。 二、环境安装 命令在终端中安装: pip install scapy由于我使用的Pycharm,所以我就直接在Python Int…

Java零基础-Mybatis篇

【Mybatis】 1.JDBC不足 JDBC作为Java操作数据库的模板&#xff0c;如果想要对数据库进行操作&#xff0c;必须使用JDBC&#xff0c;但是在使用JDBC进行数据库操作时&#xff0c;重复代码多&#xff0c;动态SQL构建繁琐&#xff0c;将查询结果转化为对象&#xff0c;相当麻烦…

hologres 索引与查询优化

hologres 优化部分 1 hologres 建表优化1.1 建表中的配置优化1.1 字典索引 dictionary_encoding_columns1.2 位图索引 bitmap_columns1.2.2 Bitmap和Clustering Key的区别 1.3 聚簇索引Clustering Key 1 hologres 建表优化 1.1 建表中的配置优化 根据 holo的 存储引擎部分的知…

【Python测试开发】:切换窗口和表单

一、多窗口切换 浏览器打开的窗口其实会有一个叫做句柄的概念。 句柄就类似于每一个标签页的ID一样&#xff0c;具有唯一性。 1.1 语法 获取当前窗口句柄&#xff0c;注意后面没有括号哦~ driver.current_window_handle获取所有窗口句柄&#xff0c;结果以列表格式存储&am…

Simulia 2022 新功能

增材制造 达索系统增材制造解决方案实现了端到端一体化全流程解决方案&#xff0c;可以实现从原材料研究到创成式设计、工艺设计、工艺仿真仿真、并且还延续到增材制造完成后的热处理、线切割等工艺&#xff0c;涵盖了各个方面的内容。 达索系统针对增材制造各个环节在每一个…

一整个分析模型库,大数据分析工具都这么玩了吗?

一整个分析模型库&#xff0c;100张BI报表&#xff0c;覆盖销售、财务、采购、库存等多个分析主题。只需对接ERP&#xff0c;就能自动生成BI报表&#xff0c;完成对海量数据的系统化分析。现在大数据分析工具都发展到这种程度了吗&#xff1f; 放眼看去&#xff0c;现阶段能做…

在线客服系统源码 聊天记录实时保存 附带完整的搭建教程

在线客服系统是一个企业网站进行网络营销的最重要的工具。企业进行网络宣传后&#xff0c;会有很多访客进入到网站&#xff0c;这时候网站就需要有在线客服人员进行接待&#xff0c;及时的与访客进行沟通&#xff0c;才能留住访客&#xff0c;变流量为销量。 在线客服系统可以…

销售团队可以借助CRM系统做什么?

销售主管都想有一支效率高、质量高的销售团队&#xff0c;无论对于初创企业还是大型企业销售团队都是企业盈利的主力部门&#xff0c;直接为企业带了业绩。如何提升销售团队水平&#xff1f;离不开CRM系统的辅助&#xff0c;CRM软件能为销售团队提供哪些支持&#xff1f;下面我…

队列OJ--循环队列

目录 题目链接&#xff1a;622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09;​​​​​ 题解&#xff1a; ​编辑 代码实现&#xff1a; 完整代码&#xff1a; 题目链接&#xff1a;622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09;​​​​​ 题解&#x…

高质量简历写作求职通关-前言

(点击即可收听) 在如今大内卷的环境下 无论哪个行业,都竞争激烈 2023年的毕业生人数已达到1158万人&#xff0c;本科毕业人数约700万人&#xff0c;研究生毕业人数约119万人 其中,北京市的就有28.5万名高校毕业生中&#xff0c;硕博毕业生人数首次超过本科生... 可见学历的通胀…

各类Linux操作系统如何选择?

各类Linux操作系统如何选择&#xff1f; 企业级应用&#xff1a;RHEL/CentOS 桌面平台&#xff1a;Ubuntu 开源服务器&#xff1a;CentOS 1.1 RedHart 1.1.1RHEL RHEL是指Red Hat Enterprise Linux&#xff0c;是由Red Hat公司开发和维护的一款商业Linux操作系统。它是基于…

【Unity细节】如何调节标签图标的大小(select icon)—标签图标太大遮住了物体

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 &#x1f636;‍&#x1f32b;️收录于专栏&#xff1a;unity细节和bug &#x1f636;‍&#x1f32b;️优质专栏 ⭐【…

teambition迁移云效

由于TB(行云)停止运营了&#xff0c;可惜了&#xff0c;非常好用的一个工具&#xff0c;项目管理&#xff0c;代码管理&#xff0c;自动化构建等&#xff0c;都支持。现需要切换到云效(https://codeup.aliyun.com/)。这个工作量确实挺大的&#xff0c;像我有N个公司*N个项目的&…

企业要满足什么条件才能实施CRM系统?

CRM的作用相信大家也所有了解&#xff0c;但并不是所有的企业都适合实施CRM。或者说&#xff0c;大部分企业实施CRM并不会100%的成功。那么&#xff0c;企业实施CRM的条件是什么&#xff1f;下面我们就来说一说。 1、业务规模 如果您的客户数量较少&#xff0c;没有复杂的客户…

.skip() 和 .only() 的使用

.skip() 和 .only() 的使用 说明 在做自动化测试中&#xff0c;跳过执行某些测试用例&#xff0c;或只运行某些指定的测试用例&#xff0c;这种情况是很常见的Cypress中也提供了这种功能 如何跳过测试用例 通过describe.skip() 或者 context.skip() 来跳过不需要执行的测试…

微信表情太大怎么缩小?一分钟教会你!

在微信的较早版本中&#xff0c;单个表情的最大体积限制为500KB&#xff0c;而在后续版本中&#xff0c;这一限制已经放宽。目前&#xff0c;微信允许上传的单个表情最大体积为2MB。所以&#xff0c;我们只需要把图片或者GIF缩小到2MB即可&#xff0c;下面就向大家介绍三种实用…

2023最新国内外项目进度管理软件排行榜(推荐)

介绍8款优秀的在线项目管理软件&#xff0c;其中进度猫、Trello、Clarizen、Asana、MeisterTask、ClickUp和Wrike都是以甘特图为核心进行项目管理&#xff0c;而monday则是低代码项目管理软件&#xff0c;提供一站式的工作记录和管理。这些软件都可以帮助项目经理更有效地管理项…

打工人必备!6个超级实用的办公软件,让你高效完成工作

在现代职场中&#xff0c;办公软件已经成为我们工作中不可或缺的利器&#xff0c;能够让我们的工作变得更加高效和便捷。今天就给大家分享6个超级实用的办公软件&#xff0c;让你高效完成工作&#xff01; 1、滴答清单&#xff08;待办事项软件&#xff09; 滴答清单是一款功能…
最新文章