タグ付け

タグには複数の用途があり、特に 障害 を識別するために使用されます。
エンティティにタグが付けられると、そのタグ付きエンティティに関連する新しいイベントは、そのタグを継承します。
たとえば、次のようになります。

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

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

手動クローズ によって生成された復旧イベントにも、テンプレート、ホスト、アイテム/Webシナリオ、トリガーから継承された解決済みイベントタグが含まれます。
これらのタグは通知内および {EVENT.RECOVERY.TAGS}{EVENT.RECOVERY.TAGSJSON} などのマクロから利用できます。

カスタムイベントタグを使用すると、より柔軟に設定できます。
たとえば、次のような用途があります。

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

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

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

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

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

TemplatesHostsItemsTriggersWeb scenarios の一覧とそれらのプロトタイプでは、Tags 列に通常のタグと継承されたタグの両方が表示されます。
継承された タグにマウスオーバーするかクリックすると、JavaScript のツールチップに "Inherited tag" と表示されます。
継承されたタグが通常のタグとしても存在する場合、表示される一覧に応じて異なるツールチップテキストが表示されます(たとえば、テンプレート 一覧では "Inherited and template tag"、ホスト 一覧では "Inherited and host tag" など)。
Webインターフェースの他の場所では、通常のタグと継承されたタグはまとめて表示され(重複は削除されます)、アイコンや追加のツールチップテキストは表示されません。

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

ユースケース

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

  1. トリガーイベントをマークする:

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

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

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

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

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

    • アイテム値からマクロを使用して値を抽出する ログ監視アイテム のトリガーに、トリガータグを定義します(例: service:{{ITEM.VALUE<N>}.regsub()} )。
    • トリガー設定 で、イベント相関 を設定します:
      • PROBLEM event generation mode を "Multiple" に設定する;
      • OK event closes を "All problems if tag values match" に設定する;
      • 照合用のタグを設定する。
    • ログアイテムのトリガーによって作成された障害にはトリガータグが付与され、個別にクローズされます。
  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 配列に展開されます)
トリガータグにおける部分文字列の抽出

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

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

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

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

関連項目: イベントタグ付けのための low-level discovery macros でのマクロ関数の使用。

イベントタグの表示

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

表示されるタグの順序と数は、Monitoring > Problems または Problems ダッシュボードウィジェットの Tag display priority および Show tags フィルタリングオプションによって決まります。 最大3つのタグまで表示できます。タグがそれ以上ある場合は、3つのドットにカーソルを合わせると、ポップアップウィンドウにすべてのタグが表示されます。