目录
zabbix邮件报警
1.首先安装mailx组件并配置好能够通过第三方邮箱发送邮件
1)安装mailx
2)编辑mailx 的配置文件
3)测试邮件
2.在zabbix 服务端写邮件发送脚本
1)编写脚本
2)授权
3)修改主配置文件,让服务读取到这个脚本
4)测试发送脚本
3.页面添加报警媒介
4.指定报警用户
5.设置动作
1)新建动作: Action-Email
2)操作
3)恢复操作
6.测试,关闭zabbix 客户端服务 zabbix_agentd
zabbix报警邮件
Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常
在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱
报警的方式有多种,短信报警、 邮件报警,通过钉钉,QQ等消息报警。
我们使用邮箱报警
1.首先安装mailx组件并配置好能够通过第三方邮箱发送邮件
1)安装mailx
zabbix服务端,通过malix 发送邮件
yum -y install mailx
2)编辑mailx 的配置文件
vim /etc/mail.rc
在文件末尾添加如下信息:
set from #报警邮件的发信地址
set smtp=smtp.qq.com #使用的邮件服务器
set smtp-auth-user
set smtp-auth-password=rijpkoyhdwtubbej # 注意:此为QQ邮箱设置的客户端授权码,授权码是用于登录第三方邮件客户端的专用密码
set smtp-auth=login
不论是使用的163/126邮箱还是qq邮箱,你都必须开通pop3服务,而且163/126/qq邮箱还要求使用第三方客户端发送邮件时必须使用授权码验证
QQ邮箱开启 pop3 服务获取授权验证码:
写自己的客户端授权码
3)测试邮件
echo "zabbix test mail" |mailx -s "zabbix" XXXXX@qq.com
2.在zabbix 服务端写邮件发送脚本
1)编写脚本
cd /usr/local/zabbix/share/zabbix/alertscripts/
vim sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
2)授权
touch /tmp/sendmail.log
chmod 777 /tmp/sendmail.log
chown zabbix:zabbix sendmail.sh
chmod +x sendmail.sh
3)修改主配置文件,让服务读取到这个脚本
vim /usr/local/zabbix/etc/zabbix_server.conf
添加一行
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
4)测试发送脚本
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 702661894@qq.com "测试邮件" "测试邮件"
代表的参数是:702661894@qq.com # 收件人地址
"测 试邮件" #邮件主题
"hello word" #邮件内容
3.页面添加报警媒介
我们通过脚本的方式发送邮件,类型选择邮件,脚本名一定不要写错,
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的,这是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的
在2.x版本不存在这个问题,默认会传3个参数。
4.指定报警用户
我这里就用zabbix addmin账号登录
添加完点击更新。
5.设置动作
1)新建动作: Action-Email
2)操作
说明:
默认操作步骤持续时间:重新发送报警的时间,当出现报警会每隔一个小时发送一个报警消息
操作细节:重复发邮件几次,1-0次 就是按照默认的时间重复发送,如:1-3发三次报警,0就是一直发送,知道监控数据就解决
步骤持续时间:重发邮件的时间,0为默认的时间,设置则使用步骤持续时间,如:5分钟就是: 5m
发送到用户群组:发送给哪个组(组里的用户都可以收到,前提是用户配置了media type的参数)
发送到用户:发送给那个用户
仅送到:使用那个media type 来发送
这里可以配置升级报警,就是1-3次报警发给谁,4-6报警发给谁,间隔多长时间,就是在添加几个,用户或者组不一样,发送的media type也可以不一样
3)恢复操作
6.测试,关闭zabbix 客户端服务 zabbix_agentd
模拟zabbix客户端服务宕掉:
systemctl stop zabbix_agentd
延迟比较大,大概要5分钟左右
可以在日志看送达状态:
可以看到报警邮件已送达。