安裝python34(我使用的是阿里雲Z的epel源)html
yum install python34 -y
很是難用,這裏使用的是我的郵件發送最好使用第二版經過第三方郵件服務發送郵件python
編輯腳本文件/usr/lib/zabbix/alertscripts/sendmail.pyjson
#!/usr/bin/python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header _, sendto, subject, *msgbody = sys.argv sender = '********@21cn.com' smtpserver = 'smtp.21cn.com' username = sender password = '******' msg = MIMEText(' '.join(msgbody),'plain','gb2312') msg['Subject'] = subject msg['From'] = sender msg['To'] = sendto smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(username, password) smtp.sendmail(sender, i, msg.as_string()) smtp.quit()
這一版使用的是sendcloud發送郵件(請百度:),能夠經過zabbix傳遞的數據發送特定的郵件api
#!/usr/bin/python3 # coding: gb2312 import requests import sys # import json # 獲取要傳遞的參數 _, sendto, subject, *msgbody = sys.argv url = "http://api.sendcloud.net/apiv2/mail/send" # 您須要登陸SendCloud建立API_USER,使用API_USER和API_KEY才能夠進行郵件的發送。 params = { # apiUser "apiUser": "mortimer_****_******", # apiKey "apiKey": "******", "from": "service@sendcloud.im", # fromName "fromName": "*******", # 一下三個是經過zabbix傳遞參數,不須要修改 "to": sendto, "subject": subject, "html": ' '.join(msgbody), } r = requests.post(url, files={}, data=params) # print(r.text)
傳遞的參數分別爲bash
# 用戶通知方式 {ALERT.SENDTO} # 標題 {ALERT.SUBJECT} # 發送的信息 {ALERT.MESSAGE}