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