1. 介绍

查看本文前,请确保已经安装zabbix。如果没安装可以参考zabbix3.0安装教程

zabbix发送报警邮件有两种方式:

  1. 在zabbix所在服务器上搭建邮件服务器,生成一个邮箱账号来发送邮件
  2. 使用已有的邮件服务来发送邮件

处于安全性考虑,本文就选用第一种方式,在自己本地搭建个邮件服务器。

2. 搭建邮件服务器

安装如下软件并且启动服务。这里我们将SMTP服务器和zabbix安装在一起。因为sendmail默认只监听127.0.0.1端口,为了方便(使用sendmail默认配置),我们这里就装在一起即可。

# 安装sendmail
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
# 安装邮件发送工具mailx
yum install mailx

用以下命令测试:

echo "zabbix test mail" |mail -s "zabbix" xxx@163.com

PS:发送的邮件很可能被当做垃圾邮件拦截,请自行去垃圾邮件翻找以下哦!

3. 配置zabbix

  1. 添加报警媒介:按照如下配置MAIL服务器地址以及发送邮件的对象的hostname

PS:

  1. 如果没修改过 sendfile配置,则这里只能使用127.0.0.1作为SMTP服务器(因此可以把sendfile和zabbix装在一台服务器上)
  2. 注意SMTP电邮需要带@符号,其他随意。

  3. 给相应的用户添加示警媒介:

  1. 配置报警动作


创建一个动作按照如下设置,在动作页按照如下设置

名称:Email Action
默认接收人:故障{TRIGGER.STATUS},服务器{HOSTNAME1}发生: {TRIGGER.NAME}故障
默认信息:

告警主机:    {HOSTNAME1}
告警时间:    {EVENT.DATE} {EVENT.TIME}
告警等级:    {TRIGGER.SEVERITY}
告警信息:    {TRIGGER.NAME}
告警项目:    {TRIGGER.KEY1}
告警详情:    {ITEM.NAME}:{ITEM.VALUE}
当前状态:    {TRIGGER.STATUS}:{ITEM.VALUE1}
告警URL:    {TRIGGER.URL}
事件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}


已启用:勾选

在操作子选项下配置发送告警时的具体动作,我们这里仅仅配置邮件给管理员告警。

4. 测试

随便在监控的主机上面增加一个触发器(容易触发点的,例如内存小于1000G),然后稍微等会就可以收到邮件啦~

参考资料:
Zabbix邮件报警设置方法