文章出处:https://blog.csdn.net/sdksdk0/article/details/80933444

作者:朱培 ID:sdksdk0
--------------------------------------------------------------------------------------------
对于最近的开发环境,偶尔会有挂掉的现象发生,然而并没有及时发现,下载需要添加一个监控功能,当服务挂掉的时候需要有邮件提醒,同时我们的系统每天晚上会跑定时任务,想知道有没有异常发生,所以添加了两个python监本监控,因为本身系统不大,所以没必要去配置kafka+storm这种日志监控了,只用了很简单的方式来处理了。
1、监控tomcat是否挂掉
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.header import Header
from os.path import getsize
from sys import exit
from re import compile, IGNORECASE
import sys, time
import os
#定义主机 帐号 密码 收件人 邮件主题
#定义主机 帐号 密码 收件人 邮件主题
mail_info = {
"from": "info@sogoucloud.cn",
"to": "zhupei@sogoucloud.cn",
"hostname": "smtp.exmail.qq.com",
"username": "info@sogoucloud.cn",
"password": "123456",
"mail_subject": "qybd服务器异常",
"mail_text": "hello, tomcat服务器出现异常了!,请及时处理",
"mail_encoding": "utf-8"
}
#发送邮件函数
def send_mail(error):
#定义邮件的头部信息
#连接SMTP服务器,然后发送信息
smtp = SMTP_SSL(mail_info["hostname"])
smtp.set_debuglevel(1)
smtp.ehlo(mail_info["hostname"])
smtp.login(mail_info["username"], mail_info["password"])
msg = MIMEText(error, "plain", mail_info["mail_encoding"])
msg["Subject"] = Header(mail_info["mail_subject"], mail_info["mail_encoding"])
msg["from"] = mail_info["from"]
msg["to"] = mail_info["to"]
smtp.sendmail(mail_info["from"], mail_info["to"], msg.as_string())
smtp.quit()
def isRunning(process_name):
try:
process = len(os.popen('ps aux | grep "' + process_name + '" | grep -v grep').readlines())
if process >= 1:
return True
else:
return False
except:
print("Check process ERROR!!!")
return False
#调用发送邮件函数发送邮件
if __name__ == '__main__':
process_name = "qybd"
isrunning = isRunning(process_name)
print(isrunning)
if isrunning == False:
send_mail("老铁!qybd服务器挂了!")