【Python之旅】第八篇:开发监控软件的思想与流程

  • 时间:
  • 浏览:2

知道监控软件的思想流程有何作用?

    当然,以时需用Python做的事情,就真的是太多太多了。

4.怎样才能从服务器端获得监控项目的配置信息

    今年5月份,接手了学校2000多台交换机的管理,发现对交换机的监控虽然是太弱,2000台交换机,上万的用户,竟可不可以能 另另有二个可不可以能 通过屏幕界面来进行查看的监控平台,之前 ,更不须自动报警功能了,迫于五种无奈,我上网找了太多太多相关的监控软件,要么都是收费的,要么是使用不了,要么太多太多操作起来非常非常僵化 的,之前 ,先要下手。虽然我的需求很简单,太多太多希望可不可以看得人交换机有没办法 挂掉,之前 将会挂掉了,可不可以给我打个信息将会打个电话,是曾经五种轻量级的监控软件就好了。

2.怎样才能出理 获得的监控指标信息

为哪此要学习Python自动化运维开发?

    服务器端要考虑的则更多了,在这里,面向对象的编程思想就显得犹为重要了,当然,监控数据的接收与埋点、出理 、报警太多太多容易。

5.通过哪此最好的土办法将获取的监控信息发送给服务器端

1.用面向对象的编程思想实现不同主机监控项目的模板定制

    我以前以前之前 之前 刚开始看得人上方的监控软件示意图时,感觉应该太多太多会先要的,但当我跟着一步一步去做时,才实现这上方要考虑和出理 的问题报告 虽然是太多太多,总结起来,要出理 的问题报告 ,将会说基本的实现流程与思想,简单的总结可不可以如下:

对于服务器端:

    前面虽然将会说过,依然是通过Redis数据库的订阅服务功能来进行接收,将会五种最好的土办法要改变,没办法 在客户端主机中也应该进行相应的更改,这里对应客户端出理 问题报告 中的第5点。这里,可不可以单独写另另有二个多多线程 运行来跑另另有二个多多线程 运行运行,把接收到的数据,根据上方出理 数据时的需求,再换成相关的信息来重新整合接收到的监控数据,再保存到Redis数据库中去,再由监控数据出理 多多线程 运行去进行出理 ,即handle多多线程 运行,并不一定要曾经做,是为了要降低多多线程 运行之间的耦合度,以方便以前对监控软件进行功能上的扩展。

    这里单独写另另有二个多多线程 运行跑另另有二个多多线程 运行运行,从Redis数据库中读取不同主机不同监控项目的监控信息,之前 将哪此监控信息与第1步定制的模板中的指标阀值进行比对(太多太多第一步写的内容信息不仅仅是监控项目配置信息模板,也应该还有不同指标和阀值的相关设定),将会发现有异常请况的,即将异常请况信息保存下来,写入到Redis数据库中,等候报警多多线程 运行进行相关出理 以实现报警功能,曾经分开来做的目的依然是为了降低多多线程 运行之间的耦合度。另外这里时需注意的是,监控数据的出理 也应该是基于不同的监控项目的(对应客户端中的第2点),而都是基于不同的主机,将会不同的主机的不同监控项目的监控频率可不可以是不一样的。

 最近两周时间里,时不时 都是学习监控软件的开发,虽然是简版的,曾经在五种过程当中,对于要开发另另有二个监控软件的要花费 框架和流程还真的学习了太多太多东西,之前 也想,哪此知识虽然是先要通过看文章将会是书籍能学习得到,可不可以能 另一方亲自去实践过,你要才可不可以慢慢体会到这上方的不易吧。而通过曾经另另有二个过程,发现另一方在这方面的思想枷锁也慢慢地打开,也才慢慢体会到那种乐趣吧。这里,真的是非常感谢Alex老师非常精彩的讲解。

    不管怎样才能,往时会学习的知识将会说技术,真的是太多太多,希望另一方不须放弃,继续努力下去吧!

    当然,实际中学习的过程中并没办法 去监控MySQL将会是ngnix,而太多太多监控Linux服务器的CPU、内存、load的各项相关指标,不过我虽然这倒没哪此问题报告 ,将会思想和框架出来了,上方要监控哪此,自然而然也就很轻松了,把插件写好,之前 换成到监控项上方去就OK了。

    到了今年9月,虽然是无奈,可不可以能 另一方去学开发,那种求人不如求己的感觉没办法 强烈。

客户端:读取监控配置信息-->以前之前 之前 刚开始英文监控-->获得监控数据-->发送给服务器端

    不管怎样才能说,监控软件的大致开发过程将会说是开发的流程与思想应该是跟上方说的例如于的,太多太多基于不同的功能、不同的需求、不同的最好的土办法,在实际开发的过程当中又有太多细节的不一样,总的来说,流程看起来不需要先要,但具体到每另另有二个细节的实施,需要花费 的精力,你太多太多非常非常多的,而这,应该是时需一定的经验的。但无论怎样才能,将会知道了要花费 的开发流程,之前 另一方动手实践过,太多太多以前在另一方时需开发相关监控软件时,根据另一方的需求,再按照上方的思想流程去做,你要,从最基本的以前之前 之前 刚开始英文做起,是一定可不可以开发出一套适合实际生产环境的监控软件的。

