加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Python监控服务器实现邮件微信报警

发布时间:2019-01-09 20:11:38 所属栏目:业界 来源:黑白之道
导读:本文中笔者暂且实现的只有cpu和内存的监控,python可以监控很多的主机信息,收集,硬盘,呆板状态等,以下是代码的实现,代码可以实现windows和linux的监控。 尝试情形:Ubuntu16.04和windos10,python3.6.6 importpsutil,time importdatetime fromwechatp

本文中笔者暂且实现的只有cpu和内存的监控,python可以监控很多的主机信息,收集,硬盘,呆板状态等,以下是代码的实现,代码可以实现windows和linux的监控。

尝试情形:Ubuntu16.04和windos10,python3.6.6

Python监控处事器实现邮件微信报警

  1. import psutil, time 
  2. import datetime 
  3. from wechatpy import WeChatClient 
  4. class Monitor(): 
  5.  cpu_data = [] 
  6.  @classmethod 
  7.  def mem(cls, max=90): 
  8.  val = psutil.virtual_memory().percent 
  9.  if val > max: 
  10.  cls.send_msg('内存行使率为{:1.f}%,,高出了{}%,请存眷'.format(val, max)) 
  11.  @classmethod 
  12.  def cpu(cls, max=90): 
  13.  val = psutil.cpu_percent(1) 
  14.  cls.cpu_data.append(val) 
  15.  if len(cls.cpu_data) >= 3: 
  16.  avg = sum(cls.cpu_data) / len(cls.cpu_data) 
  17.  if avg > max: 
  18.  cls.send_msg('CPU行使率为{:1f}%,高出了{}%,请存眷'.format(avg, max)) 
  19.  cls.cpu_data.pop(0) 
  20.  @classmethod 
  21.  def send_msg(cls, content): 
  22.  cls.mail(content) 
  23.  cls.wechat(content) 
  24.  @classmethod 
  25.  def mail(cls, content): 
  26.  import smtplib 
  27.  from email.mime.text import MIMEText 
  28.  from email.utils import formataddr 
  29.  nickname = '监控措施' 
  30.  # 发送者的信息 
  31.  sender = 'xxx@qq.com' 
  32.  password = '*****' 
  33.  # 吸取方的邮箱 
  34.  receiver = 'aa@bb.cc' 
  35.  msg = MIMEText(content, 'html', 'utf-8') 
  36.  msg['From'] = formataddr([nickname, sender]) 
  37.  msg['Subject'] = '自动报警' 
  38.  server = smtplib.SMTP_SSL('smtp.qq.com', 465) 
  39.  try: 
  40.  server.login(sender, password) 
  41.  server.sendmail(sender, [receiver], msg.as_string()) 
  42.  except Exception as ex: 
  43.  print(ex) 
  44.  finally: 
  45.  server.quit() 
  46.  @classmethod 
  47.  def wechat(cls, content): 
  48.  client = WeChatClient('xxxx', 'xxxx') 
  49.  template_id = 'xxxxx' 
  50.  openid = 'xxxx' 
  51.  data = { 
  52.  'msg': {"value": content, "color": "#173177"}, 
  53.  'time': {"value": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "color": "#173177"}, 
  54.  } 
  55.  try: 
  56.  client.message.send_template(openid, template_id, data) 
  57.  except Exception as ex: 
  58.  print(ex) 
  59. while True: 
  60.  Monitor.mem(90) 
  61.  Monitor.cpu(90) 
  62.  time.sleep(5) 

下面是qq邮箱和微信实现报警的图片:

qq邮箱:

 Python监控处事器实现邮件微信报警

微信报警:

Python监控处事器实现邮件微信报警

以上就是全部的代码了。

【编辑保举】

  1. 用 Python 快速实现 HTTP 和 FTP 处事器
  2. 中标中国人民银行,曙光八路处事器再获承认
  3. 署理处事器和Web处事器通讯中的504题目
  4. CentOS体系下PXE处事器的搭建与陈设
  5. 详解X86处事器假造化的资源分别和机能优化
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读