Menu Close

zabbix邮件报警

定义问题故障触发器

一:web端设置报警

 1:  设置报警接收邮箱

2:配置报警发送邮箱

3:配置报警内容及操作细节

4:邮件报警消息内容及表的表达式。

故障{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}

恢复{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}

告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级: {TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} –  {EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE} – {EVENT.RECOVERY.TIME}

持续时间:{EVENT.AGE}

事件ID:{EVENT.ID}

二:使用邮件脚本报警

1:环境及软件版本

 centos 7.6      mailx-12.5-19.el7.x86_64

[root@localhost ~]# yum list |grep mailx

[root@localhost /]# yum -y install sendmail

[root@localhost /]# yum install mailx -y

[root@localhost /]# vim /etc/mail.rc 编辑文件在最后一行添加如此几个设置

set from=xxxxx@163.com

set smtp=smtps://smtp.163.com

set smtp-auth-user=xxxxx@163.com

set smtp-auth-password=UXKJFQDIVJAFHUAT

set smtp-auth=login

测试邮件报如下错

配置邮件服务器,因为25端口(邮件默认发送端口)管控比较严格,所以直接使用465端口

生成SSL自签名证书

[root@localhost /]# mkdir -p /root/.zabbix_163     创建证书目录

[root@localhost /]# echo -n|openssl s_client -connect smtp.163.com:465|sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p’ > ~/.zabbix_163/163.crt     生成证书

[root@localhost /]# certutil -A -n “GeoTrust SSL CA” -t “C,,” -d ~/.zabbix_163 -i ~/.zabbix_163/163.crt    添加证书至SSL证书库中

[root@localhost /]# certutil -A -n “GeoTrust Global CA” -t “C,,” -d ~/.zabbix_163 -i ~/.zabbix_163/163.crt    添加证书至Global 证书库中

#使证书得到认可,避免发邮件后报错:

Error in certificate: Peer’s certificate issuer is not recognized

cd /root/.zabbix_163   (一定要进入到证书所在目录才行)

certutil -A -n “GeoTrust SSL CA – G3” -t “Pu,Pu,Pu”  -d ./ -i ./163.crt    或   certutil -A -n “GeoTrust SSL CA – G3” -t “Pu,Pu,Pu”  -d ./ -i 63.crt    有的版本会出错暂时还未有解决方法(不影响测试接收邮件)

[root@localhost .zabbix_163]# certutil -L -d /root/.zabbix_163/      展示证书列表

再次编辑 [root@localhost /]# vim /etc/mail.rc

set bsdcompat

set from=xxxxx@163.com

set smtp=smtps://smtp.163.com:465

set ssl-verify=ignore

set nss-config-dir=/root/.zabbix_163

set smtp-auth-user=xxxxx@163.com

set smtp-auth-password= UXKJFQDIVJAFHUAT

set smtp-auth=login

 重启服务测试

[root@localhost /]# systemctl start sendmail

[root@localhost /]# echo hello | mail -s “TEST” xxxxxx@qq.com

2:编写发邮件脚本(以下邮件脚本未配置验证,在实际应用中可搜索其它类似脚本参考应用)

[root@zabbix alertscripts]# cd /usr/lib/zabbix/alertscripts

[root@zabbix alertscripts]# vi mailx.sh

#!/bin/bash

#send mail

messages=echo $3 | tr ‘\r\n’ ‘\n’

subject=echo $2 | tr ‘\r\n’ ‘\n’

echo “{messages}” | mail -s “messages”∣mail−s”{subject}” $1 >>/tmp/mailx.log 2>&1

修改权限

touch /tmp/mailx.log

chown -R zabbix.zabbix /tmp/mailx.log

chmod +x /usr/lib/zabbix/alertscripts/mailx.sh

chown -R zabbix.zabbix /usr/lib/zabbix/

测试脚本发送邮件

[root@zabbix alertscripts]# echo “hello world” | mail -s “testmail” 你的邮箱

添加三个脚本参数

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

发表回复