Zabbix4配置邮件告警通知
环境:
OS:centos7.4
zabbix Server:zabbix_server (Zabbix) 4.0.14
1. mail配置
确认邮件发送工具已安装
yum install mailx -y
配置 /etc/mail.rc,尾部加入配置项:
# Add mail-conf by yuhuanghuiset from=stupidking123@163.comset smtp=smtp.163.comset smtp-auth-user=123456set smtp-auth-password=password1 #授权码set smtp-auth=loginset ssl-verify=ignore
mail授权,
chown -R zabbix:zabbix /etc/mail.rc
注:这里文件未授权导致邮件发送不出去,zabbix Web中动作日志显示已发送,但实际上邮箱并未收到,搞了N天。
除了需开通SMTP服务外,还需要开通授权码登录,上面配置不再是登录密码,而是授权码。这里选择163邮箱发送。
2. 编写邮件发送脚本
cd /usr/lib/zabbix/alertscripts
vim mail-send.sh
#!/bin/bashmessages=`echo $3 | tr '\r\n' '\n'`subject=`echo $2 | tr '\r\n' '\n'`echo "${messages}" | mailx -s "${subject}" $1 >> /tmp/sendmail.log 2>&1
修改权限
chown -R zabbix:zabbix mail-send.sh
chomod +x mail-send.sh
chown -R zabbix:zabbix /tmp/sendmail.log
测试发送:
su - zabbix 切换zabbix用户
sh /usr/lib/zabbix/alertscripts/mail-send.sh abc@xxx.com "zabbix test mail" "test"
查看邮箱收取到邮件,说明脚本发送成功。
3. zabbix页面配置web
管理 ----> 报警媒介类型 -----> 创建媒介类型
添加三个脚本参数:
{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}
脚本名称必须跟zabbix server上配置/usr/lib/zabbix/alertscripts的脚本名称一样。
4. 创建用户
管理 ----> 用户
管理 ----> 用户 ----> 报警媒介
5. 创建动作配置
配置 ----> 动作 ----> 动作
创建邮件发送动作,配置触发条件:触发器示警度 大于等于 警告
配置 ----> 动作 ----> 操作
默认标题:
故障{TRIGGER.STATUS},服务器名:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOSTNAME}告警主机IP地址:{HOST.IP}告警时间:{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}已恢复!
消息内容
告警主机:{HOSTNAME}告警主机IP地址:{HOST.IP}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
确认创建的动作是启用的:
6. 测试
关闭客户端服务器的zabbix-agnet服务
systemctl stop zabbix-agent.service 关闭服务
稍等5分钟邮件中查收。