zabbix邮件告警设置

好久没更关于zabbix的东西了,今天完善了一下内网zabbix监控的邮件告警功能。

这里就不赘述使用服务器自带邮件发信了,直接介绍使用maix联合自有常用邮箱实现发送邮件的功能。

  • 配置发信功能

首先使用which mailx检查服务器是否安装mailx,若没有安装直接yum安装。

然后编辑其配置文件,在末尾加上发信邮箱等信息

1
2
3
4
5
vim /etc/mail.rc
#For zabbix media
set from=你的邮箱 smtp=你的邮箱smtp服务器
set smtp-auth-user=你的邮箱 smtp-auth-password=邮箱密码
set smtp-auth=login

测试新加的配置信息是否正常

1
echo "zabbix test mail" |mail -s "zabbix" yyy@qq.com

若QQ邮箱成功收信,则配置成功

  • 配置zabbix

1.新建媒介

点击Administration→Media types→Create media type

Type选择Script,根据自己习惯,自定义Name字段以及Script name字段。其中Script name字段为待会新建的发信脚本名称。

2.设置报警邮箱

点击Administration→Users,选择Members列的用户,为其配置Media

3.设置报警触发行为

点击Configuration→Actions,我们可以直接修改现有的Report problems to Zabbix administrators。选择Opreations页,Edit现有的触发行为,注意修改如下几项并最后update

4.编辑发信脚本

zabbix默认脚本目录位于zabbix安装目录下的share/zabbix/alertscripts。我们在这里新建一个前面命名的mail.sh文件,内容如下

1
2
#!/bin/sh
echo "$3" | mail -s "$2" $1

若该脚本发信时,邮箱收到的中文显示乱码,且正文为空,同时显示收到一个命名规则为tcmime.***.***.***.bin的附件,可yum安装dos2unix

1
2
3
4
5
6
#!/bin/bash
export LANG=zh_CN.UTF-8
FILE=/tmp/mailinfo.txt
echo "$3" >$FILE
dos2unix -k $FILE
mail -s "$2" $1 < $FILE

保存并修改脚本所属用户以及赋予执行权限

1
2
chown zabbix zabbix mail.sh
chmod +x mail.sh
  • 测试报警

关闭监控服务器上的zabbix_agentd,等待若干分钟会收到错误报警的邮件。开启zabbix_agentd,等待若干分钟会收到服务恢复的邮件。