4.怎样才能进行报警

1.怎样才能获得时需监控的指标项目

3.监控数据怎样才能出理

    这里也应该单独写另另有二个多多线程 运行来进行报警功能的实现,从Redis数据库中读取报警信息后,怎样才能将哪此信息进行报警,是直接在屏幕输出?还是邮件?还是短信?还是电话?以及将哪此信息发给哪个相关负责人?基于上方的哪此不同需求,要构思的应该又不少了。

    不管怎样才能说,在学习了这方面的知识后,发现虽然要开发具有我上方所说功能的交换机功能的监控软件,在流程上方就要比前面说的那个要简单太多太多,太多太多你要,这是先要实现的。

    继续Python开发的学习,在上方学习了Web开发相关的知识后,我是希望通过另一方的能力可不可以开发另另有二个较为完善的基于另一方实际时需的交换机监控系统。

3.监控项目的配置信息获取最好的土办法

服务器端:读取监控数据-->监控数据出理 -->保存异常信息-->实施自动报警

    太多太多对于上方的另另有二个流程的概述,可不可以更进一步总结如下:

    将会用的是3中的最好的土办法策略,没办法 客户端怎样才能从服务器端去取?这时就可不可以借助Redis数据库的订阅服务功能了,基于Redis数据库的底部形态,只是在服务器端和客户端都安装并运行了Redis数据库,问题报告 就很好出理 了。当然,这里时需获取的重要配置信息应该是:这台主机监控的项目是哪此?监控频率是2个?

    比如你要监控CPU,具体你要监控CPU的哪此信息,哪此指标,如idle、nice等,你要去哪里找哪此配置信息?多长时间监控一次,即监控的频率是2个?有想法是可不可以直接在客户端上另一方设置,但将会曾经做句子,依然是考虑到软件的扩展问题报告 ,将会以时需监控的服务器主机太多太多,那都是要在每一台客户端主机上进行设置?既然是监控,那倒不如考虑在服务器端设置客户端的信息,即配置文件,之前 可不可以由客户端直接从服务器端获取,曾经当监控多台主机时,只是在服务器端进行相应的设置,客户端跑个客户端多多线程 运行就可不可以了,集中、统一管理的思想由此而体现出来。但问题报告 的关键是,哪此配置信息,客户端怎样才能去服务器端取?

    例如于将会你要监控的是CPU的请况,我该怎样才能去获得CPU的相关指标信息,通过哪此最好的土办法将会说哪此命令,五种步实现以前,虽然得到的太多太多另另有二个监控CPU的插件,五种插件应该尽量独立,即不受其它多多线程 运行的影响,与其它多多线程 运行之间的耦合度要低,总之,五种插件的功能,太多太多可不可以得到你要要的监控指标信息。

    主太多太多指客户端对哪此监控指标信息数据的出理 ,这里应该涉及到的问题报告 ,获得监控的指标信息后,应该是基于另另有二个监控项目来保存,还是要基于一台被监控的主机来保存指标信息。比如我监控了一台主机的CPU、内存、load后,我是应该把这三者分别保存为另另有二个数据底部形态,还是把这三者直接保存为另另有二个数据底部形态?这就要看需求了,而基于CPU、内存、load的监控频率可不可以调整,考虑到软件以前的扩展性,应该要把三者获得的数据分开保存,用Python开发时,就可不可以把这三者保存到另另有二个不同的字典中去了。之前 ,从五种步来看,这里重要的是要知道监控的频率从何而来,继续看下面的内容。

    客户端的监控配置信息都是从服务器端获得的,将会不同的客户端主机监控的项目、监控的频率都是将会不一样(这很正常,不同的服务器对于不同的性能指标要求都是一样),之前 通过面向对象的编程思想,把每个监控项目的基本配置信息模板写好,基于哪此模板,根据时需被监控的服务器主机的不同,定制不同的监控配置信息,之前 保存到Redis数据库中,让客户端主机去取,这里对应客户端出理 问题报告 中的第3点。

    有了4的经验,那使用Redis的订阅服务那是最简单不过了。这时虽然大伙儿 要采取的监控最好的土办法是被动监控最好的土办法,即服务器端不需要主动向客户端获取监控信息,太多太多由客户端主动向服务器端发送监控信息,之前 服务器端再根据将会设定好的监控策略来进行判断客户端主机否有时不时 出现 异常,之前 再实现报警功能。

2.监控数据怎样才能接收与埋点

    监控软件的要花费 流程如下:

对于客户端: