柔軟性を高めるために、Zabbixは、グローバルレベル、テンプレートレベル、およびホストレベルでユーザーマクロをサポートします。マクロには、特殊な構文があります:{$MACRO}。
マクロを使用できる場所は以下のとおりです:
以下の文字がマクロ名で利用できます。A-Z、0-9、_、.
Zabbixは、以下の優先順位でマクロを置き換えます。
マクロがホストに存在しない場合、Zabbixは深さが増すホストテンプレート内でマクロを探します。マクロが見つからない場合で、グローバルマクロが存在する場合は、使用されます。
Zabbixでマクロが見つけることができない場合、マクロは置き換えられません。
ユーザーマクロを定義する場合、Webインタフェース内で対応するページに移動します。
ユーザーマクロがテンプレートのアイテムまたはトリガーで使用される場合、マクロがグローバルレベルで定義されていても、テンプレートに追加することを勧めます。この方法で、テンプレートをXMLにエクスポートし、別のシステムにインポートしても、期待どおりにテンプレートは動作します。
グローバルマクロとホストマクロの最も一般的な使用方法:
「SSHデーモンのステータス」アイテムキーにおけるホストレベルマクロの使用:
net.tcp.service[ssh,{$SSH_PORT}]
このアイテムは複数のホストに割り当てることができます。({$SSH_PORT}の値がホストに定義されている場合)
「CPU load is too high」トリガーでのホストレベルマクロの使用:
{ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}
このようなトリガーは、テンプレートで作成され、個別のホストでは編集されません。
max(#3)などの関数パラメータとして値を使用する場合、以下のようにマクロ定義にハッシュマークを含めることができます。SOME_PERIOD ⇒ #3
「CPU負荷が高すぎます」トリガーでの2つのマクロの使用:
{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}
マクロをトリガー関数のパラメータとして使用できます。この例では、min関数です。
トリガー条件式において、パラメータまたは定数を参照する場合に、ユーザーマクロが展開します。ホスト、アイテムキー、関数、演算子または別のトリガー条件式を参照している場合は、トリガー条件式は展開されません。
本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。