操作系统:centos7.3
zabbix版本:4.2
邮件报警有两种情况:
1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:root@localhost.localdomain),只能发送,不能接收外部邮件。
2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:xxx@qq.com),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。
操作系统:centos7.3
使用外部邮箱账号发送报警邮件设置
一、关闭sendmail或者postfix并禁止开机启动
systemctl stop sendmail
systemctl disable sendmail
systemctl stop postfix
systemctl disable postfix
备注:
使用外部邮箱账号时,不需要启动sendmail或者postfix
如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱
配置信息
二、安装邮件发送工具mail
yum install mailx -y
mailx -V
三、配置Zabbix服务端外部邮箱
vi /etc/mail.rc #编辑,添加以下信息
set from=70xxxxxx1@qq.com #个人邮箱,用于zabbi服务端转发邮件到指定邮箱
set smtp=smtp.qq.com #填写发送邮箱服务器地址smtp,新浪中间就填sina,163就写163
set smtp-auth-user=70xxxxxx1@qq.com #发件邮箱
set smtp-auth-password=vsvdxxxxxxxxbeej #此处为第三方客户端的密码,不是登录密码!见下图。
set smtp-auth=login #登录
以上为我自己QQ邮箱的授权码。
echo "zabbix test mail" |mail -s "zabbix" aaa.****@qq.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:aaa.****@qq.com
编写邮件发送脚本sendmail.sh
cd /usr/lib/zabbix/alertscripts #脚本存放路径
如果没找到自己的在哪,那就去zabbix_server.conf主配置文件里看看路径是在哪
AlertScriptsPath=
#编写发送邮件脚本
vim 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
chmod a+x /usr/lib/zabbix/alertscripts/sendmail.sh
ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
Zabbix后台web介面配置
1、管理 ---- 报警媒介类型 ----- 创建媒介类型。
2、名称可以随便自己定义 ----- 类型选择脚本 ----- 脚本名称输入上一步编写的发送邮件的脚本名称 ----
再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3、管理 ---- 用户 ----- 选择admin用户。(自己创建一个用户也可以)
4、报警媒介 ---- 添加。
6、选择更新。
7、权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)
管理员用户不用修改,默认权限
8、配置 ---- 动作 ---- 创建动作。
9、动作 ---- 名称自定义 --- 设置一条新的触发条件 ---- 启用 ---- 添加。(触发条件需要根据实际情况设置)
10、定义操作。
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机IP地址:{HOST.CONN}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
11、定义恢复操作。
默认接收人:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机IP地址:{HOST.CONN}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
12、测试。
停掉从机,stop slave;
恢复