【导读】Supervisor 是由 Python 语言编写、基于 linux 操作系统的一款服务器管理工具,用于监控服务器的运行,发现问题能立即自动预警及自动重启等。

Cloud Insight 是一款次世代监控工具兼数据管理平台。使用 StatsD 采集性能指标,在 HBase 存储之上,使用 OpenTSDB 来对性能指标进行聚合、分组、过滤。

使用 Supervisor 的原因

  • 如果你有很多进程在跑,不时还需要 start/stop/restart 一下进程

  • 如果哪天由于某种原因,进程挂了,你需要重启进程或定时执行脚本

  • 如果有多个进程,有些是同一项目,尽量可以同时启动/停止等

如果你有以上任意一种情况,那用 Supervisor 管理进程无疑再合适不过了,把你所有 *nix 进程都配置进 ini 文件中,这样所有的进程就变成了 Supervisor 的子进程。对于子进程,Supervisor 可以做到准确管理(有 web 界面),可以进行分组,一组组的  或者授权非 root 用户。

Supervisor 管理进程, Cloud Insight 监控进程

Supervisor 只能管理进程,对进程进行操作,但不能监控进程,虽然有 web 界面可以显示/管理的进程,但不具备一般意义上的监控。例如实时展示进程数据,出现问题有相应报警邮件。

Cloud Insight 可以监控 Supervisor 管理的进程数量和运行情况,也可以单独监控进程,也就是说进程无论是否被 Supervisor 管理,Cloud Insight 都可以监控。

Supervisor 管理进程,Cloud Insight 监控进程,完美! 技术分享 第1张

像上面图片这样,监控所有进程的 IO 读写,内存,CPU,打开文件等等,也可以配置单个某一个进程的上述指标,查看正常情况下进程的资源消耗,如果出现异常邮件报警。例如假死等情况发生的时候,进程也没挂,但资源消耗会有异常,这些通过告警通通提前知道。

Cloud Insight 支持监控 Supervisor

Cloud Insight 不仅可以监控进程相关的数据,同样支持监控 Supervisor。Supervisor 管理进程的启动/停止/重启,如果 Supervisor 本身出问题了,那前面那些进程操作也就执行不了,虽然 Supervisor 本身不会出现什么问题,但这也不是万无一失的,所以监控上还是好的。

监控进程,设置告警

如果有一个进程挂了,或者假死,怎么能够及时知道?

Supervisor 管理进程,Cloud Insight 监控进程,完美! 技术分享 第2张

配置上图这样的报警策略:

  • 选择性能指标:指标任意选一个 process 的指标,over 选定特定进程,例如 process:python 就是监控 Python 进程数据的。

  • 设置报警条件:设置一个阈值,达到阈值时会触发报警;此外还可以配置设置数据丢失(进程挂了自然也就不会再发送数据)时,直接发送报警邮件。

  • 再下面,就是命名报警和设置通知用户。

总之,如果你关心你的应用进程情况,或者在使用 Supervisor,不妨试试 Cloud Insight,永久免费版等你来用!

OneAPM Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客


参考文档: