搭建环境:
CentOS 6.8 + Zabbix 3.0.24
一、安装sendmail或者postfix(安装一种即可)
# yum -y install sendmail #安装
# service sendmail start #启动
# chkconfig sendmail on #设置开机启动
或者
# yum -y install postfix
# service postfix start
# chkconfig postfix on
二、安装邮件发送工具mailx
# yum -y install mailx #安装
三、设置发送邮件的email,用于邮件发送
# vim /etc/mail.rc #编辑,添加以下信息
set from=xxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxx@163.com smtp-auth-password=xxxxxx
set smtp-auth=login
# echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:yyy@163.com
#这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件
四、添加Zabbix服务端邮件发送脚本
# cat /etc/zabbix/zabbix_server.conf |grep AlertScriptsPath #查看zabbix脚本的存放路径
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
在/usr/lib/zabbix/alertscripts下创建sendmail.sh脚本
# vim /usr/lib/zabbix/alertscripts/sendmail.sh #添加以下内容
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh #sendmail.sh脚本修改所属用户和用户组
# chmod a+x /usr/lib/zabbix/alertscripts/sendmail.sh #sendmail脚本赋予执行权限
测试发送脚本
# /usr/lib/zabbix/alertscripts/sendmail.sh xxx@qq.com "测试邮件标题" "测试邮件内容" #该qq邮箱收到即为成功
上述操作均在zabbix service端操作。
五、Zabbix后台web介面配置
1、管理 ---- 报警媒介类型 ----- 创建媒介类型。
2、名称可以随便自己定义 ----- 类型选择脚本 ----- 脚本名称输入上一步编写的发送邮件的脚本名称 ----再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3、管理 ---- 用户 ----- 选择admin用户。(自己创建一个用户也可以)
4、报警媒介 ---- 添加。
5、类型输入刚刚创建的报警媒介类型sendmail脚本 --- 输入个人邮箱用于接收报警邮件 --- 启动打勾 ---- 添加。
6、选择更新。
7、权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)
8、配置 ---- 动作 ---- 创建动作。
9、动作 ---- 名称自定义 --- 设置一条新的触发条件 ---- 启用 ---- 添加。(触发条件需要根据实际情况设置)
名称:Action-Email
默认接收人:故障{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}
恢复信息:打钩
恢复主旨:恢复{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}
已启用:打钩
六、测试报警。
这里以nginx服务宕机作为触发器,触发报警动作,发送告警邮件到邮箱。
自定义监控nginx状态可参考:Zabbix自定义脚本监控(Nginx状态)
在nginx服务器中执行:
# service nginx stop #关闭nginx服务
在监控中--事件中,可以查看到故障描述,已经执行了告警邮件的操作。
在收件邮箱账户中可以查看到该事件的告警:
而当nginx服务器执行:
# service nginx start #开启nginx服务
邮箱又会收到恢复正常的信息:
以上就是Zabbix设置邮件脚本报警的内容