4.1:邮件通知

本次实践的目的是掌握zabbix电子邮件报警媒介的添加、如何设置允许zabbix调用QQ邮箱来发送邮件,以及创建操作类型为发送信息的动作。

产生zabbix邮件通知的条件为:

  • 有可用的相关报警媒介;
  • 正确设置了被调用邮箱的授权;
  • 触发的相应动作调用了该报警媒介。

这里使用QQ邮箱作为zabbix调用的邮箱,即邮件通知的发件人是设置的QQ邮箱帐户。

4.1.1:QQ 邮箱授权

4.1.1.1:开启 POP3/SMTP 服务

使用zabbix调用QQ邮箱时,需要开启POP3/SMTP服务。

登录自己的QQ邮箱(即准备作为zabbix邮件通知发件人的邮箱),设置-帐户,找到“POP3/SMTP服务”,点击开启:

zabbix邮件报警变成附件 zabbix邮件告警_zabbix邮件报警变成附件

开启时会要求验证密保,按照提示进行相关验证操作。

zabbix邮件报警变成附件 zabbix邮件告警_Nginx_02

4.1.1.2:记录授权码

验证成功后,会开启POP3/SMTP服务,并提供授权码,用于第三方(这里就是zabbix)的登录认证。

zabbix邮件报警变成附件 zabbix邮件告警_zabbix_03

如果需要更改授权码,可以点击“生成授权码”,重新生成。

zabbix邮件报警变成附件 zabbix邮件告警_zabbix_04

重新生成授权码同样需要验证密保,和开启服务时的操作相同。

4.1.2:Zabbix Server 创建报警媒介

管理-报警媒介类型-创建媒体类型:

zabbix邮件报警变成附件 zabbix邮件告警_zabbix_05

填写报警媒介相关信息:

QQ邮箱所需的信息在帮助中心常用邮件客户端软件设置中都能找到:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371

zabbix邮件报警变成附件 zabbix邮件告警_zabbix_06

4.1.3:为 Zabbix 的用户添加报警媒介

4.1.3.1:创建用户

假如公司有一个员工为yanqinchuan,为其添加创建好的邮件报警媒介,在相关报警产生时,向他发送邮件进行通知。

该员工邮箱为:yanqinchuan@aliyun.com

管理-用户-创建用户:

zabbix邮件报警变成附件 zabbix邮件告警_Nginx_07

填写用户信息:

zabbix邮件报警变成附件 zabbix邮件告警_zabbix邮件报警变成附件_08

4.1.3.2:为用户添加报警媒介

报警媒介-添加:

zabbix邮件报警变成附件 zabbix邮件告警_zabbix邮件报警变成附件_09

填写报警媒介信息:

zabbix邮件报警变成附件 zabbix邮件告警_Nginx_10

4.1.4:实现 Zabbix 告警的邮件通知

实现:当被监控主机node111的Nginx服务80端口监听故障时,通过邮件通知到yanqinchuan用户。
最多进行3次通知,每次通知间隔60s。

4.1.4.1:创建动作
4.1.4.1.1:动作

基于触发器“Nginx监听80端口异常”,当触发器告警时,则激活动作。

zabbix邮件报警变成附件 zabbix邮件告警_触发器_11

4.1.4.1.2:操作

操作中配置的是告警发生时的相关操作信息,这里就是发送告警通知邮件给指定用户。

zabbix邮件报警变成附件 zabbix邮件告警_触发器_12

4.1.4.1.3:恢复操作

恢复操作中配置的是告警恢复时的相关操作信息。这里就是发送恢复通知邮件给用户。

zabbix邮件报警变成附件 zabbix邮件告警_zabbix_13

最后点击添加,完成动作的添加。

4.1.4.2:验证邮件通知

以node111(192.168.1.111)的Nginx服务为监控对象,当Nginx的80端口不监听时,则触发严重告警,并通过邮件通知yanqinchuan用户。

4.1.4.2.1:确认被监控主机已关联相关触发器

相应的触发器如下,当80端口不监听时,触发器告警。

zabbix邮件报警变成附件 zabbix邮件告警_zabbix邮件报警变成附件_14

4.1.4.2.2:验证告警邮件的发送

关闭node111的Nginx,触发告警:

root@node111:~# systemctl stop nginx

zabbix出现告警,并在3分钟后,发送完3封通知邮件。

经过多长时间、发送几封邮件,取决于动作中的持续时间步骤
前边配置的持续时间为60s,步骤为1-3,所以就是告警发生时发送第1封邮件,经过60s告警仍然存在时发送第2封邮件,再经过60s告警还存在时,发送第3封邮件。

zabbix邮件报警变成附件 zabbix邮件告警_触发器_15

邮箱已经收到3封邮件:

zabbix邮件报警变成附件 zabbix邮件告警_80端口_16

邮件内容:

zabbix邮件报警变成附件 zabbix邮件告警_80端口_17

4.1.4.2.3:验证恢复邮件的发送

开启node111的Nginx:

root@node111:~# systemctl start nginx

收到故障恢复的邮件通知:

zabbix邮件报警变成附件 zabbix邮件告警_触发器_18