2 グローバルイベント相関

概要

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

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

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

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

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

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

グローバル相関ルールを設定できるのは、Super Admin レベルのユーザーのみです。

イベント相関は非常に慎重に設定する必要があります。設定によってはイベント処理性能に悪影響を与える可能性があり、また設定を誤ると意図した以上のイベントをクローズしてしまうことがあります(最悪の場合、すべての問題イベントがクローズされる可能性もあります)。

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

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

参照: 既知の問題

設定

イベント相関ルールをグローバルに設定するには、次の手順を実行します。

  • データ収集 > イベント相関 に移動します
  • 右側の イベント相関の作成 をクリックします(既存のルールを編集する場合は相関名をクリックします)
  • フォームに相関ルールのパラメータを入力します

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 conditionClose old events operation のみを使用するルールは、(欠落している)古いイベント条件を満たすすべての古いイベントに一致し、結果として古い障害をクローズしてしまいます。
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 文字に特定性がない場合、これによっても無関係な障害に対して類似したイベントタグが生成される可能性があります。

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

このグローバル相関ルールは、トリガー上に ホスト および port タグの値が存在し、それらが元のイベントと新しいイベントで同一である場合に、問題を相関付けします。

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