当前位置:首页 > 服务器资讯
Python监控服务器实现邮件微信报警
2018-12-11 15:41:12 作者: 来源: 阅读:449 评论:0
简介 【51CTO技术沙龙】10月27日,让我们共同探索AI场景化应用实现之道 --> 本文中笔者暂时实现的只有cpu和内存的监控,python可以监控许多的主机信息,网络,硬盘,机器状态等,以下是代码的实现,代码可以实现windows和linux的监控。实验环境:Ubu......
【51CTO技术沙龙】10月27日,让我们共同探索AI场景化应用实现之道 -->
本文中笔者暂时实现的只有cpu和内存的监控,python可以监控许多的主机信息,网络,硬盘,机器状态等,以下是代码的实现,代码可以实现windows和linux的监控。
实验环境:Ubuntu16.04和windos10,python3.6.6
- import psutil time
- import datetime
- from wechatpy import WeChatClient
- class Monitor():
- cpu_data = []
- @classmethod
- def mem(cls max=90):
- val = psutil.virtual_memory().percent
- if val > max:
- cls.send_msg('内存使用率为{:1.f}%,超过了{}%,请关注'.format(val max))
- @classmethod
- def cpu(cls max=90):
- val = psutil.cpu_percent(1)
- cls.cpu_data.append(val)
- if len(cls.cpu_data) >= 3:
- avg = sum(cls.cpu_data) / len(cls.cpu_data)
- if avg > max:
- cls.send_msg('CPU使用率为{:1f}%,超过了{}%,请关注'.format(avg max))
- cls.cpu_data.pop(0)
- @classmethod
- def send_msg(cls content):
- cls.mail(content)
- cls.wechat(content)
- @classmethod
- def mail(cls content):
- import smtplib
- from email.mime.text import MIMEText
- from email.utils import formataddr
- nickname = '监控程序'
- # 发送者的信息
- sender = 'xxx@qq.com'
- password = '*****'
- # 接收方的邮箱
- receiver = 'aa@bb.cc'
- msg = MIMEText(content 'html' 'utf-8')
- msg['From'] = formataddr([nickname sender])
- msg['Subject'] = '自动报警'
- server = smtplib.SMTP_SSL('smtp.qq.com' 465)
- try:
- server.login(sender password)
- server.sendmail(sender [receiver] msg.as_string())
- except Exception as ex:
- print(ex)
- finally:
- server.quit()
- @classmethod
- def wechat(cls content):
- client = WeChatClient('xxxx' 'xxxx')
- template_id = 'xxxxx'
- openid = 'xxxx'
- data = {
- 'msg': {"value": content "color": "#173177"}
- 'time': {"value": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') "color": "#173177"}
- }
- try:
- client.message.send_template(openid template_id data)
- except Exception as ex:
- print(ex)
- while True:
- Monitor.mem(90)
- Monitor.cpu(90)
- time.sleep(5)
下面是qq邮箱和微信实现报警的图片:
qq邮箱:
微信报警:
以上就是所有的代码了。
标签:quot cpu cls data 报警