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)。
    • 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配列に展開されます)
トリガータグでの部分文字列の抽出

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

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

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

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

関連項目: イベントタグ付けにおけるローレベルディスカバリマクロでのマクロ関数の使用。

イベントタグの表示

タグが定義されている場合、新しいイベントで以下の場所でタグを表示できます:

表示されるタグの順序と数は、監視データ > 障害 または 障害ダッシュボードウィジェットの タグ表示優先度 および タグの表示 フィルタリングオプションによって決まります。 最大3つのタグが表示されます。タグが3つを超える場合は、3つのドットにカーソルを合わせると、すべてのタグがポップアップウィンドウで表示されます。