6 タグ付け

概要

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

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

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

テンプレートホストアイテムトリガーWebシナリオのリストおよびそのプロトタイプでは、タグ列に通常のタグと継承されたタグの両方が表示されます。 継承タグにマウスを重ねるかクリックすると、「継承されたタグ」というテキストのJavaScriptツールチップが表示されます。 継承タグが通常のタグとしても存在する場合、表示されるリストによって異なるツールチップテキストが表示されます(例: テンプレートリストでは「継承およびテンプレートタグ」、ホストリストでは「継承およびホストタグ」など)。 Webインターフェースの他の場所では、通常のタグと継承タグが一緒に表示されます(重複は削除されます)、アイコンや追加のツールチップテキストは表示されません。

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

タグには複数の目的がありますが、最も重要なのはイベントのマークです。 エンティティにタグが付けられている場合、タグ付きエンティティに関連する新しいイベントは、そのタグを継承します。 例:

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

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

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

カスタムイベントタグは、より柔軟性を提供します。 例:

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

エンティティには、同じタグ名でも異なるタグ値でタグを付けることができます(例: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フロントエンドで未解決のまま表示されます。

低レベルディスカバリマクロは、ディスカバリプロセス中に解決されます。

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

  • {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つまたは複数のホストのインベントリ値を参照するため)
  • ユーザーマクロおよびコンテキスト付きユーザーマクロ(コンテキストには低レベルディスカバリマクロを含めることができます)
  • 低レベルディスカバリマクロ(トリガープロトタイプタグのみ)

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

  • {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つを超える場合は、3つのドットにカーソルを合わせると、すべてのタグがポップアップウィンドウで表示されます。