[comment]: # ({e0e52cee-e0e52cee})
# 1 触发器事件生成

[comment]: # ({/e0e52cee-e0e52cee})

[comment]: # ({5a424184-5a424184})
#### 概述

触发器状态的改变是事件最常见的也是最重要的来源。每当触发器更改其状态时，就会生成一个事件。该事件包含触发器状态更改的详细信息——发生时间以及新的状态是什么。

触发器会生成两种类型的事件——问题（Problem）和正常（OK）。

[comment]: # ({/5a424184-5a424184})

[comment]: # ({b13ee7a9-b13ee7a9})
#### 问题事件

问题事件的创建条件如下：

-   当触发器处于“正常（OK）”状态时，若其表达式计算结果为 TRUE；
-   若触发器启用了多次问题事件生成功能，则每次触发器表达式计算结果为 TRUE 时均会生成问题事件。

[comment]: # ({/b13ee7a9-b13ee7a9})

[comment]: # ({d1c49821-6f89a5a0})
#### OK 事件

OK 事件会关闭相关的问题事件，并且可能由 3 个组件创建：

-   触发器 - 基于“OK 事件生成”和“OK 事件关闭”设置；
-   事件关联
-   任务管理器 - 当事件被[手动关闭](/manual/config/events/manual_close)时

[comment]: # ({/d1c49821-6f89a5a0})

[comment]: # ({8e1a9fc3-8e1a9fc3})
##### 触发器

触发器具有“OK事件生成”设置，用于控制如何生成OK事件：

-   *表达式* - 当触发器处于问题状态且其表达式计算结果为FALSE时，将生成一个OK事件。这是最简单的设置，默认情况下启用。
-   *恢复表达式* - 当触发器处于问题状态且其表达式计算结果为FALSE，同时恢复表达式计算结果为TRUE时，将生成一个OK事件。如果触发器的恢复条件不同于问题条件，则可以使用此选项。
-   *无* - 永远不会生成OK事件。这可以与多个问题事件生成结合使用，以便在发生某些事件时简单地发送通知。

此外，触发器具有“OK事件关闭”设置，用于控制关闭哪些问题事件：

-   *所有问题* - OK事件将关闭触发器创建的所有打开的问题。
-   *如果标签值匹配则关闭所有问题* - OK事件将关闭触发器创建的且至少有一个匹配标签值的打开问题。标签由触发器设置中的“用于匹配的标签”定义。如果没有需要关闭的问题事件，则不会生成OK事件。这通常称为触发器级别的事件关联。

[comment]: # ({/8e1a9fc3-8e1a9fc3})

[comment]: # ({ad7b6e93-ad7b6e93})
##### 事件关联

事件关联（也称为全局事件关联）是一种设置方式
自定义事件关闭（导致生成OK事件）规则。

规则定义了新的问题事件如何与现有事件配对
问题事件，并允许关闭新事件或匹配的事件
生成相应的OK事件。

然而，事件关联必须进行非常谨慎的配置，因为它可能会
对事件处理性能产生负面影响，或者在配置错误时，
关闭的事件多于预期（在最坏的情况下，甚至会关闭所有问题事件）
事件可能会被关闭）。一些配置提示：

1. 始终通过为相关性范围设置唯一标签来缩小其范围
    控制事件（与旧事件配对的事件）并使用
    “新事件标签”关联条件
2. 在使用基于旧事件的条件时，请勿忘记get添加条件
    “关闭旧事件”操作，否则所有现有问题都可能被关闭。
    关闭
3. 避免使用不同关联规则中通用的标签名称
    配置

[comment]: # ({/ad7b6e93-ad7b6e93})

[comment]: # ({ebd8b238-00be2f5b})
##### 任务管理器

如果为触发器启用了“允许手动关闭”设置，则可以手动关闭由该触发器生成的问题事件。这是在前端中通过[更新问题](/manual/acknowledgment#updating-problems)来完成的。事件不会被直接关闭，而是会创建一个“关闭事件”任务，并由任务管理器随后处理。任务管理器将生成相应的 OK 事件，问题事件也会随之关闭。

[comment]: # ({/ebd8b238-00be2f5b})
