图解Zabbix设置邮件报警

Zabbix设置邮件告警

 
前提条件:
Zabbix Server 和 Zabbix Agent都已安装完毕,并已启动
 
1、添加主机
 

2、配置邮件告警,这里以VSFTP服务为例
yum install -y vsftpd 
vim /etc/vsftpd/vsftpd.conf
...
listen=YES # 修改该条
listen_ipv6=YES # 删除该条
...
systemctl start vsftpd
邮件告警可以采取两种方式,一是通过zabbix web直接设置,二是通过脚本设置
推荐第一种,以QQ邮箱为例:
(1)首先先打开qq邮箱授权
 
(2)创建媒介类型

 

媒介创建完毕就ok,可以测试发送一下看是否能收到。
下边直接介绍脚本媒介告警方式,后边的用户设置及动作设置都是相同的
 
第二种,脚本告警:
首先,查看作用脚本路径(可以自定义修改):
grep AlertScriptsPath zabbix_server.conf
 
到此路径下编写邮件告警脚本:
vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py
将以下内容复制:(我用的qq邮箱,如用其他邮箱做发件人,请根据注释修改)
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
 
import smtplib
from email.mime.text import MIMEText
import sys
 
# configure your own parameters here
#下面邮件地址的smtp地址
mail_host = 'smtp.163.com'
#用来发邮件的邮箱,在发件人抬头显示(不然你的邮件会被当成是垃圾邮件)
mail_user = '****@qq.com'
# 客户端授权码
mail_auth = '******'
# 发送方显示的名称
send_name = mail_user
# 接收方显示的名称
recv_name = mail_user
 
def excute(to, title, content):
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['From'] = send_name
    msg['To'] = recv_name
    msg['Subject'] = title
    server = smtplib.SMTP(mail_host, 25)
    server.login(mail_user,mail_auth)
    server.sendmail(mail_user,to,msg.as_string())
    server.quit()
 
if __name__ == '__main__':
    excute(sys.argv[1], sys.argv[2], sys.argv[3])
#                  $1           $2           $3

然后赋予执行权限chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py

 
3、创建报警媒介及动作

添加完成:
选择

然后点击添加按钮,其他两个模块也修改为与以上相同的
默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息内容:
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}

添加完成
 
4、将vsftp服务停掉,测试是否可以收到邮件了

此项说明邮件已送达,下一步打开邮箱看一下

 
ok,收到邮件,nice,再恢复服务看能不能收到邮件
也收到了 ok!

注意:以上在Zabbix页面配置邮件报警时我的截图均为选择的py脚本方式,使用zabbix web的邮件告警方式就直接替换下选择就ok

原文地址:https://www.cnblogs.com/v-fan/p/13559336.html