6 タグ付け

概要

タグは、タグ名とタグ値で構成されます。 エンティティにタグを付ける際は、名前だけを使用することも、値と組み合わせて使用することもできます(例: mysqljiratarget:mysqlservice:jira など)。

タグは、さまざまなエンティティに定義できます。

  • テンプレート
  • ホスト
  • アイテム
  • Webシナリオ
  • トリガー
  • サービス
  • テンプレートのアイテムおよびトリガー
  • ホスト、アイテム、トリガーのプロトタイプ

タグの定義に関する一般的な推奨事項、および テンプレートアイテムトリガーローレベルディスカバリルールに関する具体的なガイダンスについては、Zabbix公式ガイドラインを参照してください。

タグには複数の用途がありますが、特に重要なのはイベントの識別です。 エンティティにタグが付けられている場合、そのタグ付きエンティティに関連する新しいイベントは、そのタグを継承します。例えば、次のとおりです。

  • タグ付きテンプレートの場合 - ホストのすべての障害(テンプレートのトリガーによって作成されたもの)は、テンプレートのタグを継承します。
  • タグ付きホストの場合 - ホストのすべての障害は、ホストのタグを継承します。
  • タグ付きアイテム/Webシナリオの場合 - アイテム/Webシナリオのすべての障害は、アイテム/Webシナリオのタグを継承します。
  • タグ付きトリガーの場合 - トリガーによって作成されたすべての障害は、トリガーのタグを継承します。

障害イベントは、テンプレート、ホスト、アイテム/Webシナリオ、トリガーというエンティティの連鎖全体から、すべてのタグを継承します。 同一の tag:value の組み合わせ(マクロ解決後)は1つにまとめられるため、重複は回避されます。

カスタムイベントタグにより、より柔軟な運用が可能になります。例えば、次のようなことができます。

  • イベント相関は、イベントタグに基づいて設定できます。
  • アクション条件は、イベントタグに基づいて設定できます。
  • アイテムの障害は、イベントタグに基づいてグループ化できます。
  • 障害タグは、障害をサービスにマッピングするために使用できます。

エンティティには、同じタグ名で異なるタグ値を持つタグを付けることができます(例: component:memorycomponent:storage)。 同様に、エンティティには値のないタグと、同じ名前で値のあるタグを付けることもできます(例: databasedatabase:postgresql)。 このようなタグは重複とは見なされません。

ユースケース

