我很黑! 发表于 2019-1-25 08:34:08

监控zabbix 服务并在异常时python 邮件报警

  

  

##shell 主脚本 CheckZabbix.py
#!/bin/sh
dir=`dirname $0`
proc_num=`ps -ef|grep zabbix_server |wc -l`
net_num=`netstat -lntp|grep zabbix_server |wc -l`
#echo $proc_num ''$net_num
if [ $proc_num -lt 10 -o $net_num -eq 0 ]
then
    echo   "Zabbix_Server is down ========================= `date`"
    if [ `cat $dir/zabbix_server.log` -eq 0 ]
    then
      python $dir/python_email.py'Zabbix_Server is down ,now restart zabbix-server' 'Zabbix_Server down'
      /etc/init.d/zabbix-server restart
      echo '1'> $dir/zabbix_server.log
    fi
else
    echo   "Zabbix_Server is UP ===========================`date`"
    if [ `cat $dir/zabbix_server.log` -eq 1 ]
    then
      python $dir/python_email.py'Zabbix_Server restart Success' 'Zabbix_Server OK'
            echo '0'> $dir/zabbix_server.log
    fi
fi


####Python 报警邮件   python_email.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
def smtp(content,subject):
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    import smtplib
   
    #加邮件头
    msg=MIMEText(content,_charset='utf-8')
    to_list=['XXXXX@qq.com','XXXXX1@qq.com','XXXXX2@qq.com']
    msg['from'] = 'wdzj_script@XXXXX.com'
    msg['subject'] = subject
    #发送邮件
    try:
      server = smtplib.SMTP()
      server.connect('smtp.exmail.qq.com')
      server.login('XXX@XXX.com','XXX')#XXX@XXX.com为用户名,XXXXX为密码
      server.sendmail(msg['from'],to_list,msg.as_string())
      server.quit()
      print '发送成功'
    except Exception, e:
      print str(e)
if __name__ == '__main__':
    smtp(sys.argv,sys.argv)
   
    ##定时任务监控
    */10    *       *       *       *   /bin/sh /script/shell/CheckZabbix.sh>>/tmp/CheckZabbix.log  




页: [1]
查看完整版本: 监控zabbix 服务并在异常时python 邮件报警