Sidebar

jp:manual:config:macros

2 マクロ

Zabbixにはマクロが豊富に用意されており、様々な状況で使用できます。マクロを活用することで、Zabbixの設定にかかる時間を短縮し、透過性を高めることができます。

サポートされているマクロのリスト

Zabbixでサポートされている全マクロのリストを以下に示します。

マクロ 通知とコマンド ディスカバリ通知 自動登録通知 GUIスクリプト アイテムキーのパラメータ マップラベル トリガー条件式 トリガー名 説明
{DATE} X X X 本日の日付(yyyy.mm.dd.形式)
{DISCOVERY.DEVICE.IPADDRESS} X
{DISCOVERY.DEVICE.STATUS} X
{DISCOVERY.DEVICE.UPTIME} X
{DISCOVERY.RULE.NAME} X
{DISCOVERY.SERVICE.NAME} X
{DISCOVERY.SERVICE.PORT} X
{DISCOVERY.SERVICE.STATUS} X
{DISCOVERY.SERVICE.UPTIME} X
{ESC.HISTORY} X エスカレーションヒストリ(以前に送信されたメッセージのログ)
{EVENT.ACK.HISTORY} X
{EVENT.ACK.STATUS} X
{EVENT.AGE} X X X イベントの時期(エスカレートされたメッセージに役立つ)
{EVENT.DATE} X X X イベントの日付
{EVENT.ID} X X X アクションをトリガーしたイベントのID(数値)
{EVENT.TIME} X X X イベントの時刻
{HOSTNAME<1-9>} X X X X 通知を生成したトリガーのN番目のアイテムのホスト名
{HOST.CONN<1-9>} X X X X IPとホストDNS名(ホスト設定に依存)
{HOST.DNS<1-9>} X X X X ホストDNS名。
{IPADDRESS<1-9>} X X X X 通知を生成したトリガーのN番目のアイテムのIPアドレス
{ITEM.LASTVALUE<1-9>} X X 通知を生成したトリガー条件式のN番目のアイテムの最新の値。Zabbix 1.4.3以降でサポートされます。{{HOSTNAME}:{TRIGGER.KEY}.last(0)}のエイリアスでもあります。
{ITEM.LOG.AGE<1-9>} X
{ITEM.LOG.DATE<1-9>} X
{ITEM.LOG.EVENTID<1-9>} X
{ITEM.LOG.NSEVERITY<1-9>} X
{ITEM.LOG.SEVERITY<1-9>} X
{ITEM.LOG.SOURCE<1-9>} X
{ITEM.LOG.TIME<1-9>} X
{ITEM.NAME<1-9>} X 通知を生成したトリガーのN番目のアイテムの名前
{ITEM.VALUE<1-9>} X X トリガーの表示に使用する場合は、トリガー条件式のN番目のアイテムの最新の値イベントの表示に使用する場合は、トリガー条件式のN番目のアイテムのイベント発生時のヒストリ値Zabbix 1.4.3以降でサポートされます。
{NODE.ID<1-9>} X X X
{NODE.NAME<1-9>} X X X
{PROFILE.CONTACT<1-9>} X ホストプロファイルに設定されている連絡先
{PROFILE.DEVICETYPE<1-9>} X ホストプロファイルに設定されているデバイス名
{PROFILE.HARDWARE<1-9>} X ホストプロファイルに設定されているハードウェア
{PROFILE.LOCATION<1-9>} X ホストプロファイルに設定されている場所
{PROFILE.MACADDRESS<1-9>} X ホストプロファイルに設定されているMACアドレス
{PROFILE.NAME<1-9>} X ホストプロファイルに設定されている名前
{PROFILE.NOTES<1-9>} X ホストプロファイルに設定されている備考
{PROFILE.OS<1-9>} X ホストプロファイルに設定されているOS
{PROFILE.SERIALNO<1-9>} X ホストプロファイルに設定されているシリアルNo
{PROFILE.SOFTWARE<1-9>} X ホストプロファイルに設定されているソフトウェア
{PROFILE.TAG<1-9>} X ホストプロファイルに設定されているタグ
{STATUS} X {TRIGGER.STATUS}のエイリアス
{TIME} X X X 現在時刻(hh:mm.ss)
{TRIGGER.COMMENT} X トリガーのコメント
{TRIGGER.EVENTS.UNACK} X X マップのマップ項目に対する未応答イベントの数、または通知で現在のイベントを生成したトリガーに対する未応答イベントの数。1.8.3以降のマップ項目ラベルでサポートされます。
{TRIGGER.EVENTS.PROBLEM.UNACK} X X 状態を無視する全てのトリガーに対する未応答障害イベントの数。1.8.3以降でサポートされます。
{TRIGGER.PROBLEM.EVENTS.PROBLEM.UNACK} X 障害のトリガーに対する未応答障害イベントの数。1.8.3以降でサポートされます。
{TRIGGER.ID} X アクションをトリガーしたトリガーのID(数値)
{TRIGGER.KEY<1-9>} X 通知を生成したトリガーのN番目のアイテムのキー
{TRIGGER.NAME} X トリガーの名前(説明)
{TRIGGER.NSEVERITY} X トリガーの深刻度(数値)。設定可能な値: 0 - 未分類、1 - 情報、 2 - 警告、3 - 軽度の障害、 4 - 重度の障害、 5 - 致命的な障害、Zabbix 1.6.2からサポートされます。
{TRIGGER.SEVERITY} X トリガーの深刻度。設定可能な値: 未分類、情報、警告、軽度の障害、重度の障害、致命的な障害、不明
{TRIGGER.STATUS}, {STATUS} X トリガー状態。トリガーが障害状態の場合は「ON」、正常状態の場合は「OFF」に置き換えられます。{STATUS} は非推奨
{TRIGGER.URL} X トリガーのURL
{TRIGGER.VALUE} X X X 現在のトリガーの値: 0 - トリガーが正常状態の場合、1 – トリガーが障害状態の場合、2 – トリガーが不明の場合このマクロは、トリガー条件式でも使用できます。
{TRIGGERS.UNACK} X トリガーの状態を無視するマップ項目に対する未応答トリガーの数。
{TRIGGERS.PROBLEM.UNACK} X マップ項目に対する未応答障害トリガーの数。1.8.3以降でサポートされます。
{host:key.func(param)} X X X シンプルなマクロ トリガー条件式.
{$MACRO} X X グローバルマクロとホストレベルマクロ.
ホストラベルのマクロは1.8以降でサポートされています。

