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

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

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

触发器状态的变化是事件最常见和最重要的来源。每次触发器的状态改变时，都会生成一个事件。该事件包含了触发器状态变更的详细信息、发生时间以及触发器的新状态。

触发器会创建两种类型的事件：问题（Problem）和正常（OK）。

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

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

在以下情况下，一个问题事件（Problem event）将被创建：

-   当触发器状态为正常（OK）时，触发器表达式的计算结果为TRUE。
-   如果为触发器启用了多重问题事件生成，那么每次触发器表达式计算结果为TRUE。

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

[comment]: # ({136f5762-6f89a5a0})
#### 正常事件

一个正常事件（OK event）关闭关联的问题事件（Problem
event），可由以下三个部分创建：

-   触发器 - 基于“正常事件迭代（OK event
    generation）”和“正常事件关闭（OK event closes）”的设置；
-   关联项事件；
-   任务管理器 -
    当事件被[manual/config/events/手动关闭](/manual/config/events/手动关闭)。

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

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

触发器有“事件成功迭代（OK event
generation）”的设置，用来控制如何生成正常事件（OK event）：

-   *表达式* -
    当触表达式的计算结果为FALSE的时候，触发器在问题（Problem）状态中生成一个正常事件（OK
    event）。这是一个最简单的设置，为默认启动。
-   *恢复表达式* -
    当表达式的计算结果为FALSE，并且恢复表达式的计算结果为TURE的时候，会为问题（Problem）状态的触发器生成一个正常事件（OK
    event）。如果触发器的恢复条件和问题标准不同，则可以使用此设置。
-   *无* -
    正常事件从来不生成。这个可以和多重问题事件生成一起结合使用，以便在某事件发生时可以更简单的发送通知。

此外，触发器有“事件成功关闭（OK event
closes）”的设置，用来控制哪些问题事件（Problem events）被关闭：

-   *所有问题* - 正常事件（OK event）将关闭触发器创建的所有打开的问题；
-   *所有问题如果标记的值匹配*- 正常事件（OK
    event）将关闭触发器创建的打开的问题，并且至少有一个匹配的标记值。标记由“匹配”触发器设置标记定义。如果没有问题事件（Problem
    event）关闭，那么正常事件（OK
    event）将不会生成。这通常被称为触发级事件关联。

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

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

事件关联（也被称为全局事件关联）是一种设置自定义事件关闭（导致正常事件生成）的规则。

这个规则定义了新的问题事件如何于现有的问题事件配对，并通过生成相应的正常事件来关闭新的事件或匹配事件。

但是，必须仔细地配置事件关联，因为它可能会对事件处理性能造成负面影响，或者如果配置不当，则会关闭比预期更多的事件（在最坏的情况下可能会关闭所有的问题事件）。以下是几个关于配置的小提示：

1.  通过为控制事件（与旧事件配对的事件）设置唯一的标签来减小事件关联的范围，并使用“新的事件标记（new
    event tag）”来关联条件；
2.  不要忘记在使用“过去的事件标记”操作时添加基于过去事件的条件，否则可能会关闭所有现有的问题；
3.  避免在使用不同关联配置时使用通用的标记名称。

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

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

如果允许在触发器中启用“允许手动关闭”，那么可以手动关闭触发器生成的问题事件。这在[manual/acknowledges\#更新问题](/manual/acknowledges#更新问题)的界面中完成。这个事件并不是直接关闭，而是创建一个“关闭事件”的任务，任务管理器很快会处理它。任务管理器将会生成一个相应的正常事件，并且问题事件将会关闭。

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