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)。
    • MonitoringLatest data では、component:cpu タグでアイテムをフィルタリングできます。
  5. アイテム値から抽出した情報をタグ値として使用する:

    • タグ値としてマクロを含むタグを定義します(例: tag-name:{{ITEM.VALUE<N>}.regsub()})。
    • MonitoringProblems では、障害のタグ値はアイテム値から抽出されたデータに解決されます。
  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 を使用してタグ名またはタグ値を設定する際にサポートされています。
この関数は、supported マクロによって取得された値に正規表現を適用します。例えば、次のように使用します。

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

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

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

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

イベントタグの表示

タグは、定義されている場合、以下で新しい障害とともに表示できます。

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