由於傳統的郵件推送腳本使用smtp 25端口,在各大郵箱提供商已不適用,已經向SSL過渡,這里以QQ郵箱為例,使用SSL 465端口
登錄zabbix-server 進入
cd /usr/lib/zabbix/alertscripts
創建一個動作腳本。
vi send_mail.py
#!/usr/bin/python
# coding=utf-8
import smtplib
import sys
from email.mime.text import MIMEText
class send_mail():
mail_host="smtp.qq.com"
mail_user="你的QQ郵箱帳號"
mail_pass="你的QQ郵箱密碼"
mail_postfix="qq.com"
def __init__(self,sub,content):
self.me="Zabbix-Alter"+"<"+self.mail_user+"@"+self.mail_postfix+">"
self.msg = MIMEText(content,_subtype='html',_charset='utf-8')
self.msg['From'] = self.me
self.msg['Subject'] = sub
def sendMessage(self,user):
self.msg['To'] = ";".join(user)
try:
s = smtplib.SMTP_SSL(host=self.mail_host,port=465)
s.login(self.mail_user,self.mail_pass)
s.sendmail(self.me, user, self.msg.as_string()) #發送郵件
s.close()
except Exception, e:
print str(e)
if __name__ == '__main__':
mailto_list=[]
mailto_list.append(sys.argv[1])
s = send_mail(sys.argv[2],sys.argv[3])
s.sendMessage(mailto_list)
保存退出
chmod +x send_mail.py
測試,發送給某人,帶上以下3個粉字的傳參(以空格隔開)
python /usr/lib/zabbix/alertscripts/send_mail.py 某人的郵箱地址 test test
正常,則進入zabbix的web頁面加以配置
創建新的告警媒介

保存后如下圖所示,默認我手工停用了其它告警媒介

確保你在動作里有發送告警,並且是啟用狀態

在你的Admin用戶中,設置告警媒介

保存退出,
試着關掉一台agent的服務,等5分鍾,zabbix-agent需要等5分鍾才會彈出告警,等其在儀表盤里顯示有告警的同時,郵件告警是否有發給你