监控linux上的应用,你都采取过哪些方式?

现在想把公司业务服务器上各式各样的监控整合起来,使用python来完成。对于监控业务程序、脚本等,你都采取过哪些方式?有没有遇到哪些特殊、意外的状况,希望能分享一下。
比如监听端口,那么有些分析程序,就不监听端口,或者端口被占用但程序本身已经变成僵尸,是否还应选取其他方式进行辅助?我之前还用过一个很奇葩的方式,扫描系统的所有pid,然后看pid对应程序的路径有没有与被监控的程序路径相匹配的,但是这样要求额外的模块并且需要运行监控程序的用户具有很高的权限。
另外是我希望自己的监控程序能整合多种功能,所以需要在设计之初能把方方面面都考虑到。

阅读 3.9k
4 个回答

建立你去看看open-falcon的agent的采集代码 这样你就会清楚很多.
另外一个建议是尽量不要用程序调用命令行的方式, 有两个坏处:

  1. 输出内容格式化不够,比较难提取有用的信息
  2. 命令行获取的内容比较多,这样效率会变慢,资源会浪费.

所以是尽量能够获取到原始的信息是最佳的,如/proc下面的内容.

你的需求看上去不是简单的脚本能够解决的,更偏向于开发一个系统了。
这个有不少的开源软件,zabbix nagios.等等。

如果你自己开发,可能要考虑到数据采集,数据处理,界面展示。
实际上做完这些基本可以说是一个全栈工程师了。后台接口的设计,数据表设计,前端图表等等。

如果你的时间充足,能力强,这个过程还是非常的有收获。

基于监控方式,可以参考开源软件,或者自己根据实际需求出发。监控这个话题太大,我简单的从总体角度出发去阐述。

建议用salt-api,你可以去看看相关的资料

推荐zabbix,一般企业都用这个。功能强大,缺点就是要花点时间研究下。不用太担心也,因为资料完善。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题