邮件报警有两种情况: 1)Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:root@localhost.localdomain),只能发送,不能接收外部邮件。 2)使用一个可以在互联网上正常收发邮件的邮箱账号(例如:xxx@163.com),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。 上面第2中使用外部邮箱发送报警邮件之前已经介绍了:分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署。下面说下使用zabbix本地邮箱发送报警邮件的设置:
1)安装sendmail或者postfix
代码语言:javascript复制# yum install sendmail
# service sendmail start
# chkconfig sendmail on
yum install postfix
service postfix start
chkconfig postfix on
CentOS 5.x 默认已经安装好sendmail
CentOS 6.x 默认已经安装好postfix
其中,sendmail和postfix只需要安装一个即可并开启服务即可。这里我选择的是使用sendmail
2)安装邮件发送工具mailx
代码语言:javascript复制# yum install mailx
# mailx -V
--------------------------------------------------------------------------------------------
在centos5版本下yum安装的mailx版本太旧,尤其在使用外部邮件发送会有问题。这就需要编译安装高版本的xmail
# yum remove mailx 卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2
cd mailx-12.4
make
make install UCBINSTALL=/usr/bin/install
ln -s /usr/local/bin/mailx /bin/mail
ln -s /etc/nail.rc /etc/mail.rc
whereis mailx
mailx -V
--------------------------------------------------------------------------------------------
测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:wangshibo@huanqiu.cn。
# echo "zabbix test mail" |mail -s "zabbix" wangshibo@huanqiu.cn //注意:sendmail服务必须启动后才能成功发送邮件
3)在zabbix监控界面配置邮件报警
设置Zabbix用户报警邮箱地址
设置Zabbix触发报警的动作(事件源是触发器)
默认接收人:故障{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}
上面点击“新的“,配置如下:
最后测试下zabbix的邮件报警。任意关闭一台被监控主机的zabbix_agent
可以到报表->动作日志里去查看下监控邮件是否发送成功了。
再开启这台主机的zabbix_agent服务,还会收到故障恢复的邮件。
---------------------------------------------------指定监控项的报警邮件设置--------------------------------------------------------- 比如说我只想要上线机器发出报警邮件,非上线机器:比如测试机、研发机只监控,不报警。
做法:专门设置一个上线的机器组,比如up,然后将上线机器放到这个up组内,在添加"动作"时的条件里选择这个up组。如下:
注意:上面计算方式里是"与/或",A and (B or C or ....)and N,这就说明必须满足A条件/D条件或者B/C/D/....中的一个时就报警
注意:将默认"Report problems to Zabbix administrators"监控报警项“禁用”了,否则,非上线机器的报警邮件也会发出来!禁用了就只会发出你设置的up组内的线上机器的报警邮件。