zabbix使用QQ邮箱发送告警邮件,zabbix的部署可以查看这个笔记:https://sulao.cn/post/278
下面我们就来配置下邮件告警方法的方法
首先我们需要去管理->报警媒介类型,点击右上角的创建媒体类型
名称随便写,我用的是Mail,脚本名称,我是用python写的mail.py报警脚本
mail.py报警脚本放置/usr/local/zabbix/share/zabbix/alertscripts目录下,脚本是python3的脚本,内容如下
#!/usr/bin/python3
#coding:utf-8
import smtplib
import sys
from email.mime.text import MIMEText
from email.utils import formataddr
#发件人邮箱和密码
sender_mail = '你的QQ邮箱'
sender_pass = '你的QQ邮箱授权码,不是密码'
#收件人邮箱
receiver = sys.argv[1]
#邮件正文
msg = sys.argv[3]
#这个是邮件正文,有html格式文本,plain文本格式文档
message = MIMEText(msg, 'html', 'utf-8')
#邮件标题
message['Subject'] = sys.argv[2]
try:
send_mail = smtplib.SMTP_SSL("smtp.qq.com", 465)
#登录QQ邮箱
send_mail.login(sender_mail, sender_pass)
send_mail.sendmail(sender_mail, receiver, message.as_string())
send_mail.quit()
except Exception as e:
with open("send.log", "a+") as f:
f.write("邮件发送失败 , {}\n".format(e))添加三个脚本参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}其他的不用填写点击更新,如下图

然后去用户管理,点击你要编辑的用户,我直接用的Admin,切换到报警媒介,类型设置刚创建的Mail,填写此用户接收的邮箱,其他基本不用修改,如下图

配置好后如下图

然后我们去配置->动作,右上角创建动作
任意创建一个名称,然后选择群组

切换到操作标签卡
默认操作步骤持续时间填写60s
默认标题填写
{TRIGGER.STATUS}: {TRIGGER.NAME}消息内容填写
告警主机:{HOST.NAME}
告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件 ID:{EVENT.ID}如下入

然后下面的操作细节如下图

然后切换到恢复操作的标签,主要配置如下图

默认标题
{TRIGGER.STATUS}: {TRIGGER.NAME}消息内容
恢复主机:{HOST.NAME}
恢复 IP:{HOST.IP}
恢复时间:{EVENT.DATE}-{EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢复 ID:{EVENT.ID}操作细节同操作标签卡内一样
上述操作都OK了后,我们就测试把一个监控主机的zabbix-agent停掉,然后几分钟后收到邮件

看到已经收到告警邮件,然后我们再恢复停掉的zabbix-agent,然后几分钟后再次收到恢复的邮件

这样就实现了zabbix自定义告警媒体使用邮件告警了,由于mailx不太好用,使用python脚本来实现来说非常方便
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/394
评论列表