本篇文章主要介绍如何配置zabbix借助外部邮件进行发送邮件报警,zabbix通过配置文件调用mailx来进行邮件的发送。在Centos6以上的版本默认已经安装了mailx。
一:服务端配置邮件报警功能Mailx
[root@zabbix ~]# yum install mailx -y
1.1:配置网易163授权码
1.2:配置邮件发送
注意网易邮箱需要开启客户端授权码进行第三方登录
[root@zabbix ~]# vim /etc/mail.rc
#末尾增加
set from=liumengyang980601@163.com '配置的邮箱地址'
set smtp=smtp.sina.cn '承载smtp地址'
set smtp-auth-user=liumengyang980601@163.com '邮箱账户名'
set smtp-auth-password=ZIZFNTQUQUVSKIUF '允许第三方登录终端 填写刚刚的授权码'
set smtp-auth=login '登录验证'
'测试发信是否正常'
[root@zabbix ~]# echo "hello world" | mail -s "zb-test" liumengyang980601@163.com
1.3:编写发邮件脚本
'我的脚本目录是/usr/lib/zabbix/alertscripts/'
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix alertscripts]# vim mailx.sh
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
$1:邮件地址
$2:邮件主题
$3:邮件内容
'创建日志目录'
touch /tmp/mailx.log
#这里的mail.sh脚本一定要有可执行权限,mail.log同样需要可执行权限,否则发送的邮件会有问题。
chown -R zabbix.zabbix /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
./mailx.sh liumengyang980601@163.com"主题" "内容" //测试发邮件脚本是否可以正常工作
[root@zabbix alertscripts]# ./mailx.sh liumengyang980601@163.com shuai test
在zabbix服务器上配置报警连接邮箱
点击user----》Admin
配置–》动作—》创建动作----》删除默认标签,修改触发条件
操作填写触发后执行的动作,远程执行命令或发送邮件
'默认信息,这里是宏变量,可以设置成中文,这里我常用的是下面这个'
告警主机:{HOST.NAME}
告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件 ID:{EVENT.ID}
重启zabbix
[root@zabbix alertscripts]# systemctl restart zabbix-server.service
[root@zabbix alertscripts]# systemctl restart zabbix-agent.service
测试报警
'被管理者操作,关闭sshd服务'
[root@client ~]# systemctl stop sshd.service
'等待一下'
回到首页查看监控等待一会
查看邮箱报警信息
恢复操作
[root@client ~]# systemctl start sshd '启动sshd服务'
如果脚本测试成功,那说明linux系统发送邮件是没有问题的,如果zabbix触发了事件,结果没收到邮件,就要检查zabbix的设置了