標籤: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指令碼