文章都可以转载、引用,标明转载出处即可。

zabbix 配置邮件报警

ZABBIX Mr.c 7190℃ 0评论

zabbix邮件报警默认是有两种方式:1.通过服务器sendmail 等函数发送 2.调用外部SMTP 邮局服务器发送

这里我设置的第二种方法,通过SMTP 方式发送邮件报警:

一.关闭服务器上sendmail 和postfix 等邮件服务:

service sendmail stop
chkconfig sendmail off
service postfix stop
chkconfig postfix off

二.安装mailx 服务 通过mailx 配置好外部SMTP服务器相关信息发送邮件(这里是配置发信的地址):

yum -y install mailx
vim /etc/mail.rc   增加以下内容:
set bsdcompat
set from=qxy@susecui.cn smtp=smtp.susecui.cn   #这里是邮局服务器和SMTP 服务器信息,我是使用阿里云企业邮,其他邮箱自行修改一下
set smtp-auth-user=qxy@susecui.cn smtp-auth-password=yourpassword  #smtp-auth-user 自然是指邮局用户,需要写完整地址,然后是密码
set smtp-auth=login

:wq 保存退出
发送邮件测试一下:标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:test@susecui.cn
echo “zabbix test mail” |mail -s “zabbix” test@susecui.cn

三.创建示警媒介:

1. 进入 【管理】-【示警媒介类型】-【创建媒体类型】
  注意我们选择使用脚本方式,名称可自定义,脚本名称设定需要和以后创建的脚本相同,这里还需要添加参数,否则无法接受到系统传递的信息进行发送
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
zabbix-2

zabbix-1

2.创建用户接收邮箱:

  【管理】-【用户】-选择对应的用户默认Admin -切换到【示警媒介】选项卡-类型处选择为刚才我们创建的示警媒介名称,收件人填写为需要接收邮件的地址

zabbix-3

zabbix-4

3.创建触发动作:

【组态】-【动作】-【创建动作】

zabbix-5

名称:Action-Email
默认接收人:故障{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.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
#这里注意了,很多教程都是复制故障通知消息,这里时间需要设置为EVENT.RECOVERY.DATE 才会发送正确的故障恢复时间,否则会发送故障发生时的时间。
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

注意:设置后不要点击【添加】,这里点击更新是无法保存的,切换到【操作】选项卡

添加用户,按照下图设置勾选即可。

zabbix-10

四.创建邮件发送脚本:

1.先查看一下/usr/local/zabbix/etc 中的AlertScriptsPath 是否已经指定了,这里是指定zabbix程序调用脚本的目录,设置为:
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
2.在该目录/usr/local/zabbix/share/zabbix/alertscripts 下创建脚本文件

vim sendmail.sh
#!/bin/bash
echo "$3" | mail -s "$2" $1    
:wq 保存退出
设置权限以及所属用户:
chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#$3 代表邮件内容,也就是对应参数{ALERT.MESSAGE}
#$2 代表邮件主题,也就是对应参数{ALERT.SUBJECT}
#$1 代表收件人,也就是对应参数{ALERT.SENDTO}

  好了,可以模拟故障测试一下,关闭监控中的远程服务器web应用,等待系统检测,可以通过【监控中】-【事件】查看到报警的详细信息,同时查看一下邮箱是否收到了邮件。

zabbix-7
  之前查阅了很多的文章,但都是千篇一律的转载或者复制同一博文内容,发现在3.0以上的zabbix中并不适用,主要原因就是没有设定参数值导致无法正常发送邮件,最后反复检查并且咨询了大神级朋友解决了该问题。
  按照此方法设置后会发现邮件中内容是显示为附件,不能正常显示,请继续看该博文: 《zabbix 邮件内容为附件》

转载请注明:菜鸟运维 » zabbix 配置邮件报警

喜欢 (2)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(7)个小伙伴在吐槽
  1. 您好 我想问下 监控事件中显示是正常的显示已发送 可是邮箱还是没有收到 切换到zabbix用户 用脚本手动发送邮件是正常的 这可能是什么问题
    geshubo2017-08-02 09:39 回复
    • 这种情况只能一步步排查了,脚本手动发邮件能成功,那证明服务器SMTP通信正常,可以再检查zabbix中邮件配置,另外看看zabbix日志,zabbix_server.conf 中有定义日志位置信息
      Mr.c2017-08-02 14:54 回复
      • 谢谢 已经解决 因为之前用的是2.4版本 这次切换到3.2版本后 告警媒介 设置的时候需要指定脚本参数 我未指定,感谢! 忽络了基本的问题 !
        geshubo2017-08-02 15:04 回复
  2. 3.4已经内置SMTP,可以不用再安装mailx啦。
    xiaoz2017-11-27 20:42 回复
    • 最新的没安装过,不过据说3.4版本和3.0版又有了较大的区别。
      Mr.c2017-11-28 10:36 回复
      • 最近刚把3.4安装好,你升级没有呢?
        xiaoz2017-11-28 10:38 回复
        • 没有升级,我现在用的3.0 LTS那个版本。
          Mr.c2017-11-28 10:45 回复