使用Zabbix服务端本地邮箱账号发送报警邮件及指定报警邮件操作记录

时间:2022-04-23
本文章向大家介绍使用Zabbix服务端本地邮箱账号发送报警邮件及指定报警邮件操作记录,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

邮件报警有两种情况: 1)Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:root@localhost.localdomain),只能发送,不能接收外部邮件。 2)使用一个可以在互联网上正常收发邮件的邮箱账号(例如:xxx@163.com),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。 上面第2中使用外部邮箱发送报警邮件之前已经介绍了:分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署。下面说下使用zabbix本地邮箱发送报警邮件的设置:

1)安装sendmail或者postfix

# 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

# 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监控界面配置邮件报警

image.png

设置Zabbix用户报警邮箱地址

设置Zabbix触发报警的动作(事件源是触发器)

image.png

默认接收人:故障{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组内的线上机器的报警邮件。