Zabbix3.2郵件警示python指令碼

來源:互聯網
上載者:User

標籤:head   作用   app   pos   3.2   ext   print   安裝   water   

一、概述及環境要求1、概述zabbix監控也起到重要作用,以下是使用python指令碼發送警示郵件配置方法。之前使用過sendemail郵件警示但是發現郵件主題為中文時候會出現亂碼的問題。2、環境安裝要求Zabbix軟體版本:zabbix3.2.6作業系統:CentOS release 6.8 (Final)二、指令碼建立及測試1、查看配置zabbix_server.conf ,找到AlertScriptsPath,查看路徑位置,如被注釋,將注釋開啟,把send.py 檔案儲存到該目錄下。grep -n ‘^[a-Z]‘ /usr/local/etc/zabbix_server.conf38:LogFile=/tmp/zabbix_server.log87:DBName=zabbix103:DBUser=zabbix111:DBPassword=zabbix126:DBPort=3306239:StartVMwareCollectors=10247:VMwareFrequency=60255:VMwarePerfFrequency=60265:VMwareCacheSize=80M273:VMwareTimeout=10281:SNMPTrapperFile=/tmp/zabbix_traps.tmp289:StartSNMPTrapper=0407:Timeout=4448:AlertScriptsPath=/usr/local/share/zabbix/alertscripts492:LogSlowQueries=30002、如有修改配置,需重啟zabbix-server服務。/etc/init.d/zabbix_server restart3、進入Zabbix發郵件指令碼目錄cd /usr/local/share/zabbix/alertscripts4、建立指令碼及配置vim zabbix-mail.py #!/usr/bin/python  #coding:utf-8  import smtplib  from email.mime.text import MIMEText  import sys  mail_host = ‘smtp.qq.com‘    mail_user = ‘10880347‘  mail_pass = ‘**********‘  mail_postfix = ‘qq.com‘  def send_mail(to_list,subject,content):      me = "zabbix3.2監控警示平台"+"<"+mail_user+"@"+mail_postfix+">"      msg = MIMEText(content, ‘plain‘, ‘utf-8‘)      msg[‘Subject‘] = subject      msg[‘From‘] = me      msg[‘to‘] = to_list      try:          s = smtplib.SMTP()          s.connect(mail_host)          s.login(mail_user,mail_pass)          s.sendmail(me,to_list,msg.as_string())          s.close()          return True      except Exception,e:          print str(e)          return False  if __name__ == "__main__":      send_mail(sys.argv[1], sys.argv[2], sys.argv[3]) 5.增加可執行許可權chmod +x zabbix-mail.pychown -R zabbix.zabbix zabbix-mail.py 6.測試郵件python zabbix-mail.py [email protected] test test

三、ZABBIX伺服器警示媒介類型1、web介面設定http://172.16.8.200/zabbix/添加三個參數{ALERT.SENDTO}收件者地址{ALERT.SUBJECT}主題{ALERT.MESSAGE}詳細內容

2、建立警示使用者

3、配置警示媒介

4、配置許可權現在測試環境所以配置超級管理的許可權,如果是生產環境建議使用使用者權限

四、配置警示動作1、建立新的觸發動作

2、配置動作

3、配置操作故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!警示主機:{HOSTNAME1}警示時間:{EVENT.DATE} {EVENT.TIME}警示等級:{TRIGGER.SEVERITY}警示資訊: {TRIGGER.NAME}警示項目:{TRIGGER.KEY1}問題詳情:{ITEM.NAME}:{ITEM.VALUE}目前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

4、配置恢複操作恢複{TRIGGER.STATUS}, 伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢複!警示主機:{HOSTNAME1}警示時間:{EVENT.DATE} {EVENT.TIME}警示等級:{TRIGGER.SEVERITY}警示資訊: {TRIGGER.NAME}警示項目:{TRIGGER.KEY1}問題詳情:{ITEM.NAME}:{ITEM.VALUE}目前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

5、郵件警示測試結果

對發郵件指令碼進行了最佳化,解決outlook收郵件標題是亂碼的問題。
#!/usr/bin/python  #coding:utf-8  import smtplib from email.header import Header from email.mime.text import MIMEText  import sys  mail_host = ‘mail.qq.com‘    mail_user = ‘10880347‘  mail_pass = ‘********‘  mail_postfix = ‘qq.com‘  def send_mail(to_list,subject,content):      #me = "某某公司zabbix監控警示"+"<"+mail_user+"@"+mail_postfix+">"      me = ("%s<[email protected]>")%(Header(‘某某公司zabbix_監控警示!‘,‘utf-8‘),)      msg = MIMEText(content, ‘plain‘, ‘utf-8‘)      msg[‘Subject‘] = subject      msg[‘From‘] = me      msg[‘to‘] = to_list      try:          s = smtplib.SMTP()          s.connect(mail_host)          s.login(mail_user,mail_pass)          s.sendmail(me,to_list,msg.as_string())          s.close()          return True      except Exception,e:          print str(e)          return False  if __name__ == "__main__":      send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

Zabbix3.2郵件警示python指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.