ZABBIX3.04设置邮件报警

xiaoxiao2025-04-15  24

第一、安装邮件发送工具mailx

  这里我选择的是mailx,所以的关闭其他的邮件发送工具

 service sendmail stop #关闭  chkconfig sendmail off #禁止开机启动  service postfix stop  chkconfig postfix off

执行安装mailx的命令:

yum install mailx

第二、配置Zabbix服务端外部邮箱

 打开文件vi /etc/mail.rc 如果mail.rc文件没有,就手动创建 内容如下:

set from=zabbix@yctunwu.com set smtp=smtp.mxhichina.com set smtp-auth-user=zabbix@yctunwu.com set smtp-auth-password=Liangchao,./2008 set smtp-auth=login

第三、测试邮件是否可以发出

echo "zabbix test mail" |mail -s "zabbix" liangchao@yctunwu.com

这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件

 第四、编写发送邮件脚本

mkdir -pv /etc/zabbix/alertscripts

进入下面路径:/etc/zabbix/alertscripts 创建sendmail.sh文件,内容如下

#!/bin/sh #export.UTF-8 FILE=/tmp/mailtmp.txt echo "$3" >$FILE dos2unix -k $FILE /bin/mail -s "$2" $1 < $FILE

   上面的这个三个参数是接收从web页面中传递过来的,$1:收件人邮箱地址;$2:邮件标题;$3:邮件内容

   为什么我们会在这个路径下面创建这个脚本呢,这是在我们的zabbix_server.conf文件中配置的

 

AlertScriptsPath=/etc/zabbix/alertscripts

  也可以在创建文件夹放在zabbix下面

[root@VM_0_3_centos alertscripts]# pwd /etc/zabbix/alertscripts [root@VM_0_3_centos alertscripts]# ls sendmail.sh

还有需要设置脚本的可执行权限

chown zabbix.zabbix sendmail.sh

所以你不想将这个脚本放在这个目录下面,需要修改服务端的配置文件中的

AlertScriptsPath的值测试  可以使用脚本测试邮件是否能发送成功

./sendmail.sh hua.tian@xxx.com "标题1" “test内容”

测试好之后解决zabbix邮件内容为附件

安装zabbix之后,设置邮件脚本报警的时候,发送的报警内容变成了tcmime.1278.1278.1724.bin或ATT00001.bin。

yum -y install mailx dos2unix

以下是脚本内容:

[root@localhost alertscripts]# cat sendmail.sh #!/bin/bash #export.UTF-8 #解决发送的中文变成了乱码的问题 FILE=/tmp/mailtmp.txt echo "$3" >$FILE dos2unix -k $FILE #解决了发送的邮件内容变成附件的问题。 /bin/mail -s "$2" $1 < $FILE touch /tmp/mailtmp.txt chown zabbix.zabbix /tmp/mailtmp.txt

第四、配置web页面

4.1创建媒体类型

 

  点击创建媒体类型

添加以下3个参数,分别对应sendmail.sh脚本需要的3个参数:收件人地址、主题、详细内容

{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}

如果在3.0中不添加这三个参数会报错,因为在3.0以后zabbix允许自定义参数了,所以不会默认传递参数,在2.0的时候会默认传递三个参数,所以在3.0如果不写这三个参数会报错。

 4.2给用户添加报警媒介

 在这以Admin用户为例 管理—》用户—》点击Admin

 点击Admin

 4.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}  恢复信息:打钩  恢复主旨:恢复{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}  已启用:打钩

填写条件选项

  填写操作详细信息

 解释:默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送 间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。

  到这我们的邮件报警配置就完成了,这是只要我们设置的触发器触发,就会自动给我发送报警邮件。

 测试邮件报警

 我将zabbix自带的模板中的对可用内存的监控中的触发器的临界值改为大于0,进入模板列表

点击触发器

点击修改

保存以后 我将每一分钟收到一份报警邮件 内容如下:

 

 小结

  到这关于zabbix邮件报警的配置,已经基本完成了。

转载请注明原文地址: https://www.6miu.com/read-5028302.html

最新回复(0)