———— 前言:

基于上篇博客,将进一步讲解 zabbix如何结合邮箱,进行报警提醒。

在zabbix的使用中,最重要的一点就是完善的报警机制,作为监控平台,需要时刻关注机器和服务的运行状态,更重要的是发现故障之后需要及时的报警给相关人员,早点发现问题,将隐患消除在未然阶段。这样才能保证服务的稳定运行。报警的方式是多种多样的,微信、短信和邮件报警是我们比较常见的方式。

实现步骤:

1、在 zabbix服务端配置邮件发送脚本和修改 zabbix服务端配置文件;

2、在 zabbix前端控制台进行相关设置。

实现目的:

Zabbix 监控服务器设置邮件报警,当被监控主机宕机或达到触发器预设值进,会自动发送报警邮件到指定的邮箱。

———— 部署开始:

在监控端操作:

//安装邮箱服务功能:

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

//修改配置文件:

[root@localhost ~]# vi /etc/mail.rc

注意:网易邮箱需要开启客户端授权码进行第三方登录

[root@localhost ~]# vi /etc/mail.rc

在文件末尾添加:

set from=609810256@qq.com

set smtp=smtp.qq.com

set smtp-auth-user=609810256@qq.com

set smtp-auth-password=授权码 (QQ邮箱设置>>账户>>生成授权码)

set smtp-auth=login

echo "hello world" | mail -s "testmail" 609810256@qq.com

//编写发邮件脚本:

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

[root@localhost alertscripts]# vim mailx.sh

#!/bin/bash

#send mail

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

//创建日志,及赋权:

[root@localhost alertscripts]# touch /tmp/mailx.log

[root@localhost alertscripts]# chown -R zabbix.zabbix /tmp/mailx.log

[root@localhost alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh

[root@localhost alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix/

//测试发邮件脚本是否可以正常工作:

./mailx.sh 13951868284@139.com "主题" "内容"

例如:

[root@localhost alertscripts]# ./mailx.sh 609810256@qq.com "2020" "jiayou wuhan"

现在,邮箱收发机制测试是完全没有问题的。

—— 接下来,就开始在 web 界面开始部署了:

(1)步骤:

1、管理 -----> 报警媒体类型 -----> 创建媒体类型 ----->

添加以下内容:

名称:Mail-Test

类型:脚本

脚本名称:mailx.sh

脚本参数://新增下面三个参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

2、管理 -----> 用户 -----> 点击Admin -----> 报警媒介:

类型:Mail-Test //调用上面的脚本

收件人:609810256@qq.com

其它默认-添加

3、配置 -----> 动作 -----> 创建动作 -----> 删除默认标签,修改触发条件

名称:Mailx

条件 A 主机群组=Linux servers

4、操作 -----> 如下配置:

默认操作步骤持续时间 60

默认接收人 : {TRIGGER.STATUS}:{TRIGGER.NAME}

默认信息:

告警主机:{HOST.NAME}

告警 IP:{HOST.IP}

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

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}:{ITEM.VALUE}

事件 ID:{EVENT.ID}

5、操作细节:

操作类型:发送消息

发送到用户:Admin (Zabbix Administrator)

仅送到:Mail-Test //一定要配置否则邮件发送不成功

点击添加后:

恢复操作做如下设置:

恢复操作:{TRIGGER.STATUS}:{TRIGGER.NAME}

恢复信息:

恢复主机:{HOST.NAME}

恢复IP:{HOST.IP}

恢复时间:{EVENT.DATE}-{EVENT.TIME}

恢复等级:{TRIGGER.SEVERITY}

恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}

恢复 ID:{EVENT.ID}

//操作细节:

操作类型:发送消息

发送到用户:Admin (Zabbix Administrator)

仅送到:Mail-Test //一定要配置否则邮件发送不成功

至此,web界面操作定义都可以完成了

接着,需要重启一下服务:

systemctl restart zabbix-server

systemctl restart zabbix-agent.service

——— 测试:邮箱报警是否有效

(1)先在 web界面中,监控主机上模板中选择一个 Zabbix Agent 选项:

(2)然后,我们在被监控的主机上,手动关闭服务:

[root@localhost ~]# systemctl stop zabbix-agent.service

(3)稍微等一下,我的 qq邮箱就收到了报警邮件: