0%

Zabbix(3)邮件报警配置

报警的方式有很多,邮件,短信,微信,钉钉,最简单的方式这种脚本去发邮件,在此记录一下配置过程。

配置邮件发送

安装mailx

1
yum -y install mailx

安装好,自己就有软链接了

1
2
[root@vm03 ~]# ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 5 May 6 02:07 /usr/bin/mail -> mailx

配置mailx

vim /etc/mail.rc

1
2
3
4
5
set from=user@aliyun.com
set smtp=smtp.aliyun.com
set smtp-auth-user=user@aliyun.com
set smtp-auth-password='<password>'
set smtp-auth=login

发送一封测试邮件

1
echo 'test' |mailx -s 'abc' abc@qq.com

修改配置文件

1
2
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

发送邮件脚本

vim z_sendmail.sh

1
2
3
4
#!/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

使用脚本发送一封测试邮件

1
2
3
4
chmod +x z_sendmail.sh
touch /tmp/sendmail.log
chown zabbix.zabbix /tmp/sendmail.log
./z_sendmail.sh user@qq.com "hello" "abc"

添加报警类型

创建报警类型z_sendmail

管理-报警媒介类型-创建媒体类型
zabbix_install
zabbix_install
脚本参数

1
2
3
4
5
6
7
名称:z_sendmail
类型:脚本
脚本名称:z_sendmail.sh
添加以下3个参数,分别对应z_sendmail.sh脚本需要的3个参数
收件人地址:{ALERT.SENDTO}
主题:{ALERT.SUBJECT}
详细内容:{ALERT.MESSAGE}

设置用户报警媒介

zabbix_install
zabbix_install

配置触发器告警

修改默认的告警模板

设置为“‘非维护状态’且‘报警值>=警告’”时触发动作
zabbix_install

故障操作

ps:这个模板标题不会乱码,其他的标题需要做utf8转码gb2312

1
2
3
4
5
6
7
8
9
10
11
默认接收人:故障{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}
请至Montoring-Events中查看详细情况。

zabbix_install

恢复操作

1
2
3
4
5
6
7
8
9
10
默认接收人:恢复{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}
报警已恢复,请放松心情。

zabbix_install

测试告警

关闭zabbix agent,测试邮件
zabbix_install

ps:我用qq邮箱+授权码方式测试邮件,手动发送可以,系统提示发送成功,就是收不到,浪费了一天时间,坑好深!使用阿里云邮箱测试顺利!