一、配置邮件服务
登录zabbix server服务器
邮件服务可以使用系统自带的邮件服务或第三方邮件服务来发送警告邮件。我们使用163邮件服务器发送邮件,这样更加稳定,而且不会被当成垃圾邮件。
1、首先安装mailx组件并配置上163邮箱的帐号
yum install mailx
2、然后编辑mailx的配置文件
vim /etc/mail.rc
3、在最末尾添加如下信息:
set from=xxxxx@163.com
set smtp=smtp.163.com
set smtp-auth-user=xxxxx@163.com
set smtp-auth-password=xxxxx
set smtp-auth=login
set from=xxxx@163.com? ? ? #表示邮件发送方, 用于zabbix 服务端转发邮件到指定邮箱
set smtp-auth-password=xxxxxx? ? ? ?#注意:此为 163 邮箱设置的客户端授权密码,不是邮箱密码
4、保存退出后测试邮件是否能够正常发送出去
echo "zabbix test mail" |mailx -s "zabbix" xxxxx@163.com
可以收到 :
在 zabbix 服务端写邮件发送脚本:
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}" | mailx -s "${subject}" $1
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
测试发送脚本
/usr/lib/zabbix/alertscripts/sendmail.sh XXXXX@163.com "标题" "内容"
?修改服务端zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
#查看默认已经写好脚本路径,如果正确不用修改
AlertScriptsPath=/usr/lib/zabbix/alertscripts
2 创建报警媒介类型
?配置报警媒介, 使用脚本发送邮件。名称:163 邮件报警脚本名称: sendmail.sh
开始添加参数,参数如下:
脚本参数写以下内容:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
三个参数分别为: 收件人地址、主题、 邮件详细内容
??
3 给用户添加邮箱
设置报警用户( zabbix 触发报警是发送给zabbix用户所绑定的邮箱。所以要在用户中配置相关报警媒介)或者你也可以这样理解:zabbix把消息发给Admin用户的邮箱,然后Admin用户把邮件再转给163邮箱
?
?
添加完成后一定要点击更新
?
?
4、创建动作
动作由触发器进行触发,例如:node2 主机宕机,监控项检测不到数值后触发器就会触发动作。
注意: 这里的事件源是触发器。是由触发器触发的动作。
?
动作名称: 发送报警邮件?
?
?修改操作中的邮件内容为:
默认标题:
?
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
消息内容
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
点击“新的”?
?
设置发送到哪个 zabbix 用户?
?
?
注:选择好用户和送到的媒介,然后点添加,这样就增加好“操作”了。查看新增加的操作:?
?
?继续添加: 恢复操作
默认标题:
已恢复! {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}
?
?
查看新增加的操作,最后点“添加”?
?
?
5 测试邮件发送
测试,关闭 zabbix 客户端服务 zabbix_agentd
systemctl stop zabbix-agent
结果:
延迟比较大,大概要 5-10 分钟,原因是 zabbix-server 连接 agent 失败后会尝试几次。尝试失败后才会触发报警。
可以在日志看送达状态:
?
|