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