zabbix通過python指令碼發告警郵件
阿新 • • 發佈:2018-12-24
python指令碼為敏捷開發指令碼,在zabbix監控也起到重要作用,以下是使用python指令碼傳送告警郵件配置方法。
指令碼如下:
#!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys mail_host = 'smtp.126.com' mail_user = 'username' mail_pass = 'passwd' mail_postfix = '126.com' def send_mail(to_list,subject,content): me = "zabbix 監控告警平臺"+"<"+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])
新建send.py檔案,將以上程式碼複製編輯,設定發件使用者、密碼。
然後驗證指令碼是否可以正常傳送郵件 ./send.py [email protected] hello test 三個引數分別是:收件人郵箱、郵箱主題、郵箱內容
登入zabbix主機,檢視配置zabbix_server.conf ,找到AlertScriptsPath,檢視路徑位置,如被註釋,將註釋開啟,把send.py 檔案儲存到該目錄下。
如有修改配置,需重啟zabbix-server服務。
在zabbix管理中新增報警媒介型別,注意parameter中的值一定要寫入,注意script name中的指令碼檔名字,要和剛剛編寫的Python檔名一致
新增引數:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE},分別依次加入。然後更新儲存。
配置使用者,修改報警媒介,填寫收件人郵箱,選擇傳送郵件告警型別。
在配置-動作-操作中,send only to 中選擇剛剛建立的send.py這個媒介型別
以上步驟就完成了python指令碼的傳送郵件告警配置。