zabbix3.4使用qq邮箱发送邮件告警

zabbix使用QQ邮箱发送告警邮件,zabbix的部署可以查看这个笔记https://sulao.cn/post/280.html

下面我们就来配置下邮件告警方法的方法

首先我们需要去管理->报警媒介类型,点击右上角的创建媒体类型

名称随便写,我用的是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}

其他的不用填写点击更新,如下图

{3A0DFA56-0D1B-42B1-A40B-EAC14D1D131E}_20191018190550.jpg

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

{E9E5C38C-E484-4D83-B221-93573EC61580}_20191018191009.jpg

配置好后如下图

{8FBDE8A0-E98D-4419-8970-89EC7DF9876F}_20191018192653.jpg

然后我们去配置->动作,右上角创建动作

任意创建一个名称,然后选择群组

{3CF39751-A440-4E66-88CF-9B65BBD06017}_20191018191357.jpg

切换到操作标签卡

默认操作步骤持续时间填写60s

默认标题填写

{TRIGGER.STATUS}: {TRIGGER.NAME}

消息内容填写

告警主机:{HOST.NAME}
告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件 ID:{EVENT.ID}

如下入

{492C2868-137A-4C1B-9F59-CBDBEB4B1B98}_20191018191509.jpg

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

{D1B12E90-0D7F-4BD7-A229-F22FDFF080B7}_20191018191546.jpg

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

{7DC31676-4265-4B6D-88CA-8E8B47588587}_20191018192014.jpg

默认标题

{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停掉,然后几分钟后收到邮件

{A771715E-97CD-4F1B-8864-19E5D6C9B2A1}_20191018192139.jpg

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

{F6FFEEB1-93B1-4710-8FB8-F2A6BA1C74F4}_20191018192157.jpg

这样就实现了zabbix自定义告警媒体使用邮件告警了,由于mailx不太好用,使用python脚本来实现来说非常方便

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/396.html