1. 程式人生 > >zabbix通過python指令碼發告警郵件

zabbix通過python指令碼發告警郵件

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指令碼的傳送郵件告警配置。