You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

5 ローレベルディスカバリマクロ

概要

ローレベルディスカバリ(LLD)機能内で使用されるマクロの種類があります。

{#MACRO} 

これはLLDルールで使用され、ファイルシステム名、ネットワークインターフェース、SNMP OIDなどの実際の値を返すマクロです。

これらのマクロは、アイテム、トリガー、グラフ、およびLLDルールのプロトタイプを作成するために使用できます。 その後、実際のファイルシステムやネットワークインターフェースなどをディスカバリする際に、これらのマクロは実際の値に置き換えられ、実体を作成する基礎となります。

これらのマクロは、仮想マシンディスカバリにおけるホストおよびホストグループのプロトタイプ作成にも使用されます。

一部のローレベルディスカバリマクロは、ZabbixのLLD機能に「プリパッケージ」されています - {#FSNAME}、{#FSTYPE}、{#IFNAME}、{#SNMPINDEX}、{#SNMPVALUE}。ただし、カスタムローレベルディスカバリルールを作成する際に、これらの名前に従う必要はありません。その場合は、他の任意のLLDマクロ名を使用し、その名前を参照することができます。

サポートされているデータ型

カスタムディスカバリールールを定義する際、LLDマクロ用のJSONオブジェクトで返されるプロパティ値は、以下のいずれかのプリミティブ型でなければなりません。

  • string
  • number
  • boolean

配列、オブジェクト、null値はサポートされていません。そのような値を参照するLLDマクロは展開されず、アイテムの事前処理や作成時にリテラル(例:'{#MY_MACRO}')として表示されます。

サポートされている場所

LLDマクロは以下で使用できます:

  • 低レベルディスカバリールールのフィルター
  • ネストされた低レベルディスカバリールール内の
    • JSONPathの前処理パラメータ
    • カスタムLLDマクロ用のJSONPathフィールド
  • アイテムプロトタイプおよびディスカバリープロトタイプの
    • 名前
    • キーパラメータ
    • 単位
    • 更新間隔1
    • タイムアウト1
    • ヒストリ保存期間1
    • トレンド保存期間1
    • アイテム値の前処理ステップ
    • SNMP OID
    • IPMIセンサーフィールド
    • 計算/集約アイテム式の
      • 式の定数および関数パラメータ
      • アイテムキーパラメータ
    • 集約アイテムのフィルター条件(ホストグループ名およびタグ名)
    • SSHスクリプトおよびTelnetスクリプト
    • データベース監視SQLクエリ
    • JMXアイテムのエンドポイントフィールド
    • 説明
    • HTTPエージェントのURLフィールド
    • HTTPエージェントのHTTPクエリフィールド
    • HTTPエージェントのリクエストボディフィールド
    • HTTPエージェントの必要なステータスコードフィールド
    • HTTPエージェントのヘッダーフィールドのキーと値
    • HTTPエージェントのHTTP認証ユーザ名フィールド
    • HTTPエージェントのHTTP認証パスワードフィールド
    • HTTPエージェントのHTTPプロキシフィールド
    • HTTPエージェントのHTTP SSL証明書ファイルフィールド
    • HTTPエージェントのHTTP SSLキーのファイルフィールド
    • HTTPエージェントのHTTP SSLキーのパスワードフィールド
    • タグ
  • トリガープロトタイプの
    • 名前
    • 運用データ
    • 式(定数および関数パラメータのみ)
    • URL
    • 説明
    • タグ
  • グラフプロトタイプの
    • 名前
  • ホストプロトタイプの
    • 名前
    • 表示名
    • カスタムインターフェースフィールド: IP、DNS、ポート、SNMP v1/v2コミュニティ、 SNMP v3コンテキスト名、SNMP v3セキュリティ名、SNMP v3認証パスフレーズ、SNMP v3プライバシーパスフレーズ
    • ホストグループプロトタイプ名
    • ホストタグ値
    • ホストマクロ値
    • (完全なリストを参照)

これらの場所すべてで、低レベルディスカバリールールのフィルターを除き、LLDマクロは静的ユーザーマクロコンテキスト内で使用できます。

マクロ関数の使用

マクロ関数は、ローレベルディスカバリマクロでサポートされています(ただし、ローレベルディスカバリルールのフィルタではサポートされていません)。これにより、正規表現を使用してマクロ値の特定の部分を抽出できます。

たとえば、イベントタグ付けの目的で、次のLLDマクロから顧客名とインターフェース番号を抽出したい場合があります。

{#IFALIAS}=customername_1

この場合、regsubマクロ関数をトリガープロトタイプのイベントタグ値フィールドでマクロとともに使用できます。

カンマは引用符で囲まれていないアイテムのキーのパラメータでは使用できないため、マクロ関数を含むパラメータは引用符で囲む必要があります。パラメータ内で二重引用符をエスケープするには、バックスラッシュ(\)文字を使用してください。例:

net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]

マクロ関数の構文の詳細については、マクロ関数を参照してください。

マクロ関数はZabbix 4.0以降、ローレベルディスカバリマクロでサポートされています。

脚注

1 1 でマークされたフィールドでは、1つのマクロでフィールド 全体を埋める必要があります。
フィールド内の複数のマクロや、テキストと混在するマクロはサポートされていません。