グローバルイベント相関
概要
グローバルイベント相関を使用すると、Zabbixで監視しているすべてのメトリクスにまたがって関連付けを行うことができます。
完全に異なるトリガーによって生成されたイベントを相関させ、それらすべてに同じ操作を適用できます。 インテリジェントな相関ルールを作成することで、何千もの繰り返し通知を減らし、障害の根本原因に集中できるようになります。
グローバルイベント相関は、1つのトリガーに基づく障害および復旧ロジックから切り離すことを可能にする強力な仕組みです。 これまで、単一の障害イベントは1つのトリガーによって生成され、その障害の解決も同じトリガーに依存していました。 あるトリガーで発生した障害を別のトリガーで解決することはできませんでした。 しかし、イベントタグ付けに基づくイベント相関を使えば可能です。
たとえば、ログのトリガーはアプリケーションの問題を報告し、ポーリングのトリガーはアプリケーションが稼働中であることを報告する場合があります。 イベントタグを活用して、ログのトリガーに status:down、ポーリングのトリガーに status:up を付けることができます。 その後、グローバル相関ルールでこれらのトリガーを関連付け、古いイベントを閉じるなど、この相関に適切な操作を割り当てられます。
別の用途として、グローバル相関は類似したトリガーを識別し、それらに同じ操作を適用できます。 ネットワークポートの問題について、1件だけ障害レポートを受け取れればよいとしたらどうでしょうか。すべてを報告する必要はありません。 それもグローバルイベント相関で可能です。
グローバルイベント相関は 相関ルール で設定します。 相関ルールでは、新しい障害イベントを既存の障害イベントとどのように対応付けるか、また一致した場合に何を行うか(新しいイベントを閉じる、対応するOKイベントを生成して一致した古いイベントを閉じる)を定義します。 障害がグローバル相関によって閉じられた場合は、Monitoring > Problems の Info 列に表示されます。
グローバル相関ルールの設定は、Super Admin 権限のユーザーのみが利用できます。
イベント相関は、イベント処理性能に悪影響を与えたり、設定を誤ると意図より多くのイベントを閉じてしまったりする可能性があるため、非常に慎重に設定する必要があります(最悪の場合、すべての障害イベントが閉じられることもあります)。
グローバル相関を 安全に 設定するには、次の重要なヒントに従ってください。
- 相関の範囲を狭めます。 新しいイベントと古いイベントを対応付ける際は、常に一意のタグを新しいイベントに設定し、New event tag name の相関条件を使用してください。
- Close old events を使用する場合は、明示的な古いイベント条件を追加します。 Close old events を選択する場合は、少なくとも1つの Old event 条件(たとえば、Old event tag name、Old event tag value、または Event tag pair)を必ず追加してください。そうしないと、ルールが無関係な既存の障害イベントに一致して閉じてしまう可能性があります(最悪の場合、すべての障害)。 実行時の値(host:port、session id など)を照合するには Event tag pair を優先し、可能であれば host や host group でさらに一致範囲を絞り込んでください。
- 異なる相関設定で使われる可能性のある一般的なタグ名の使用は避けてください。
- 本当に必要な相関ルールだけに数を絞ってください。
関連情報: 既知の問題。
設定
イベント相関ルールをグローバルに設定するには:
- Data collection > Event correlation に移動します。
- 右側の Create event correlation をクリックします(または、既存のルールを編集するには相関名をクリックします)。
- フォームに相関ルールのパラメーターを入力します。

