You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

1 トリガーによるイベント相関

概要

トリガーベースのイベント相関は、1つのトリガーによって報告された個別の問題を相関させることができます。

通常、OKイベントは1つのトリガーによって作成されたすべての問題イベントをクローズできますが、より詳細なアプローチが必要な場合もあります。たとえば、ログファイルを監視する場合、ログファイル内の特定の問題を検出し、それらを一括ではなく個別にクローズしたい場合があります。

これは、PROBLEMイベント生成モードパラメータが複数に設定されているトリガーの場合です。このようなトリガーは通常、ログ監視やトラップ処理などに使用されます。

Zabbixでは、タグ付けに基づいて問題イベントを関連付けることができます。タグは値を抽出し、問題イベントの識別を作成するために使用されます。これを利用して、タグの一致に基づいて問題を個別にクローズすることもできます。

つまり、同じトリガーがイベントタグによって識別される個別のイベントを作成できます。したがって、問題イベントは1つずつ識別され、イベントタグによる識別に基づいて個別にクローズできます。

仕組み

ログ監視では、次のような行に遭遇することがあります。

Line1: Service 1 stopped
       Line2: Service 2 stopped
       Line3: Service 1 was restarted
       Line4: Service 2 was restarted

イベント相関のアイデアは、Line1の問題イベントをLine3の解決に、Line2の問題イベントをLine4の解決にマッチさせ、これらの問題を1つずつクローズできるようにすることです。

Line1: Service 1 stopped
       Line3: Service 1 was restarted #Line 1の問題がクローズ
       
       Line2: Service 2 stopped
       Line4: Service 2 was restarted #Line 2の問題がクローズ

これを行うには、これらの関連するイベントに「Service 1」や「Service 2」などのタグを付ける必要があります。これは、タグ値を抽出するためにログ行に正規表現を適用することで実現できます。イベントが作成されると、それぞれ「Service 1」と「Service 2」でタグ付けされ、問題を解決にマッチさせることができます。

設定

item

始めに、例えばログファイルを監視するような項目を設定するのがよいでしょう:

log[/var/log/syslog]

item が設定された状態で、設定変更が反映されるまで1分ほど待ってから、Latest dataにアクセスして、
item がデータ収集を開始したことを確認します。

トリガー

アイテムが動作している場合は、トリガーを設定する必要があります。ログファイル内のどのエントリに注意を払うべきかを決定することが重要です。たとえば、次のトリガー式は「Stopping」のような文字列を検索して、潜在的な問題を示します。

find(/My host/log[/var/log/syslog],,"regexp","Stopping")=1 

「Stopping」という文字列を含む各行が問題と見なされるようにするには、トリガー設定の問題イベント生成モードを「複数」に設定してください。

次に、リカバリー式を定義します。次のリカバリー式は、「Starting」という文字列を含むログ行が見つかった場合にすべての問題を解決します。

find(/My host/log[/var/log/syslog],,"regexp","Starting")=1 

これは望ましくないため、対応する根本的な問題のみがクローズされるように何らかの方法で確実にすることが重要です。ここでタグ付けが役立ちます。

トリガー設定でタグを指定することで、問題と解決を一致させることができます。次の設定を行う必要があります。

  • 問題イベント生成モード: 複数
  • OKイベントでクローズ: タグ値が一致するすべての問題
  • イベントマッチング用のタグ名を入力

  • タグを設定して、ログ行からタグ値を抽出します

正常に設定されていれば、監視障害でアプリケーションごとにタグ付けされ、解決にマッチした問題イベントを確認できます。

誤った設定により、無関係な問題に対して類似したイベントタグが作成される可能性があるため、以下に示すケースを必ずご確認ください!

  • インデックス付きマクロは常にトリガー設定のフィールドを参照し、リカバリー式は参照しません。 たとえば、リカバリーイベントでは、{ITEM.VALUE1}はリカバリー時点での問題式の最初のアイテムの最新値に解決されます。 リカバリー式が異なるアイテムに基づいており、リカバリー時点までに問題式アイテムの値が変化した場合、イベントには異なるタグが付き、相関されません。

  • 2つのアプリケーションが同じログファイルにエラーとリカバリーメッセージを書き込む場合、ユーザーはタグ値に異なる正規表現を使用して、{ITEM.VALUE}マクロからサービスAやサービスBの名前を抽出し、同じトリガーで2つのserviceタグを使用することを決定するかもしれません(たとえば、メッセージフォーマットが異なる場合)。ただし、正規表現に一致しない場合、これは計画通りに動作しない可能性があります。 一致しない正規表現は空のタグ値となり、問題イベントとOKイベントの両方でタグ値が空の場合、それらは相関されます。 そのため、サービスAからのリカバリーメッセージが、誤ってサービスBからのエラーメッセージをクローズしてしまう可能性があります。

  • 実際のタグとタグ値は、トリガーが発生したときにのみ表示されます。 使用した正規表現が無効な場合、暗黙的に*UNKNOWN*文字列に置き換えられます。最初の問題イベントで*UNKNOWN*タグ値が見逃された場合、同じ*UNKNOWN*タグ値を持つ後続のOKイベントが発生し、それらがクローズすべきでない問題イベントをクローズしてしまう可能性があります。

  • ユーザーがタグ値としてマクロ関数なしで{ITEM.VALUE}マクロを使用する場合、255文字の制限が適用されます。ログメッセージが長く、最初の255文字が非特異的な場合、無関係な問題に対しても類似したイベントタグが作成される可能性があります。