事件与响应
概述
Zabbix 中会生成多种类型的事件:
- 触发器事件 - 每当触发器状态发生变化时(OK→PROBLEM→OK)
- 服务事件 - 每当服务状态发生变化时(OK→PROBLEM→OK)
- 发现事件 - 当检测到主机或服务时
- 自动注册事件 - 当活动 agent 由服务器自动注册时
- 内部事件 - 当监控项/低级别发现规则变为不受支持,或者触发器进入未知状态时
事件带有时间戳,可作为执行操作的依据,例如发送通知邮件、创建工单或执行远程命令。
要在前端查看事件详情,请转到 Monitoring > Problems。 在那里,您可以单击事件的日期和时间以打开事件详情页面,在该页面中可以查看有关该事件的其他信息,包括它是否因维护而被抑制,或是否被用户手动抑制。
Problem resolution
Problem events created by triggers are resolved automatically, if the condition that caused the problem no longer exists.
To add flexibility and convenience to problem event management, the following options exist:
- Event correlation
- Event acknowledgment and suppression
- Manual closing of problems
- Maintenance periods - define periods when problems are suppressed
- Tagging - tag problems by common feature
触发器事件
触发器状态的变化是事件最常见且最重要的来源。每当触发器改变其状态时,都会生成一个事件。该事件包含触发器状态变化的详细信息——发生时间以及新的状态是什么。
触发器会创建两种类型的事件 - Problem 和 OK。
问题事件
当以下情况时,会创建问题事件:
- 当触发器处于 OK 状态时,如果触发器表达式求值为 TRUE;
- 如果为该触发器启用了多个问题事件生成,则每次触发器表达式求值为 TRUE 时都会创建问题事件。
OK 事件
OK 事件会关闭相关的问题事件,并且可能由 3 个组件创建:
- 触发器 - 基于“OK 事件生成”和“OK 事件关闭”设置;
- 事件关联
- 任务管理器 - 当事件被手动关闭时
触发器有一个“OK 事件生成”设置,用于控制 OK 事件的生成方式:
- Expression - 当处于问题状态的触发器的表达式计算结果为 FALSE 时,会生成一个 OK 事件。这是最简单的设置,默认启用。
- Recovery expression - 当处于问题状态的触发器的表达式计算结果为 FALSE,且恢复表达式计算结果为 TRUE 时,会生成一个 OK 事件。如果触发器的恢复条件与问题条件不同,可使用此设置。
- None - 永远不会生成 OK 事件。可与多个问题事件生成配合使用,仅在发生某些情况时发送通知。
此外,触发器还有一个“OK 事件关闭”设置,用于控制哪些问题事件会被关闭:
- All problems - OK 事件将关闭由该触发器创建的所有未关闭问题
- All problems if tag values match - OK 事件将关闭由该触发器创建且至少有一个匹配标签值的未关闭问题。该标签由触发器设置中的“Tag for matching”定义。如果没有可关闭的问题事件,则不会生成 OK 事件。这通常称为触发器级事件关联。
事件关联
事件关联(也称为全局事件关联)是一种用于设置自定义事件关闭(从而生成 OK 事件)的规则的方法。
这些规则定义了新的问题事件如何与现有问题事件配对,并允许通过生成相应的 OK 事件来关闭新事件或匹配到的事件。
不过,事件关联必须非常谨慎地配置,因为它可能会对事件处理性能产生负面影响;如果配置不当,还可能关闭比预期更多的事件(在最坏情况下,甚至可能关闭所有问题事件)。以下是一些配置建议:
- 始终通过为控制事件(即与旧事件配对的事件)设置唯一标签来缩小关联范围,并使用“新事件标签”关联条件
- 在使用“关闭旧事件”操作时,不要忘记添加基于旧事件的条件,否则所有现有问题都可能被关闭
- 避免使用不同关联配置中共用的常见标签名称
任务管理器
如果为触发器启用了“允许手动关闭”设置,则可以手动关闭该触发器生成的问题事件。这是在前端中通过更新问题完成的。事件不会直接关闭,而是会创建一个“关闭事件”任务,并由任务管理器在稍后处理。任务管理器将生成相应的 OK 事件,问题事件随后会被关闭。
服务事件
仅当启用了这些事件的服务动作时,才会生成服务事件。在这种情况下,服务状态的每次变更都会创建一个新事件:
- 问题事件 - 当服务状态从
OK更改为Problem时 - OK 事件 - 当服务状态从
Problem更改为OK时
事件包含服务状态变更的详细信息 - 变更发生的时间以及新的状态是什么。
发现事件
Zabbix 会定期扫描网络发现规则中定义的 IP 范围。检查频率可针对每条规则单独配置。一旦发现某个主机或服务,就会生成一个发现事件(或多个事件)。
Zabbix 会生成以下事件:
| 事件 | 生成时机 |
|---|---|
| 服务 Up | 每次 Zabbix 检测到活动服务时。 |
| 服务 Down | 每次 Zabbix 无法检测到服务时。 |
| 主机 Up | 如果该 IP 的至少一个服务处于 UP 状态。 |
| 主机 Down | 如果所有服务都无响应。 |
| 服务已发现 | 如果服务在停机后恢复,或首次被发现。 |
| 服务丢失 | 如果服务在处于 UP 状态后丢失。 |
| 主机已发现 | 如果主机在停机后恢复,或首次被发现。 |
| 主机丢失 | 如果主机在处于 UP 状态后丢失。 |
活动 agent 自动注册事件
活动 agent 自动注册会在 Zabbix 中创建事件。
如果已配置,当先前未知的活动 agent 请求检查,或者主机元数据发生更改时,会创建活动 agent 自动注册事件。服务器会使用接收到的 agent IP 地址和端口添加一个新的自动注册主机。
有关更多信息,请参见 活动 agent 自动注册 页面。
内部事件
内部事件会在以下情况下发生:
- 监控项的状态从 'normal' 变为 'unsupported'
- 监控项的状态从 'unsupported' 变为 'normal'
- 低级别发现规则的状态从 'normal' 变为 'unsupported'
- 低级别发现规则的状态从 'unsupported' 变为 'normal'
- 触发器的状态从 'normal' 变为 'unknown'
- 触发器的状态从 'unknown' 变为 'normal'
引入内部事件的目的是让用户在发生任何内部事件时都能收到通知,例如,某个监控项变为不受支持并停止采集数据。
只有在启用了这些事件的内部动作时,才会创建内部事件。要停止生成内部事件(例如,监控项变为不受支持时),请在 Alerts > Actions > Internal actions 中禁用所有内部事件动作。
如果内部动作被禁用,而某个对象处于 'unsupported' 状态,则仍会为该对象创建恢复事件。
如果内部动作已启用,而某个对象处于 'unsupported' 状态,则即使该对象尚未创建 'problem event',仍会为其创建恢复事件。
另请参见:接收不受支持监控项的通知