zabbix 配置邮件发送

作者:じ☆ve宝贝

发布时间:2019-01-15T20:21:45

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

这里我选择的是mailx,Centos6默认会安装,如果没有安装的话,请使用语句进行安装。

yum install -y mailx

第二、查看是否有其他的邮件发送工具,进行关闭。

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

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

打开文件vim /etc/mail.rc 如果没有的话,有可能是 /etc/nail.rc,在最后加内容如下:

set sendcharsets=iso-8859-1,utf-8 #设置发送支持的编码
set  from=xxx@studyjava.cn #在邮件头中可以看到的发送人
set  smtp=smtp.studyjava.cn #smtp服务器 
set  smtp-auth-user=xxx@studyjava.cn #发送邮件的用户 
set  smtp-auth-password=xxx #邮件发送人密码

第四、测试发送邮件是否可用

echo   "测试本地发送邮件"  |  mailx    -s   "文件正文内容"     zsljava@163.com

发送成功

第五、编辑zabbix-server配置文件,启用脚本执行路径,编写发送邮件脚本

vim /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts/ #启用选项

编写脚本 vim /usr/lib/zabbix/alertscripts/sendmail.sh

#!/bin/bash
export LANG=en_US.UTF-8
to=$1
subject=$2
echo "$3" > /tmp/zabbix_mailbody_$$
 
dos2unix /tmp/zabbix_mailbody_$$
mail -s "$subject" "$to" < /tmp/zabbix_mailbody_$$
rm -f /tmp/zabbix_mailbody_$$

上面涉及3个参数,$1:收件人邮箱 $2:邮件标题 $3:邮件正文

给脚本设置权限

chmod  +x  /usr/lib/zabbix/alertscripts/sendmail.sh #赋予执行权限 
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/sendmail.sh #属主属组为zabbix用户
service zabbix-server restart

测试发送邮件的脚本

/usr/lib/zabbix/alertscripts/sendmail.sh zsljava@163.com test 12346

第六、在zabbix的web界面上配置发送告警

1、点击配置 –> 报警媒介类型 –> 创建媒介类型

2、$1,$2,$3分别表示发送脚本中的$1,$2,$3,配置好后保存,点击更新

3、给用户添加报警媒介

点击 管理–> 用户 –> Admin用户,或者自己另创建用户

4、添加媒介

5、编辑添加,填写后点击 已启用 –> 更新

6、创建触发告警动作

填写动作选项

填写操作,步骤1-0表示无限制,步骤持续时间表示多久发生一次告警

填写恢复操作

以上操作完成后点击更新

第七、测试阶段

将一台添加到 Template OS Linux 模板的服务器进行关闭客户端

service  zabbix-agent stop
或者 
/bin/systemctl stop zabbix-agent.service

登录到zabbix Web界面,看触发告警

触发成功,并显示发送告警成功,查看邮件

启动服务器zabbix客户端查看是否会发生恢复邮件

service   zabbix-agent   start
或者
/bin/systemctl start zabbix-agent.service

接收到恢复告警邮件,查看web界面是否触发问题已取消

服务器均正常。

到此,zabbix邮件告警就结束了。