“丝路通:监控报警程序”的版本间的差异
来自CloudWiki
(创建页面,内容为“1.系统运行状态报警 我们这里通过检测程序的端口号,进程号来判断程序是否正常运行,如果检测不到端口就发送邮电警告,…”) |
|||
第1行: | 第1行: | ||
− | 1.系统运行状态报警 | + | 1.系统运行状态报警<br> |
− | 我们这里通过检测程序的端口号,进程号来判断程序是否正常运行,如果检测不到端口就发送邮电警告,告诉运维人员及时修复,采用每分钟一次扫描机制,同时运行状态通过ES实时发送到网页展示 | + | 我们这里通过检测程序的端口号,进程号来判断程序是否正常运行,如果检测不到端口就发送邮电警告,告诉运维人员及时修复,采用每分钟一次扫描机制,同时运行状态通过ES实时发送到网页展示<br> |
− | 代码展示: | + | 代码展示:<br> |
[root@master YXZT]# cat check.py | [root@master YXZT]# cat check.py | ||
# coding:utf-8 | # coding:utf-8 | ||
第27行: | 第27行: | ||
print("{0}进程不存在,发送邮件警告".format(P_name),file=f) | print("{0}进程不存在,发送邮件警告".format(P_name),file=f) | ||
sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P_name),"{0}进程down掉了,请检测原因....".format(P_name)) | sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P_name),"{0}进程down掉了,请检测原因....".format(P_name)) | ||
− | |||
## 定义收件人 | ## 定义收件人 | ||
# 定义进程名 | # 定义进程名 | ||
第43行: | 第42行: | ||
print("{0}进程不存在,发送邮件警告".format(P2_name),file=f) | print("{0}进程不存在,发送邮件警告".format(P2_name),file=f) | ||
sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P2_name),"{0}进程down掉了,请检测原因....".format(P2_name)) | sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P2_name),"{0}进程down掉了,请检测原因....".format(P2_name)) | ||
− | |||
− | |||
# 定义进程名 | # 定义进程名 | ||
P2_name="filebeat" | P2_name="filebeat" | ||
第59行: | 第56行: | ||
print("{0}进程不存在,发送邮件警告".format(P2_name),file=f) | print("{0}进程不存在,发送邮件警告".format(P2_name),file=f) | ||
sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P2_name),"{0}进程down掉了,请检测原因....".format(P2_name)) | sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P2_name),"{0}进程down掉了,请检测原因....".format(P2_name)) | ||
− | |||
− | |||
− | |||
hosts = ['39.101.189.249:3000'] | hosts = ['39.101.189.249:3000'] | ||
hosts1 = ['39.101.189.249:1314'] | hosts1 = ['39.101.189.249:1314'] | ||
第78行: | 第72行: | ||
print("网页无法访问,发送邮件警告",file=f) | print("网页无法访问,发送邮件警告",file=f) | ||
sm.sendmail(receivers,"网页无法访问,请及时修复","网页无法访问,请检测原因....") | sm.sendmail(receivers,"网页无法访问,请及时修复","网页无法访问,请检测原因....") | ||
− | |||
socket.setdefaulttimeout(5) | socket.setdefaulttimeout(5) | ||
for host1 in hosts1: | for host1 in hosts1: |
2020年9月24日 (四) 15:03的版本
1.系统运行状态报警
我们这里通过检测程序的端口号,进程号来判断程序是否正常运行,如果检测不到端口就发送邮电警告,告诉运维人员及时修复,采用每分钟一次扫描机制,同时运行状态通过ES实时发送到网页展示
代码展示:
[root@master YXZT]# cat check.py # coding:utf-8 import socket from S_mail import SendEMail #导入邮件类 import psutil # 实例化邮件类 f = open("yxzt.txt","a+") sm = SendEMail() ## 定义收件人 receivers = ['15610347662@163.com','2977023867@qq.com'] # 接收人邮箱 # 定义进程名 P_name="mysqld" #定义检测进程函数 def checkprocess(processname): pl = psutil.pids() for pid in pl: if psutil.Process(pid).name() == processname: return pid if isinstance(checkprocess(P_name),int): print("{0}进程存在".format(P_name),file=f) pass # 进程存在 else: print("{0}进程不存在,发送邮件警告".format(P_name),file=f) sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P_name),"{0}进程down掉了,请检测原因....".format(P_name)) ## 定义收件人 # 定义进程名 P2_name="nginx" #定义检测进程函数 def checkprocess(processname): pl = psutil.pids() for pid in pl: if psutil.Process(pid).name() == processname: return pid if isinstance(checkprocess(P2_name),int): print("{0}进程存在".format(P2_name),file=f) pass # 进程存在 else: print("{0}进程不存在,发送邮件警告".format(P2_name),file=f) sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P2_name),"{0}进程down掉了,请检测原因....".format(P2_name)) # 定义进程名 P2_name="filebeat" #定义检测进程函数 def checkprocess(processname): pl = psutil.pids() for pid in pl: if psutil.Process(pid).name() == processname: return pid if isinstance(checkprocess(P2_name),int): print("{0}进程存在".format(P2_name),file=f) pass # 进程存在 else: print("{0}进程不存在,发送邮件警告".format(P2_name),file=f) sm.sendmail(receivers,"{0}进程down掉了,请及时修复".format(P2_name),"{0}进程down掉了,请检测原因....".format(P2_name)) hosts = ['39.101.189.249:3000'] hosts1 = ['39.101.189.249:1314'] socket.setdefaulttimeout(5) for host in hosts: ip = host.split(':')[0] port = host.split(':')[1] server = socket.socket() res = server.connect_ex((ip, int(port)))# 返回值为0代表ok, print("检测8080端口,网页状态0为正常:") print(res) if res == 0: print("网页状态正常",file=f) pass else : print("网页无法访问,发送邮件警告",file=f) sm.sendmail(receivers,"网页无法访问,请及时修复","网页无法访问,请检测原因....") socket.setdefaulttimeout(5) for host1 in hosts1: ip = host1.split(':')[0] port = host1.split(':')[1] server = socket.socket() res = server.connect_ex((ip, int(port)))# 返回值为0代表ok, print("检测端口9200,elasticsearch状态0为正常:") print(res) if res == 0: print("elasticsearch状态正常",file=f) pass else : print("elasticsearch状态异常","发送邮件警告",file=f) sm.sendmail(receivers,"elasticsearch状态异常,请及时修复","elasticsearch状态异常,请检测原因....")