Zabbix 随笔:事件通知浅析(触发器篇)

开源
Zabbix 的事件是带有时间戳的,因此具备事件通知的基础条件,如果需要查看前端事件的详细信息,可以在 Monitoring ->Prombles 里查看,也可以单击时间查看时间的详细信息。

每天都会发生不同的事件,在软件的世界也不例外,Zabbix 里面所发生的一切也称为事件。Zabbix 的事件类型有如下几种:

  • 触发器事件
  • 服务事件
  • 发现事件
  • 自动注册事件
  • 内部事件

如何知道这些事件的内容?也是本文要提的事件通知,不过本文的内容只涉及触发器事件,也是我们常说的告警。

正文

Zabbix 的事件是带有时间戳的,因此具备事件通知的基础条件,如果需要查看前端事件的详细信息,可以在 Monitoring ->Prombles 里查看,也可以单击时间查看时间的详细信息。

可以查看问题清单

点击时间戳查看问题详情

本文环境

  • RockyLinux 8.5
  • Zabbix 6.0.2 LTS

逻辑分析

事件通知用人话来讲,就是通知的内容是什么?通知到谁?通过什么渠道通知到人?如果把这几个问题搞定了其实问题就不大了,全文将通过这三个问句探讨。

模拟主机告警

创建一个模拟主机,挂载 ICMP Ping 模板,该主机是一个不存在的主机。

创建一个不存在的机器

触发告警

查看告警

回到首页,在默认仪表盘里是有问题模块的,可以看到相关告警,可以通过告警查看当前问题为什么 ICMP ping 不可达,这是通过内部的组件告诉你一台主机出现异常了,作为 NOC 团队看这个仪表盘的确就可以了,但前提是24小时得有人盯着这个仪表盘,那么如果相关业务的人员也想看他们的主机情况,就得需要创建相关账号,同时对账号进行资源授权,而细分领域后,告警量级明显会降低很多,此时业务人员也不可能时时刻刻盯着这个仪表盘,所以可以通过一些渠道告知业务人员,例如邮件、一些即时通信软件,本文采用飞书的方式演示。

通过什么渠道告知?

第一个要解决的问题是通过什么渠道来发送通知这件事情,本文确定以飞书的形式通知业务方相关告知内容。由于官方没有相对应的媒介,所以需要自行创建,本文不做媒介创建演示,具体可以参考我之前的文章。

创建的飞书媒介

发送通知的本质就是动作

既然确定了用什么渠道来发送通知,那么怎么发送通知呢?发送通知本身就是一个动作,在 Zabbix 里也是动作(Actions)。

触发器动作(Trigger actions)

点击创建一个动作,动作模块里有两个 tab,分别是动作和操作 动作部分有四块,红星的地方必须填写。

进入触发器动作

动作板块

多个条件才会触发计算类型

name 字段自定义即可:

Type of calculation,关于这个只有在两个条件及以上的的时候才会触发,里面包含四个选项。

  • And/Or:和与或同时存在,And 和 Or 的放置方法为同类型条件为 Or,非同类型为 And。
  • And:所有条件必须满足。
  • Or:满足任意条件即可。
  • Custom expression:自定条件组合。

A和D为触发器条件,所以为Or,其他为触发器级别和名称,所以为and

Conditions,点击 Add 后,会弹出条件对话框,会有三个选项:

  • Type:包含很多种类型,就不一一赘述了。
  • Operator:包含与不包含。
  • 根据Type可变。

条件界面

条件类型

操作部分有6块,红星的地方必须填写。

操作部分

Default operation step duration,默认操作步骤的时间,动作内全局变量。

Operations,告警动作。

  • Steps:第一个数字代表步骤,后面的数字代表此步骤重复次数,如果是1-10,就证明此步骤每间隔一小时执行此动作。
  • Step duration:步骤持续时间,0代表永不过期。
  • Send to user groups:发送到用户组。
  • Send to users:发送到用户。
  • Send only to :推送渠道。
  • Custom message:自定义消息模板。
  • Conditions:条件(不常用,只有一个条件,就是事件被标记)。

Recovery operations,恢复动作。

  • Operation,动作内容。
  • Send to user groups,发送到组。
  • Send to users,发送到用户。
  • Send only to,发送渠道。
  • Custom message,自定义消息模板。
  1. Update operations,更新动作,内容与恢复动作一致。
  2. Pause operations for suppressed problems,暂停维护期间(被监控设备)的告警通知。
  3. Notify about canceled escalations 取消通知。

根据环境创建动作

本文的环境是创建一台主机,主机组为 Linux Servers,告警推送给 Admin 用户,根据上文浅析,判断条件只需要一个就够了,主机组为该组即可;动作详情仅修改 Send to users,Send only to 即可。

创建条件

创建动作

建立完成后,首页会出现动作的箭头,此时证明写的动作生效了,但是此时出现红色的箭头,点开查看原因为 No media defined for user,字面意思是用户没有定义媒介,言外之意是该用户没有定义媒介的配置。所以需要进入到用户界面配置,需要配置的部分包括该用户可以通过飞书接受信息,测试用户就随便填写了,和应用无关(邮件与SMS除外),其他的字段分别是什么时间可以接受告警,接受的告警有哪些级别,启用状态。

添加用户媒介配置

调整完用户后,此时会发现依然会出现动作失败的提示,只不过内容变为 No message defined for media type。这个报错为消息模板未定义,即是通知内容模板未写,有两个地方可以填写内容模板,第一个是媒介里的消息模板,第二个为动作里的自定义消息模板,消息模板是支持变量的,具体可以参阅官方文档的宏,也可以参阅笔者的内容美化文章,这里不展开赘述了,至于区别就是媒介里的只需要创建一次,动作里的需要每一条都需要单独写,就这区别,两者任选其一,本文使用媒介里的消息模板。

提示未定义消息模板

媒介里的消息模板

动作里的消息模板

媒介里自定消息模板效果图

当出现下图时候,代表发送已经成功,飞书 APP 也接收到相关信息,恢复和更新动作同理配置,限于篇幅原因不再展开。

写在最后

整个事件通知其实以通知到相关人员为逻辑展开,理解起来就没那么复杂,当然有很多细节需要自己体会,包括后期的事件升级功能、高阶事件通知运用等等,技术本是以人为本,所以大家不理解的时候多想想背后的逻辑,自然简单的多。

责任编辑:姜华 来源: 今日头条
相关推荐

2011-03-03 09:30:24

downmoonsql登录触发器

2011-05-20 14:06:25

Oracle触发器

2009-12-24 17:38:18

WPF事件触发器

2022-02-17 09:50:36

Zabbix联动登录LDAP认证

2011-03-28 10:05:57

sql触发器代码

2009-09-18 14:31:33

CLR触发器

2011-05-19 14:29:49

Oracle触发器语法

2021-07-30 10:33:57

MySQL触发器数据

2011-04-14 13:54:22

Oracle触发器

2009-11-18 13:15:06

Oracle触发器

2010-05-31 18:06:07

MySQL 触发器

2010-10-12 10:04:15

MySQL触发器

2010-05-18 15:58:39

MySQL触发器

2010-10-12 10:24:58

mysql触发器

2010-04-15 15:32:59

Oracle操作日志

2010-09-13 17:03:34

sql server触

2010-05-26 17:57:44

MySQL 触发器

2009-10-22 17:18:20

CLR触发器

2009-04-07 13:56:03

SQL Server触发器实例

2010-10-11 14:52:43

Mysql触发器
点赞
收藏

51CTO技术栈公众号