事件和解决
概述
Zabbix 中会生成多种类型的事件:
- 触发器事件 - 每当触发器状态发生变化时(OK→PROBLEM→OK)
- 服务事件 - 每当服务状态发生变化时(OK→PROBLEM→OK)
- 发现事件 - 当检测到主机或服务时
- 自动注册事件 - 当活动 agent 由服务器自动注册时
- 内部事件 - 当监控项/低级别发现规则变为不受支持,或者触发器进入未知状态时
事件带有时间戳,可作为执行操作的依据,例如发送通知邮件、创建工单或执行远程命令。
要在前端查看事件详情,请转到 Monitoring > Problems。 在那里,您可以单击事件的日期和时间以打开事件详情页面,在该页面中可以查看有关该事件的其他信息,包括它是否因维护而被抑制,或是否被用户手动抑制。
问题解决
由触发器创建的问题事件会在导致问题的条件不再存在时自动解决。
为增强问题事件管理的灵活性和便利性,可使用以下选项:
触发器事件
触发器状态的变化是事件最常见且最重要的来源。每当触发器改变其状态时,都会生成一个事件。该事件包含触发器状态变化的详细信息——发生时间以及新的状态是什么。
触发器会创建两种类型的事件 - 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',仍会为其创建恢复事件。
另请参见:接收不受支持监控项的通知