因为邮件发送是server端发送,所以要将以下的配置配置在server端
一、安装sendmail或者postfix(任意一种即可)
[root@localhost ~]# yum install sendmail -y
[root@localhost ~]# systemctl start sendmail
二、安装邮件发送工具mailx
[root@localhost ~]# yum install mailx -y
三、设置发送邮件的email,用于邮件发送
[root@localhost ~]# vim /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set from=837874114@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=837874114@qq.com
set smtp-auth-password=XXXXXX(这是一串授权码,需要去邮箱申请)
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
发送测试文件
[root@localhost ~]# echo "zabbix test ..." |mail -s "zabbix" 837874114@qq.com
四、zabbix服务器端编写邮件发送脚本
[root@localhost ~]# vim /data/zabbix/share/zabbix/alertscripts/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
#此处要修改文件的权限,赋予755或者更大,或者直接将属主属组换成zabbix,否则web端将会出现zabbix邮件因为发送脚本权限不足而发送失败
[root@localhost ~]# chown zabbix:zabbix /data/zabbix/share/zabbix/alertscripts/sendmail.sh
[root@localhost ~]# chmod +x /data/zabbix/share/zabbix/alertscripts/sendmail.sh
#测试发送脚本
[root@localhost ~]# /data/zabbix/share/zabbix/alertscripts/sendmail.sh 837874114@qq.com "测试邮件标题" "测试邮件内容"
五、登录zabbix-server的web,并配置报警媒介类型
管理–>报警媒介类型–>“创建媒体类型”
写入“名称”(任意);类型为脚本,因为我是通过脚本来发送的;“脚本名称”就是刚刚写的脚本;“脚本参数”,“{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE}”,然后点击“添加”
六、配置一个管理用户
这个管理用户可以是admin也可以是新创建的,新创建的用户用户必须分组在Zabbix administrators,并把权限改为“管理员”。
七、创建一个动作
操作:
标题:故障{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}
恢复操作:
标题:恢复{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}
八、测试
#在agent端停止zabbix-agentd,zabbix-server的web会发送一个报警邮件(我这里等待的时间比较长,大概有5分钟才收到邮件)
[root@localhost ~]# systemctl stop zabbix-agent.service
#重启agent
[root@localhost ~]# systemctl start zabbix-agent.service
#最终收到邮件的列表