3 トリガーによる障害検知
Zabbixでの障害検知はトリガーに基づいています。
トリガーは障害の条件を記述し、障害が発生した場合にZabbixが対応できるようにします。
障害検知の全体的なワークフローは以下の通りです。
-
データを収集するアイテムがあることを確認します。
-
このアイテムに対してトリガーを定義します。トリガーがなければ、Zabbixはデータを収集するだけで、何も対応しません。
-
検出された障害を確認します。
-
通知を受信し、リモートコマンドを実行します(定義されている場合)。
公式のZabbixテンプレートには、あらかじめ定義されたトリガーが含まれています。 Linuxの監視にテンプレートを適用する手順を参照してください。
「トリガー」とは?
トリガーは、トリガー式によって問題の条件を記述します。
実際に問題の条件が発生した場合、それがトリガーが「発火」した状態(Zabbixで問題が作成される)です。
問題の条件は、最新値、平均値、検出された文字列、その他多くの関数に基づくことができます。バイナリまたはJSONのデータ型で値を返すアイテムにはトリガーを作成できません。
単純なトリガー式は、括弧内で指定されたデータ(通常はデータアイテムと時間ウィンドウ)に対して関数(例えば、最大値の場合はmax())を計算し、この計算結果をしきい値と比較します。
例えば:
max(/host/vfs.fs.size[/,free],5m)<10G
このトリガーは、5分間にわたって測定されたディスク空き容量が常に10GB未満であった場合に発火します。
トリガーには以下の状態があります:
| トリガーの状態 | 説明 | Zabbixでの動作 |
|---|---|---|
| OK | トリガー式が「0」(またはFALSE)と評価された | 問題は作成されない (既存の場合)問題が解決される |
| Problem | トリガー式が「1」(またはTRUE)と評価された | 問題が作成される |
何らかの理由でトリガー式の評価ができない場合もあります。不明な式の状態を参照してください。
その他のリソース:
計算頻度
トリガーは、Zabbixサーバーが式の一部である新しい値を受信するたびに再計算されます。 新しい値が受信されると、式に含まれる各関数が再計算されます(新しい値を受信した関数だけでなく)。
さらに、式に以下のいずれかが含まれている場合、トリガーは30秒ごとに(history syncerによって)再計算されます。
トレンド関数のみを含むトリガーは、式内の最小の時間間隔ごとに1回評価されます。多くのトリガー関数はアイテム値の履歴データを使用しますが、トレンド関数はトレンドデータを使用します。