zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】

时间:2022-06-24 18:10:17

由于传统的邮件推送脚本使用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页面加以配置
创建新的告警媒介
 
zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】

zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】

 

保存后如下图所示,默认我手工停用了其它告警媒介
zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】

 

确保你在动作里有发送告警,并且是启用状态

zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】

zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】

 

在你的Admin用户中,设置告警媒介

zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】
保存退出,
 
试着关掉一台agent的服务,等5分钟,zabbix-agent需要等5分钟才会弹出告警,等其在仪表盘里显示有告警的同时,邮件告警是否有发给你