“Python监控今测状态并实现告警”的版本间的差异
来自CloudWiki
(创建页面,内容为“ == Python监控进程状态并实现告警 ==”) |
(→Python监控进程状态并实现告警) |
||
第1行: | 第1行: | ||
== Python监控进程状态并实现告警 == | == Python监控进程状态并实现告警 == | ||
+ | |||
+ | 公司的Java应用程序会莫名其妙的挂掉,然后我们再去登录服务器看看程序是不是挂掉了,这样是非常耗时间麻烦的事,这种情况和什么行业没有直接联系但却普遍存在。后来我们可以使用supervisor进行守护进程。<br> | ||
+ | |||
+ | Supervisor用Python开发的一个client/server服务,是Linux/Unix系统 下的一个进程管理工具,不支持Windows系统。它可以很方便地监听、启动、停止、重劃-个或多个进程。用Supervisor管理的进程, 当-个进程意外被杀死,或者是意外被停止(系统负载过高,cpu 占用率很等),supervisor 监听到进程死后,自动将它重新拉起来,很方便地做到进程自动恢复的功能,不再需要自己写shel脚本来控制。 | ||
+ | |||
+ | '''通过代码实现''' | ||
+ | |||
+ | 第一步:我们首先判断进程是否存在的逻辑,采用psutil来实现,先安装库 | ||
+ | pip3 install psutil | ||
+ | 实现代码如下: | ||
+ | #coding:utf-8 | ||
+ | import psutil | ||
+ | def proc_exist(process_name): | ||
+ | pl = psutil.pids() | ||
+ | for pid in pl: | ||
+ | if psutil.Process(pid).name() == process_name: | ||
+ | return pid | ||
+ | if isinstance(proc_exist('sshdd'),int): | ||
+ | print('进程存在') | ||
+ | else: | ||
+ | print('进程不存在') | ||
+ | |||
+ | [[文件:2020-08-08_220422.png]] | ||
+ | |||
+ | 运行代码我们这里检测ssh服务是否开启: | ||
+ | |||
+ | [[文件:2020-08-09_090714.png]] |
2020年8月9日 (日) 01:07的版本
Python监控进程状态并实现告警
公司的Java应用程序会莫名其妙的挂掉,然后我们再去登录服务器看看程序是不是挂掉了,这样是非常耗时间麻烦的事,这种情况和什么行业没有直接联系但却普遍存在。后来我们可以使用supervisor进行守护进程。
Supervisor用Python开发的一个client/server服务,是Linux/Unix系统 下的一个进程管理工具,不支持Windows系统。它可以很方便地监听、启动、停止、重劃-个或多个进程。用Supervisor管理的进程, 当-个进程意外被杀死,或者是意外被停止(系统负载过高,cpu 占用率很等),supervisor 监听到进程死后,自动将它重新拉起来,很方便地做到进程自动恢复的功能,不再需要自己写shel脚本来控制。
通过代码实现
第一步:我们首先判断进程是否存在的逻辑,采用psutil来实现,先安装库
pip3 install psutil
实现代码如下:
#coding:utf-8 import psutil def proc_exist(process_name): pl = psutil.pids() for pid in pl: if psutil.Process(pid).name() == process_name: return pid if isinstance(proc_exist('sshdd'),int): print('进程存在') else: print('进程不存在')
运行代码我们这里检测ssh服务是否开启: