Zabbix邮件告警配置(zabbix4.4)
补一篇zabbix系列的文章,"邮件告警"这里邮件告警是用163邮箱来做的,首先要申请一个授权码(授权码其实就是密码防止和客户端登陆的密码重复,所以叫授权码,做邮件告警163和qq都需要申请授权码)。
申请163邮箱授权码
编写告警脚本修改告警邮箱
cd /usr/lib/zabbix/alertscripts
vim baojing.sh
#========================================================
#!/usr/bin/python
# _*_ coding:utf-8 _*_
import smtplib, sys
from email.mime.text import MIMEText
from email.utils import formataddr
def send_mail(to_email, subject, message):
# 邮箱地址和邮箱密码
my_sender = '[email protected]' #需修改邮箱用户名
my_pass = '授权码' #需修改
my_user = to_email
# 发送邮件的信息主体,发件人,收件人,内容
msg = MIMEText(message, 'plain', 'utf-8')
msg['From'] = formataddr(["Zabbix", my_sender])
msg['To'] = formataddr(["Ops", my_user])
msg['Subject'] = subject
# 发送邮件
server = smtplib.SMTP_SSL("smtp.163.com", 465) #需修改 如果用的是163邮箱就不用修改,如果用的是qq就把163改成qq
# 上面的一行如果公司有专门的邮箱就找it申请一个邮箱,然后把SSL删掉SMTP("填为公司邮箱的地址", 公司邮箱的端口)这样的格式。
server.login(my_sender, my_pass)
server.sendmail(my_sender, [my_user, ], msg.as_string())
server.quit()
if __name__ == '__main__':
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
#========================================================
chmod +x baojing.sh
测试是否成功
./baojing.sh 邮箱地址(接受告警的邮箱) zabbix 邮件告警
Zabbix创建报警媒介
新增以下三个参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
关联用户和媒介
创建邮件告警动作
告警主机:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警级别:{TRIGGER.SEVERITY}
报警时间:{DATE} {TIME}
告警信息:{TRIGGER.NAME}
问题详情:{TRIGGER.NAME}:{ITEM.VALUE}
告警项目:{TRIGGER.KEY1}
故障持续:{EVENT.AGE}
请联系运维处理
恢复:{TRIGGER.STATUS},服务器:{HOST.NAME}:{TRIGGER.NAME}已恢复
告警主机:{HOST.NAME}
故障时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障持续:{EVENT.AGE}
告警级别:{TRIGGER.SEVERITY}
问题详情:{TRIGGER.NAME}:{ITEM.VALUE}
事件ID:{EVENT.ID}
测试是否成功
完成以上配置就成功了。