安装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}