必須入力フィールドには赤いアスタリスクが付いています。
| Parameter | Description |
|---|---|
| Name | 一意の相関ルール名。 |
| Type of calculation | 条件の計算方法として、次のオプションを使用できます: And - すべての条件を満たす必要があります Or - 1つの条件を満たせば十分です And/Or - 異なる条件タイプでは AND、同じ条件タイプでは OR Custom expression - アクション条件を評価するためのユーザー定義の計算式です。すべての条件(大文字の A、B、C、... で表されます)を含める必要があり、スペース、タブ、括弧 ( )、and(大文字小文字を区別)、or(大文字小文字を区別)、not(大文字小文字を区別)を含めることができます。 |
| Conditions | 条件の一覧です。条件の設定方法の詳細は以下を参照してください。 |
| Description | 相関ルールの説明。 |
| Operations | イベントが相関されたときに実行する操作のチェックボックスをオンにします。使用できる操作は次のとおりです: Close old events - 新しいイベントが発生したときに古いイベントを閉じます。Close old events 操作を使用する場合は、必ず古いイベントに基づく条件を追加してください。追加しないと、既存の障害がすべて閉じられる可能性があります。 Close new event - 発生した新しいイベントを閉じます。 警告! Close old events/Close new event を使用する場合は、古い/新しいイベント条件を空欄のままにしないでください。Close old events 操作を、古いイベントに一致する条件を追加せずに選択すると、Zabbix は既存のすべての古いイベントに一致し、それらを閉じてしまう可能性があります。Close old events を使用する場合は、必ず明示的な古いイベント条件(たとえば、Old event tag name または Event tag pair)を追加してください。たとえば、New event condition のみと Close old events 操作を使用するルールでは、(欠落している)古いイベント条件に一致するすべての古いイベントが一致対象となり、結果として古い障害が閉じられます。 |
| Enabled | このチェックボックスをオンにすると、相関ルールが有効になります。 |
新しい条件の詳細を設定するには、Conditions ブロックの
をクリックします。
ポップアップウィンドウが開き、条件の詳細を編集できます。

| Parameter | Description |
|---|---|
| New condition | イベントを相関させる条件を選択します。 注意 旧イベント条件が指定されていない場合、すべての旧イベントが一致して閉じられる可能性があります。同様に、新イベント条件が指定されていない場合、すべての新イベントが一致して閉じられる可能性があります。 使用できる条件は次のとおりです: Old event tag name - 一致させる古いイベントのタグ名を指定します。 New event tag name - 一致させる新しいイベントのタグ名を指定します。 New event host group - 一致させる新しいイベントのホストグループを指定します。 Event tag pair - 一致させる新しいイベントのタグ名と古いイベントのタグ名を指定します。この場合、両方のイベントのタグの値が一致すれば一致とみなされます。タグの名前は一致している必要はありません。 このオプションは、設定時点では不明な場合がある実行時の値を一致させるのに便利です(例 も参照してください)。 Old event tag value - 次の演算子を使用して、一致させる古いイベントのタグ名と値を指定します: equals - 古いイベントのタグ値と等しい does not equal - 古いイベントのタグ値と等しくない contains - 古いイベントのタグ値に文字列を含む does not contain - 古いイベントのタグ値に文字列を含まない New event tag value - 次の演算子を使用して、一致させる新しいイベントのタグ名と値を指定します: equals - 新しいイベントのタグ値と等しい does not equal - 新しいイベントのタグ値と等しくない contains - 新しいイベントのタグ値に文字列を含む does not contain - 新しいイベントのタグ値に文字列を含まない |
設定ミスが起こり得るため、無関係な障害に対して類似したイベントタグが作成される可能性がある場合は、以下のケースを確認してください。
- 実際のタグとタグ値は、トリガーが発火したときにのみ表示されます。 使用した正規表現が無効な場合、それは静かに UNKNOWN 文字列に置き換えられます。 最初の障害イベントで UNKNOWN タグ値を見逃すと、その後に同じ UNKNOWN タグ値を持つ OK イベントが発生し、本来閉じるべきではない障害イベントを閉じてしまう可能性があります。
- ユーザーがタグ値としてマクロ関数なしで {ITEM.VALUE} マクロを使用すると、255文字の制限が適用されます。 ログメッセージが長く、最初の255文字に特定性がない場合、無関係な障害に対しても類似したイベントタグが生成されることがあります。
例
同じネットワークポートからの繰り返しの障害イベントを停止します。

このグローバルな相関ルールは、トリガーに host と port のタグ値が存在し、元のイベントと新しいイベントでそれらが同じ場合に、障害を相関付けます。
この操作により、同じネットワークポート上の新しい障害イベントがクローズされ、元の障害のみがオープンのまま保持されます。