タグ付けの一般的なユースケースは次のとおりです。

  1. トリガーイベントを識別する:

    • トリガーのタグを定義します(例: scope:performance)。
    • このトリガーによって作成された障害には、そのトリガーのタグが付きます。
  2. テンプレート継承された障害を識別する:

    • テンプレートのタグを定義します(例: target:mysql)。
    • このテンプレートのトリガーによって作成された障害には、そのテンプレートのタグが付きます。
  3. ホストの障害を識別する:

    • ホストのタグを定義します(例: service:jira)。
    • このホストのトリガーによって作成された障害には、そのホストのタグが付きます。
  4. 関連するアイテムをフィルタリングする:

    • アイテムのタグを定義します(例: component:cpu)。
    • 監視最新データ では、アイテムを component:cpu タグでフィルタリングできます。
  5. アイテム値から抽出した情報をタグ値として使用する:

    • タグ値としてマクロを含むタグを定義します(例: tag-name:{{ITEM.VALUE<N>}.regsub()} )。
    • 監視障害 では、障害のタグ値はアイテム値から抽出されたデータに解決されます。
  6. ログファイル内の障害を識別し、それぞれ個別にクローズする:

    • ログ監視アイテム のトリガーに対して、マクロを使用してアイテム値から値を抽出するトリガーのタグを定義します(例: service:{{ITEM.VALUE<N>}.regsub()} )。
    • トリガー設定 で、イベント相関関係 を設定します:
      • 障害イベント生成モード を「複数」に設定します。
      • OKイベントでクローズ を「タグ値が一致する場合はすべての障害」に設定します。
      • 一致に使用するタグを設定します。
    • ログアイテムのトリガーによって作成された障害にはそのトリガーのタグが付き、個別にクローズされます。
  7. 通知をフィルタリングする:

    • トリガーのタグを定義します(例: trigger1 には scope:security、trigger2 には scope:availability)。
    • アクション条件 でタグフィルタリングを使用し、タグデータに一致するイベントの通知のみを受信します。
  8. 通知内で障害を識別する:

    • トリガーのタグを定義します。
    • 障害通知で {EVENT.TAGS} マクロを使用します。
    • 障害通知にはトリガーのタグが含まれるため、その通知がどのアプリケーション/サービスに属するかを容易に識別できます。
  9. テンプレートタグを使用して設定作業を簡素化する:

    • テンプレートのトリガーのタグを定義します。
    • このテンプレートトリガーから作成されたトリガーには、そのタグが付きます。
  10. ローレベルディスカバリ(LLD)からタグ付きトリガーを作成する:

    • タグ名またはタグ値にLLDマクロを含むトリガープロトタイプのタグを定義します(例: scope:{#FSNAME})。
    • このトリガープロトタイプから作成されたトリガーには、そのタグが付きます。
  11. サービスタグを使用してサービスを照合する:

    • サービスタグ を定義します。
    • 一致するタグを持つサービスに対して サービスアクション を設定します。
    • さらに、SLA計算のために、サービスタグを使用してサービスを SLA に関連付けます。
  12. サービス障害タグを使用してサービスを障害に関連付ける:

    • サービス設定障害タグ を定義します(例: target:mysql)。
    • 一致するタグを持つ障害は自動的にそのサービスに相関付けられ、設定されたサービスステータス計算ルールに基づいてサービスステータスが変化します。
  13. ホストがメンテナンスモードのときに障害を抑制する:

  14. ユーザーグループにアクセス権を付与する:

    • ユーザーグループ設定 でタグを定義します。
    • そのユーザーグループのユーザーは、定義されたタグを持つ障害のみを表示できます。

設定

タグは専用のタブで定義できます。たとえば、トリガーの設定です。

マクロのサポート

タグ内の組み込みマクロおよびユーザーマクロは、イベント発生時に展開されます。 イベントが発生するまでは、これらのマクロは Zabbix Webインターフェース で未展開のまま表示されます。

ローレベルディスカバリマクロは、ディスカバリ処理中に展開されます。

以下のマクロは、トリガーのタグ名および値で使用できます。

  • {ITEM.VALUE}, {ITEM.VALUE.AGE}, {ITEM.VALUE.DATE}, {ITEM.VALUE.TIME}, {ITEM.VALUE.TIMESTAMP}, {ITEM.LASTVALUE}, {ITEM.LASTVALUE.AGE}, {ITEM.LASTVALUE.DATE}, {ITEM.LASTVALUE.TIME}, {ITEM.LASTVALUE.TIMESTAMP}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT}, および {HOST.ID} の組み込みマクロ
  • {INVENTORY.*} の組み込みマクロ(トリガー式内の1つまたは複数のホストからホストインベントリ値を参照するため)
  • ユーザーマクロおよびコンテキスト付きユーザーマクロ(コンテキストにはローレベルディスカバリマクロを含めることができます)
  • ローレベルディスカバリマクロ(トリガープロトタイプのタグ内のみ)

以下のマクロは、テンプレート、ホスト、アイテム/Webシナリオのタグ名および値で使用できます。

  • {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT}, および {HOST.ID} の組み込みマクロ
  • {INVENTORY.*} の組み込みマクロ
  • ユーザーマクロ
  • ローレベルディスカバリマクロ(ホストプロトタイプおよびアイテムプロトタイプのタグ内のみ)

以下のマクロは、トリガーベースの通知で使用できます。

  • {EVENT.TAGS} および {EVENT.RECOVERY.TAGS} の組み込みマクロ(これらのマクロは、イベントタグまたは復旧イベントタグのカンマ区切りリストに展開されます)
  • {EVENT.TAGSJSON} および {EVENT.RECOVERY.TAGSJSON} の組み込みマクロ(これらのマクロは、イベントタグオブジェクトまたは復旧イベントタグオブジェクトを含む JSON 配列に展開されます)
トリガータグでの部分文字列抽出

タグ名またはタグ値の設定では、マクロ関数を使用した部分文字列抽出がサポートされています。 この関数は、サポートされているマクロによって取得された値に正規表現を適用します。例えば、次のようになります。

{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}

{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}

マクロ解決後のタグ名またはタグ値が255文字を超える場合、255文字に切り詰められます。

関連情報: イベントタグ付けのためのローレベルディスカバリマクロでのマクロ関数の使用も参照してください。

イベントタグの表示

タグが定義されている場合、新しいイベントで次の場所に表示できます。

表示されるタグの順序と数は、監視障害 または 障害 ダッシュボードウィジェットの タグ表示優先度 および タグの表示 フィルタリングオプションによって決まります。
表示できるタグは最大3つまでであることに注意してください。タグがそれより多い場合は、3つのドットにマウスオーバーすると、ポップアップウィンドウですべてのタグが表示されます。