グローバルマクロとホストレベルマクロ

より柔軟性を高めるため、テンプレートレベルマクロと同様に、Zabbixはグローバルとホストレベルのマクロをサポートします。これらのマクロは特別な記法を持っています: {$MACRO}. アイテムキーとトリガー式のなかでマクロを使用できます。

マクロ名には以下の文字を使用できます: A-Z , 0-9 , _ , .

Zabbixは、以下の優先順位に従いマクロを置き換えます。

  1. ホストマクロ(最初に確認)
  2. ホストのテンプレートに定義されたマクロ。Zabbixは、テンプレートの継承を考慮しながら、さらに深いレベルのテンプレートを確認します。
  3. グローバルマクロ(最後に確認)

つまり、ホストにマクロがない場合、Zabbixはホストテンプレートでマクロを検索します。ホストテンプレートにもマクロが見つからない場合、グローバルテンプレート(ある場合)が使用されます。

Zabbixでマクロが見つからない場合、マクロは置き換えられません。

グローバルとホストレベルのマクロによって、Zabbix設定のメンテナンスがさらに容易になります。

グローバルマクロとホストレベルマクロの最も一般的な使用例

  1. ホストに固有の属性(パスワード、ポート番号、ファイル名、正規表現など)を含むテンプレートを利用する
  2. ワンクリックによるグローバルな設定変更と微調整のためのグローバルマクロ
例1

アイテム “Status of SSH daemon” のキーにおけるホストマクロの使用:

ssh,{$SSH_PORT}

例2

トリガー “CPU load is too high” におけるホストマクロの使用:

{ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}

値の量を関数パラメータ(max(#3)など)として使用する場合、以下のようにマクロにハッシュマークを使用します。
例3

「CPU load is too high」トリガーで2つのマクロを使用する場合:

{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}

この例の関数min()では、トリガー関数のパラメータとしてマクロを使用できることに注意してください。

現在、ユーザマクロは[SNMP OID]フィールドではサポートされていません。