よりよい柔軟性をもつために、Zabbix はユーザーマクロをサポートしており、それはグローバル、テンプレート、ホストレベルで定義可能です。これらのマクロは特別のシンタックス:{$MACRO}を持っています。
マクロは以下の場所で使用できます:
次の文字はマクロ名内で使用可能です: A-Z , 0-9 , _ , .
Zabbix は 次の優先順位に従ってマクロを置き換えます。
つまり、ホストにマクロがない場合、Zabbixは深いレベルでホストテンプレートでマクロを検索します。ホストテンプレートにもマクロが見つからない場合、グローバルテンプレート(ある場合)が使用されます。 Zabbixでマクロが見つからない場合、マクロは置き換えられません。
ユーザーマクロを定義するには、フロントエンドで次の対応する場所を選択します:
<note tip>ユーザーマクロがテンプレート内のアイテムやトリガーで使用される場合、そのマクロがグローバルレベルで定義されている場合でも、テンプレートに追加することをお奨めします。そうしておくと、XMLにテンプレートをエクスポートし、他のシステムにインポートしても、マクロが期待通りの動きをします。 :::
グローバルのホストのマクロの最も一般的な使用例:
「Status of SSH daemon」アイテムキーでホストレベルのマクロを使用
**net.tcp.service[ssh,{$SSH_PORT}] **
このアイテムは複数のホストに割り当てられ、{$SSH_PORT} の値がそれらのホストに定義されるようになります。
「CPU load is too high」トリガーでホストレベルのマクロを使用
{ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}
テンプレート上に設定したとおりのトリガーが作成され、個別のホストで編集されることがありません。
<note tip>値の量を関数パラメータ(max(#3)など)として使用する場合、以下のように定義してマクロにハッシュマークを使用します。 :::
「CPU load is too high」トリガーで2つのマクロの使用:
**{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD} **
マクロは、この例の関数min()のようにトリガー関数のパラメータとして使用可能であることに注意してください。
<note important>パラメータや定数を参照している場合、トリガー条件式でのユーザーマクロは拡張されます。それらはホスト名やアイテムキー、関数、演算子をサポートして「いません」。 :::
本ページは2013/05/12時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this page」から英語版を参照してください。