[comment]: # translation:outdated

[comment]: # ({e02835c7-e02835c7})
# 3 トリガー

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

[comment]: # ({38df9f3c-d4a1b8b6})
#### 概要

トリガーは、アイテムによって収集されたデータを "評価" し、現在のシステム状態を表す論理式です。

アイテムはシステム データを収集するために使用されますが、これらのデータを常に追跡し、警戒すべき状態や注意が必要な状態を待つのは非常に現実的ではありません。 データを「評価」する処理は、トリガーの条件式に任せることができます。

トリガーの条件式は、どのような状態のデータが "許容範囲" であるかの閾値を定義することができます。したがって、取得したデータが許容範囲を超えると、トリガーは "起動" され、ステータスが障害に変更されます。

トリガーは、次のようなステータスを持つことができます：

|状態|説明|
|-----|-----------|
|正常|これは正常なトリガーの状態です。|
|障害|何かが起こった状態です。例えば、プロセッサの負荷が高すぎる。|
|不明|トリガーの値が計算できない。[不明な状態](#unknown-state)参照|

単純なトリガーでは、CPU負荷などの一部のデータの5分間の平均値にしきい値を設定したいかもしれません。これは、トリガーの条件式を以下のように定義することによって実現できます。

-   アイテムキーで受け取った値に'avg'関数を適用する
-   評価期間として5分間を使用
する
-   しきい値を'2'に設定する

```
 · avg(host/key,5m)>2
```

このトリガーは、5分間の平均が2を*超えたら*、障害イベントが発生します。（障害の状態になる）

より複雑なトリガーでは、条件式は複数の関数と複数の閾値の**組み合わせ**を含むことができます。 [トリガー条件式](/manual/config/triggers/expression)を参照してください。

[comment]: # ({/38df9f3c-d4a1b8b6})

[comment]: # ({5c11d08c-7c263ca6})
::: notetip
トリガーを有効にした (構成ステータスを *無効* から *有効* に変更)後、トリガー条件式は、その項目が値を受け取るか、時間ベースの関数を処理する時間が来るとすぐに評価されます。
:::

[comment]: # ({/5c11d08c-7c263ca6})

[comment]: # ({4d0d2ac7-a45a4e79})
ほとんどのトリガー関数はアイテムの値の[ヒストリ](/manual/config/items/history_and_trends)データに基づいて評価されますが、一部のトリガー関数は長期的な分析に使用されます。 **trendavg()**、**trendcount()** などはトレンド データを使用します。

[comment]: # ({/4d0d2ac7-a45a4e79})

[comment]: # ({87596066-6781ee38})
#### 計算時間

Zabbixサーバーが式の一部である新しい値を受け取るたびに、トリガーが再計算されます。 新しい値を受け取ると、式に含まれる各関数が再計算されます (新しい値を受け取った関数だけではありません)。

さらに、式で時間ベースの関数が使用されている場合は、新しい値が受信されるたび、**および**30 秒ごとにトリガーが再計算されます。

時間ベースの関数は、**nodata()**、**date()**、**dayofmonth()**、**dayofweek()**、**time()**、**now() です。 **; これらは、Zabbix 履歴同期プロセスによって 30 秒ごとに再計算されます。

トレンド関数 **のみ** を参照するトリガーは、式の最小期間ごとに 1 回評価されます。 [トレンド関数](/manual/appendix/functions/trends)も参照してください。

[comment]: # ({/87596066-6781ee38})

[comment]: # ({1fa7644e-1fa7644e})
#### 評価期間

評価期間とは、アイテムのヒストリを参照する関数で使用されるもので、対象とする期間を指定します。評価期間は、期間（30秒、10分、1時間）、値域（\#5 - 最新値5個）のいずれでも指定可能です。

評価期間は "now "まで計測され、ここで "now "は trigger の最新の再計算時間です(上記の[計算時間](#calculation_time)を参照)。
"now "はサーバーの "now"時間ではありません。

評価期間では、どちらかを指定します：

- "now-time period "と "now "の間のすべての値(または、タイムシフトを使用する場合、 "now-time shift-time period "と "now-time_shift "の間)を考慮する。
- 過去の値のうち、"now" までの num カウントを考慮しない。
    - 指定された期間や数に対して、利用可能な値が0である場合、この関数を使用するトリガーや計算アイテムは、サポートされません。

以下に注意：

- トリガーで単一の関数（ヒストリデータの参照）のみが使用されている場合、"now" は常に最新の受信値である。
  例えば、1時間前に最後の値を受信した場合、評価期間は最新の値までとみなされます。
- 新しいトリガーは、最初の値が受信されるとすぐに計算されます（ヒストリ関数）、時間ベースの機能では30秒以内に計算されます。
  したがって、トリガーが作成されてから、設定された評価期間（たとえば1時間）が経過していなくても、トリガーは計算されます。
  また、評価範囲が例えば最新の 10 個の値に設定されていたとしても、トリガーは最初の値の後に計算されます。

[comment]: # ({/1fa7644e-1fa7644e})

[comment]: # ({53f36bf7-e5de9dea})
#### 状態不明

次の場合は、トリガー条件式に不明なオペランドが現れる可能性があります。

-   取得不可なアイテムが使用されている
-   関数の評価でエラーが発生した

この場合トリガーは一般的に"不明"と評価されます (例外もあります)。詳細については[オペランドが不明な式](/manual/config/triggers/expression#未知のオペランドを持つ式)を参照してください。

未知のトリガーについて [通知を受ける](/manual/config/events/sources#内部イベント)ことも可能です。

[comment]: # ({/53f36bf7-e5de9dea})

