グローバルイベント相関

概要

グローバルイベント相関を使用すると、Zabbix で監視しているすべてのメトリクスを対象にして相関関係を作成できます。

まったく異なるトリガーによって作成されたイベントを相関させ、それらすべてに同じ操作を適用できます。 インテリジェントな相関ルールを作成することで、何千件もの繰り返し通知をなくし、障害の根本原因に集中できるようになります。

グローバルイベント相関は、1つのトリガーに基づく障害と復旧のロジックから解放される強力な仕組みです。 これまでは、1つの障害イベントは1つのトリガーによって作成され、その障害の復旧も同じトリガーに依存していました。 あるトリガーによって作成された障害を、別のトリガーで解決することはできませんでした。 しかし、イベントタグに基づくイベント相関を使用すれば、それが可能になります。

例えば、ログトリガーでアプリケーションの障害を報告し、ポーリングトリガーでアプリケーションが稼働していることを報告できます。 イベントタグを利用して、ログトリガーに status:down、ポーリングトリガーに status:up というタグを付けることができます。 その後、グローバル相関ルールでこれらのトリガーを関連付け、この相関に対して、古いイベントをクローズするなどの適切な操作を割り当てることができます。

別の用途として、グローバルイベント相関を使用して類似したトリガーを識別し、それらに同じ操作を適用できます。 ネットワークポートの障害ごとに、障害レポートを1件だけ受け取ることができたらどうでしょうか。すべてを報告する必要はありません。 これもグローバルイベント相関で実現できます。

グローバルイベント相関は、相関ルールで設定します。 相関ルールでは、新しい障害イベントを既存の障害イベントとどのように組み合わせるか、また一致した場合に何を行うか(新しいイベントをクローズする、一致した古いイベントに対応するOKイベントを生成してクローズする)を定義します。 グローバル相関によって障害がクローズされた場合、監視 > 障害情報 列に表示されます。

グローバル相関ルールの設定は、特権管理者レベルのユーザーのみが実行できます。

イベント相関は、イベント処理のパフォーマンスに悪影響を及ぼしたり、設定を誤ると意図した数を超えるイベントをクローズしたりする可能性があるため、十分に注意して設定する必要があります(最悪の場合、すべての障害イベントがクローズされる可能性があります)。

グローバル相関を安全に設定するには、次の重要なヒントに従ってください。

  • 相関の範囲を絞り込みます。 新しいイベントには、古いイベントと組み合わせるための一意のタグを必ず設定し、新しいイベントのタグ名 相関条件を使用します。
  • 古いイベントをクローズする場合は、明示的な古いイベント条件を追加します。 古いイベントをクローズを選択する場合は、少なくとも1つの古いイベント条件(例えば、古いイベントのタグ名古いイベントのタグ値、またはイベントタグのペア)を必ず追加してください。そうしないと、ルールが無関係な既存の障害イベントに一致してクローズする可能性があります(最悪の場合、すべての障害が対象になります)。 実行時の値(host:port、セッションIDなど)を照合する場合は、イベントタグのペアを使用し、可能な場合はホストまたはホストグループによってさらに一致範囲を絞り込むことを推奨します。
  • 異なる相関設定で使用される可能性のある、一般的なタグ名の使用は避けてください。
  • 相関ルールの数は、本当に必要なものに限定してください。

関連項目: 既知の問題

設定

イベント相関ルールをグローバルに設定するには:

  1. Data collection > Event correlation に移動します。
  2. 右側の Create event correlation をクリックします(または、既存のルールを編集するには相関名をクリックします)。
  3. フォームに相関ルールのパラメーターを入力します。

correlation\_rule.png

必須入力フィールドには赤いアスタリスクが付いています。

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文字に特定性がない場合、無関係な障害に対しても類似したイベントタグが生成されることがあります。

同じネットワークポートからの繰り返しの障害イベントを停止します。

このグローバルな相関ルールは、トリガーに hostport のタグ値が存在し、元のイベントと新しいイベントでそれらが同じ場合に、障害を相関付けます。

この操作により、同じネットワークポート上の新しい障害イベントがクローズされ、元の障害のみがオープンのまま保持されます。