コマンド内でのマクロの使用


マクロ

Nagiosで利用可能な特徴のうちのひとつにコマンド定義でマクロを使えるという能力があります。 コマンドの実行直前にNagiosはコマンド内のそれらに対応するすべてのマクロを置き換えます。 いくつかの一般的なコマンドに必要なものをハンドルして定義することを可能にします。

マクロの代替Macro Substitution

いかなるコマンド(ホストとサービスチェック、通知、イベントハンドラなど)が実行される前に、Nagiosはコマンド定義に対応する ものを見つけていかなるマクロにも置き換えます。

コマンド定義でホストとサービスのマクロを使う際、これらはコマンドが実行されているホストかサービスの値を参照します。 例を示しましょう。我々はホスト定義を用いてcheck_pingコマンドを以下のように定義しているとします。:

define host{
	host_name		linuxbox
	address		192.168.1.2
	check_command	check_ping
	...
	}
	
define command{
	command_name    check_ping
	command_line    /usr/local/nagios/libexec/check_ping -H $HOSTADDRESS$ -w 100.0,90% -c 200.0,60%
	}

ホストチェックの際に展開された/最終的なコマンドラインは以下のようになります。:

	/usr/local/nagios/libexec/check_ping -H 192.168.1.2 -w 100.0,90% -c 200.0,60%

あなたはコマンドに引数を持たせる事が出来、それはコマンド定義よりむしろ元の形のまま手軽に行えます。 引数はオブジェクト定義(例 ホストやサービス)で指定し、コマンド名からはエクスクラメーションマーク(!)で区切ります:

define service{
	host_name		linuxbox
	service_description	PING
	...
	check_command	check_ping!200.0,80%!400.0,40%
	...
	}

上の例では、サービスチェックコマンドに2つの引数を持っています($ARGn$ マクロを参照して下さい)。 $ARG1$マクロは"200.0,80%"そして$ARG2$は"400.0,40%"になります(両方ともダブルクォートはありません)。 check_pingコマンド定義より早くホスト定義が以下のようにされているとします:

define command{
	command_name    check_ping
	command_line    /usr/local/nagios/libexec/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
	}

展開された/最終的にサービスチェックで実行されるコマンドラインは以下のようになります:

	/usr/local/nagios/libexec/check_ping -H 192.168.1.2 -w 200.0,80% -c 400.0,40%

オンデマンドマクロ

通常、コマンド定義でホストとサービスのマクロを使う時、コマンドが実行されているホストやサービスの値を参照します。 例えば、ホストチェックコマンドが"linuxbox"という名前に対して実行される時、下の図にリストされている全てのマクロ はホスト("linuxbox")の値を参照します。

コマンドの中で別のホストやサービス(コマンドを実行していないホスト)の値を参照したいのであれば、 "オンデマンド"マクロと呼ばれるものを使うことができます。 オンデマンドマクロは通常のマクロに見えますが、ホストやサービスが得るべき値を含んでいる事だけが違います。 以下にあるのは基本的なオンデマンドマクロのフォーマットです:

マクロ名はホストやサービスの識別子をコロン(:)で区切る事に注意して下さい。 オンデマンドサービスマクロでは、サービスIDはホスト名とサービスの説明から成ります - これらも同じくコロンで区切ります(:)

オンデマンドホストとサービスマクロの例は以下の通りです:

$HOSTDOWNTIME:myhost$
$SERVICESTATEID:novellserver:DS Database$

マクロの浄化

いくつかのマクロは実行されるコマンドに代入が行われる前に潜在的に危険なシェルのメタ文字列を取り去ります。 マクロから取り去られる文字列はillegal_macro_output_chars設定に依存しています。 以下のマクロは潜在的に危険な文字列を取り去ります。

  1. $HOSTOUTPUT$
  2. $HOSTPERFDATA$
  3. $HOSTACKAUTHOR$
  4. $HOSTACKCOMMENT$
  5. $SERVICEOUTPUT$
  6. $SERVICEPERFDATA$
  7. $SERVICEACKAUTHOR$
  8. $SERVICEACKCOMMENT$

環境変数としてのマクロ

Nagios 2.0を起動すると、環境変数として多くの利用可能なマクロが生成されます。 これはNagiosから起動するスクリプト(例 サービスとホストのチェックコマンド、通知コマンドなど)が通常の環境変数のごとく直接マクロを参照できる事を意味します。 セキュリティと健全性の為に、$USERn$と"オンデマンド" ホストおよびサービスのマクロは 環境変数として利用できないようになっています。 マクロを含んだ環境変数は彼らの名前の先頭に"NAGIOS_"をつけたものが同じマクロ名(以下参照)に対応づけられ命名されています。

マクロの有効性

コマンドで定義したマクロは全て使えますが、特定のコマンドでは全てのマクロが"有効"だと分かりません。 例えば、いくつかのマクロはサービス通知コマンドの間だけ有効になり、他はホストチェックコマンドの間だけ有効かもしれません。

  1. サービスチェック
  2. サービス通知
  3. ホストチェック
  4. ホスト通知
  5. サービスイベントハンドラ と グローバルサービスイベントハンドラ
  6. ホストイベントハンドラ とグローバルホストイベントハンドラ
  7. OCSPコマンド
  8. OCHPコマンド
  9. サービスパフォーマンスデータ コマンド
  10. ホストパフォーマンスデータコマンド

以下の表はNagiosで現在利用可能なマクロの全一覧と各々の簡単な説明、および有効なコマンドタイプです。 無効なマクロがコマンド内で使われている場合は、空文字列に置き換えられます。 マクロは全て大文字と$文字で構成されている事に注意して下さい。

有効なマクロの表

凡例:
Noマクロ利用不可
Yesマクロ利用可

マクロ名 サービスチェック サービス通知 ホストチェック ホスト通知 サービスイベントハンドラ, グローバルサービスイベントハンドラ, OCSPコマンド ホストイベントハンドラ,グローバルホストイベントハンドラ, OCHPコマンド サービスパフォーマンスデータコマンド ホストパフォーマンスデータコマンド
ホストマクロ: 3
$HOSTNAME$ YesYesYesYesYesYesYesYes
$HOSTALIAS$ YesYesYesYesYesYesYesYes
$HOSTADDRESS$ YesYesYesYesYesYesYesYes
$HOSTSTATE$ YesYesYes 1YesYesYesYesYes
$HOSTSTATEID$ YesYesYes 1YesYesYesYesYes
$HOSTSTATETYPE$ YesYesYes 1YesYesYesYesYes
$HOSTATTEMPT$ YesYesYesYesYesYesYesYes
$HOSTLATENCY$ YesYesYesYesYesYesYesYes
$HOSTEXECUTIONTIME$ YesYesYes 1YesYesYesYesYes
$HOSTDURATION$ YesYesYesYesYesYesYesYes
$HOSTDURATIONSEC$ YesYesYesYesYesYesYesYes
$HOSTDOWNTIME$ YesYesYesYesYesYesYesYes
$HOSTPERCENTCHANGE$ YesYesYesYesYesYesYesYes
$HOSTGROUPNAME$ YesYesYesYesYesYesYesYes
$HOSTGROUPALIAS$ YesYesYesYesYesYesYesYes
$LASTHOSTCHECK$ YesYesYesYesYesYesYesYes
$LASTHOSTSTATECHANGE$ YesYesYesYesYesYesYesYes
$LASTHOSTUP$ YesYesYesYesYesYesYesYes
$LASTHOSTDOWN$ YesYesYesYesYesYesYesYes
$LASTHOSTUNREACHABLE$ YesYesYesYesYesYesYesYes
$HOSTOUTPUT$ YesYesYes 1YesYesYesYesYes
$HOSTPERFDATA$ YesYesYes 1YesYesYesYesYes
$HOSTCHECKCOMMAND$ YesYesYesYesYesYesYesYes
$HOSTACKAUTHOR$ NoNoNoYesNoNoNoNo
$HOSTACKCOMMENT$ NoNoNoYesNoNoNoNo
$HOSTACTIONURL$ YesYesYesYesYesYesYesYes
$HOSTNOTESURL$ YesYesYesYesYesYesYesYes
$HOSTNOTES$ YesYesYesYesYesYesYesYes
サービスマクロ:
$SERVICEDESC$ YesYesNoNoYesNoYesNo
$SERVICESTATE$ Yes 2YesNoNoYesNoYesNo
$SERVICESTATEID$ Yes 2YesNoNoYesNoYesNo
$SERVICESTATETYPE$ YesYesNoNoYesNoYesNo
$SERVICEATTEMPT$ YesYesNoNoYesNoYesNo
$SERVICELATENCY$ YesYesNoNoYesNoYesNo
$SERVICEEXECUTIONTIME$ Yes 2YesNoNoYesNoYesNo
$SERVICEDURATION$ YesYesNoNoYesNoYesNo
$SERVICEDURATIONSEC$ YesYesNoNoYesNoYesNo
$SERVICEDOWNTIME$ YesYesNoNoYesNoYesNo
$SERVICEPERCENTCHANGE$ YesYesNoNoYesNoYesNo
$SERVICEGROUPNAME$ YesYesNoNoYesNoYesNo
$SERVICEGROUPALIAS$ YesYesNoNoYesNoYesNo
$LASTSERVICECHECK$ YesYesNoNoYesNoYesNo
$LASTSERVICESTATECHANGE$ YesYesNoNoYesNoYesNo
$LASTSERVICEOK$ YesYesNoNoYesNoYesNo
$LASTSERVICEWARNING$ YesYesNoNoYesNoYesNo
$LASTSERVICEUNKNOWN$ YesYesNoNoYesNoYesNo
$LASTSERVICECRITICAL$ YesYesNoNoYesNoYesNo
$SERVICEOUTPUT$ Yes 2YesNoNoYesNoYesNo
$SERVICEPERFDATA$ Yes 2YesNoNoYesNoYesNo
$SERVICECHECKCOMMAND$ YesYesNoNoYesNoYesNo
$SERVICEACKAUTHOR$ NoYesNoNoNoNoNoNo
$SERVICEACKCOMMENT$ NoYesNoNoNoNoNoNo
$SERVICEACTIONURL$ YesYesNoNoYesNoYesNo
$SERVICENOTESURL$ YesYesNoNoYesNoYesNo
$SERVICENOTES$ YesYesNoNoYesNoYesNo
集計マクロ:
$TOTALHOSTSUP$ YesYes 4YesYes 4YesYesYesYes
$TOTALHOSTSDOWN$ YesYes 4YesYes 4YesYesYesYes
$TOTALHOSTSUNREACHABLE$ YesYes 4YesYes 4YesYesYesYes
$TOTALHOSTSDOWNUNHANDLED$ YesYes 4YesYes 4YesYesYesYes
$TOTALHOSTSUNREACHABLEUNHANDLED$ YesYes 4YesYes 4YesYesYesYes
$TOTALHOSTPROBLEMS$ YesYes 4YesYes 4YesYesYesYes
$TOTALHOSTPROBLEMSUNHANDLED$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICESOK$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICESWARNING$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICESCRITICAL$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICESUNKNOWN$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICESWARNINGUNHANDLED$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICESCRITICALUNHANDLED$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICESUNKNOWNUNHANDLED$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICEPROBLEMS$ YesYes 4YesYes 4YesYesYesYes
$TOTALSERVICEPROBLEMSUNHANDLED$ YesYes 4YesYes 4YesYesYesYes
通知マクロ:
$NOTIFICATIONTYPE$ NoYesNoYesNoNoNoNo
$NOTIFICATIONNUMBER$ NoYesNoYesNoNoNoNo
通知先マクロ:
$CONTACTNAME$ NoYesNoYesNoNoNoNo
$CONTACTALIAS$ NoYesNoYesNoNoNoNo
$CONTACTEMAIL$ NoYesNoYesNoNoNoNo
$CONTACTPAGER$ NoYesNoYesNoNoNoNo
$CONTACTADDRESSn$ NoYesNoYesNoNoNoNo
日付マクロ:
$LONGDATETIME$ YesYesYesYesYesYesYesYes
$SHORTDATETIME$ YesYesYesYesYesYesYesYes
$DATE$ YesYesYesYesYesYesYesYes
$TIME$ YesYesYesYesYesYesYesYes
$TIMET$ YesYesYesYesYesYesYesYes
ファイルマクロ:
$MAINCONFIGFILE$ YesYesYesYesYesYesYesYes
$STATUSDATAFILE$ YesYesYesYesYesYesYesYes
$COMMENTDATAFILE$ YesYesYesYesYesYesYesYes
$DOWNTIMEDATAFILE$ YesYesYesYesYesYesYesYes
$RETENTIONDATAFILE$ YesYesYesYesYesYesYesYes
$OBJECTCACHEFILE$ YesYesYesYesYesYesYesYes
$TEMPFILE$ YesYesYesYesYesYesYesYes
$LOGFILE$ YesYesYesYesYesYesYesYes
$RESOURCEFILE$ YesYesYesYesYesYesYesYes
$COMMANDFILE$ YesYesYesYesYesYesYesYes
$HOSTPERFDATAFILE$ YesYesYesYesYesYesYesYes
$SERVICEPERFDATAFILE$ YesYesYesYesYesYesYesYes
その他のマクロ:
$PROCESSSTARTTIME$ YesYesYesYesYesYesYesYes
$ADMINEMAIL$ YesYesYesYesYesYesYesYes
$ADMINPAGER$ YesYesYesYesYesYesYesYes
$ARGn$ YesYesYesYesYesYesYesYes
$USERn$ YesYesYesYesYesYesYesYes

マクロの説明

ホストマクロ: 3
$HOSTNAME$ ホストの短い名前(例 "biglinuxbox"). この値はホスト定義の中のhost_name設定が使われます。
$HOSTALIAS$ ホストの長い名前/説明。ホスト定義の中のalias設定が使われます。
$HOSTADDRESS$ ホストのアドレス。ホスト定義の中のaddress設定が使われます。
$HOSTSTATE$ ホストの現状を示す文字列("UP", "DOWN", または "UNREACHABLE")。
$HOSTSTATEID$ ホストの現状を示す数値: 0=UP, 1=DOWN, 2=UNREACHABLE.
$HOSTSTATETYPE$ 現在のホストチェックにおけるステートタイプを示す文字列("HARD" または "SOFT")。 ホストチェックでOKでない(UPでない)状態が返されるとソフトステートがおこり、リトライ処理に移ります。ハードステートはホストチェックが指定した最大回数に達した結果に起こります。
$HOSTATTEMPT$ ホストチェックの再試行回数。例えば、ホストの再チェックが2度目なら、2を返します。 "ソフト"ステートでホストチェックの再試行回数を基に特定のアクションを起こすようなホストイベントハンドラを書く時にのみ現在の再試行回数は役に立ちます。
$HOSTLATENCY$ スケジュールされていたチェック時間にスケジュールホストチェックが遅れた(浮動小数点数の)秒数を示します。 例えば、03:14:15にスケジュールされていたチェックが、03:14:17まで実行されなかった場合は、2.0秒のチェック遅延となります。オンデマンドホストチェックはゼロ秒の遅延を持っています。
$HOSTEXECUTIONTIME$ ホストチェックが実行された秒数を(浮動小数点)数値で表します(例 チェックが実行されている時間の量)。
$HOSTDURATION$ ホストが現在までに費やした時間の量を示す文字列。フォーマットは"XXh YYm ZZs"で、時間、分と秒を表す
$HOSTDURATIONSEC$ ホストが現在までに費やした時間の秒数を示す。
$HOSTDOWNTIME$ ホストの"ダウンタイムの深さ"を表す数値。もし該当ホストがスケジュールされたダウンタイム期間内にあれば、この値はゼロよりも大きな値になります。ホストがダウンタイム状態では無い場合、この値はゼロになります
$HOSTPERCENTCHANGE$ ホスト状態の変化率を(浮動小数点)数で表します。ホスト状態変化率はフラップ検知アルゴリズムで使用されます
$HOSTGROUPNAME$ ホストが所属するホストグループ名が入ります。この値はホストグループ定義hostgroup_name設定の値が使われます。もしホストが複数のホストグループに所属する場合、このマクロはホストグループのうちのひとつだけが入ります。
$HOSTGROUPALIAS$ ホストが所属するホストグループの長い名前/エイリアスが入ります。この値は ホストグループ定義alias設定が使われます。 ホストがひとつ以上のグループに所属する場合、このマクロはそのうちのひとつだけを使います。
$LASTHOSTCHECK$ これはホストのチェックを最後に完了したタイムスタンプをtime_tフォーマット(UNIXエポック秒)で表します。
$LASTHOSTSTATECHANGE$ これはホストの状態が最後に変化したタイムスタンプをtime_tフォーマット(UNIXエポック秒)で表します。
$LASTHOSTUP$ これはホストが最後にUP状態を検知したタイムスタンプをtime_tフォーマット(UNIXエポック秒)で表します。
$LASTHOSTDOWN$ これはホストが最後にDOWN状態を検知したタイムスタンプをtime_tフォーマット(UNIXエポック秒)で表します。
$LASTHOSTUNREACHABLE$ これはホストが最後にUNREACHABLE状態を検知したタイムスタンプをtime_tフォーマット(UNIXエポック秒)で表します。
$HOSTOUTPUT$ 最後のホストチェックが出力したテキストです(例 "Ping OK")。
$HOSTPERFDATA$ このマクロは最後のホストチェックで返されたいかなるパフォーマンスデータをも含んでいます
$HOSTCHECKCOMMAND$ このマクロはホストチェック実行に使われたコマンドそのもの(どんな引数も含まれています)が入っています
$HOSTACKAUTHOR$ ホストの障害を認知したユーザの文字列が格納されています。このマクロは$NOTIFICATIONTYPE$マクロが"ACKNOWLEDGEMENT"がセットされている時のみ有効です
$HOSTACKCOMMENT$ ホストの障害を認知したユーザが入力したコメント文字列が格納されています。このマクロは$NOTIFICATIONTYPE$マクロが"ACKNOWLEDGEMENT"がセットされている時のみ有効です
$HOSTACTIONURL$ このホストのアクションURLがセットされます。この値はホスト追加情報定義で設定したaction_url設定が使われます。
$HOSTNOTESURL$ このホストの外部サイトへのURLがセットされます。この値はホスト追加情報定義notes_url設定が使われます。
$HOSTNOTES$ ホストの備考がセットされます。この値はホスト追加情報定義notes設定が使われます。
サービスマクロ:
$SERVICEDESC$ サービスの長い名前/説明がセットされます(例 "メインウェブサイト")。この値はサービス定義description設定が使われます。
$SERVICESTATE$ サービスの現在の状態を文字列として格納しています("OK", "WARNING", "UNKNOWN", または "CRITICAL").
$SERVICESTATEID$ サービスの現在の状態をIDで格納しています: 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN。
$SERVICESTATETYPE$ 現在のサービスチェックにおけるステートタイプを文字列で格納しています("HARD" または "SOFT")。 ソフトステートだとリトライ処理をしつつnon-OK状態を返します。 ハードステートだと指定された最大試行回数分のサービスチェックを行った結果を返します。
$SERVICEATTEMPT$ 現在のサービスチェックのリトライ回数を格納しています。例えば、サービスが2度目の再チェックであれば、2を格納しています。現在の試行回数はサービスチェック試行回数を使用したソフトステートの為のホストイベントハンドラを書く場合にのみ使えます。
$SERVICELATENCY$ サービスチェックがスケジュールされた時間と実際の実行時刻の差の秒数(浮動少数)です。 例えば、チェックが03:14:15に予定されていたとして、03:14:17まで実行されなければ、チェック遅延は2.0秒です。
$SERVICEEXECUTIONTIME$ サービスチェックのコマンド実行から完了までの実行時間が秒数(浮動少数)で格納されています(例 チェックの実行完了にかかった時間)。
$SERVICEDURATION$ サービスが現在のステータスになってからの総経過時間が入ります。フォーマットは"XXh YYm ZZs"で、 時、分、秒を指しています。
$SERVICEDURATIONSEC$ サービスが現在のステータスになってからの総経過時間を秒で格納します。
$SERVICEDOWNTIME$ サービスの"ダウンタイムの深さ"を数値で格納します。このサービスが現在ダウンタイム状態にあるなら、1以上の値が格納されます。ダウンタイム状態でないなら、0が格納されます
$SERVICEPERCENTCHANGE$ サービス状態の変化率の値が入ります(浮動少数)。状態変化率はフラップ検知アルゴリズムに使われます
$SERVICEGROUPNAME$ サービスが所属しているサービスグループ名が格納されます。この値はサービスグループ定義のservicegroup_nameが使われます。複数のサービスグループに属している場合、このマクロにはサービスグループのうちの1つだけが格納されます。
$SERVICEGROUPALIAS$ サービスが所属しているサービスグループ名の長い名前/エイリアスが格納されます。この値はサービスグループ定義のservicegroup_nameが使われます。複数のサービスグループに属している場合、このマクロにはサービスグループのうちの1つだけが格納されます。
$LASTSERVICECHECK$ サービスチェックが最後に行われたときの時間のタイムスタンプをtime_tフォーマット(UNIXエポック秒)で格納されています。
$LASTSERVICESTATECHANGE$ サービスの状態が最後に変化した時の時間をtime_tフォーマット(UNIXエポック秒)で格納されています。
$LASTSERVICEOK$ サービスの状態が最後にOKとなったときの時間をtime_tフォーマット(UNIXエポック秒)で格納されています。
$LASTSERVICEWARNING$ サービスの状態が最後にWARNINGとなったときの時間をtime_tフォーマット(UNIXエポック秒)で格納されています。
$LASTSERVICEUNKNOWN$ サービスの状態が最後にUNKNOWNとなったときの時間をtime_tフォーマット(UNIXエポック秒)で格納されています。
$LASTSERVICECRITICAL$ サービスの状態が最後にCRITICALとなったときの時間をtime_tフォーマット(UNIXエポック秒)で格納されています。
$SERVICEOUTPUT$ 最後のサービスチェックのテキスト出力です(例 "Ping OK")。
$SERVICEPERFDATA$ 最後のサービスチェックが返すパフォーマンスデータの値が格納されています。
$SERVICECHECKCOMMAND$ サービスチェック実行に使われたコマンド名(チェックコマンドの引数は格納されない)。
$SERVICEACKAUTHOR$ サービス障害を認知済みとしたユーザの名前が格納されます。 このマクロは$NOTIFICATIONTYPE$ が"ACKNOWLEDGEMENT"にセットされた時のみ有効です。
$SERVICEACKCOMMENT$ サービス障害を認知済みとしたユーザが入力したコメント文字列が格納されます。 このマクロは$NOTIFICATIONTYPE$ が"ACKNOWLEDGEMENT"にセットされた時のみ有効です。
$SERVICEACTIONURL$ サービスのアクションURLです。 この値はサービス追加情報定義action_url設定が使われます。
$SERVICENOTESURL$ サービスの外部サイトのURLが格納されます。 この値はサービス追加情報定義notes_url設定が使われます。
$SERVICENOTES$ サービスの備考が格納されます。 この値はサービス追加情報定義notes設定が使われます。
通知マクロ:
$NOTIFICATIONTYPE$ 送出される通知のタイプを格納しています("PROBLEM", "RECOVERY", "ACKNOWLEDGEMENT", "FLAPPINGSTART" または "FLAPPINGSTOP").
$NOTIFICATIONNUMBER$ サービスやホストの現在の通知回数が格納されます。通知回数はホストやサービスの通知が新たに 発行される毎にひとつ(1)ずつ増えていきます(認知を除く)。 通知回数はホストやサービスが復旧した時に0に戻ります(復旧通知がでた後で)。 認知は通知回数の増加に影響しません。
集計マクロ:
$TOTALHOSTSUP$ このマクロは現在UP状態になっているホストの総数が反映されます。
$TOTALHOSTSDOWN$ このマクロは現在DOWN状態になっているホストの総数が反映されます。
$TOTALHOSTSUNREACHABLE$ このマクロは現在UNREACHABLE状態になっているホストの総数が反映されます。
$TOTALHOSTSDOWNUNHANDLED$ このマクロはホストが現在DOWN状態で、"未対応"となっているものの総数が反映されます。 未対応ホスト障害とは、認知済み状態ではなく、現在スケジュールされたダウンタイム状態にあるものでもなく、 チェックが有効になっているものを指す。
$TOTALHOSTSUNREACHABLEUNHANDLED$ このマクロはホストが現在UNREACHABLE状態で、"未対応"となっているものの総数が反映されます。 未対応ホスト障害とは、認知済み状態ではなく、現在スケジュールされたダウンタイム状態にあるものでもなく、 チェックが有効になっているものを指す。
$TOTALHOSTPROBLEMS$ 現在DOWNかUNREACHABLE状態となっているものの総数が反映されます。
$TOTALHOSTPROBLEMSUNHANDLED$ このマクロはDOWNかUNREACHABLE状態で、"未対応"となっているものの総数が反映されます。 未対応ホスト障害とは、認知済み状態ではなく、現在スケジュールされたダウンタイム状態にあるものでもなく、 チェックが有効になっているものを指す。
$TOTALSERVICESOK$ OK状態になっているサービスの総数が反映される。
$TOTALSERVICESWARNING$ WARNING状態になっているサービスの総数が反映される。
$TOTALSERVICESCRITICAL$ CRITICAL状態になっているサービスの総数が反映される。
$TOTALSERVICESUNKNOWN$ UNKNOWN状態になっているサービスの総数が反映される。
$TOTALSERVICESWARNINGUNHANDLED$ 現在WARNING状態でかつ"未対応"状態のサービスの総数が反映される。
$TOTALSERVICESCRITICALUNHANDLED$ 現在CRITICALでかつ"未対応"サービス障害の総数が反映される。 未対応サービス障害とは、認知済み状態ではなく、現在スケジュールされたダウンタイム状態にあるものでもなく、 チェックが有効になっているものを指す。
$TOTALSERVICESUNKNOWNUNHANDLED$ 現在UNKNOWN状態でかつ"未対応"サービス障害の総数が反映される。 未対応サービス障害とは、認知済み状態ではなく、現在スケジュールされたダウンタイム状態にあるものでもなく、 チェックが有効になっているものを指す。
$TOTALSERVICEPROBLEMS$ 現在WARNING、CRITICALもしくはUNKNOWN状態にあるサービスの総数が反映される。
$TOTALSERVICEPROBLEMSUNHANDLED$ このマクロはWARNING、CRITICALもしくはUNKNOWN状態にあり、かつ"未対応"状態にあるサービスの総数が反映される。 未対応サービス障害とは、認知済み状態ではなく、現在スケジュールされたダウンタイム状態にあるものでもなく、 チェックが有効になっているものを指す。
通知マクロ:
$CONTACTNAME$ ホストやサービス障害の通知先の名前が格納される(例 "jdoe")。 通知定義contact_name設定が使われます
$CONTACTALIAS$ 通知先の長い名前/説明(例 "John Doe") 。 通知定義contact_alias設定が使われます
$CONTACTEMAIL$ 通知者のEメールアドレス。 通知定義email設定が使われます
$CONTACTPAGER$ 通知者の携帯番号/アドレス。 通知定義pager設定が使われます
$CONTACTADDRESSn$ 通知者の追加通知アドレス。 それぞれの通知者毎は6つの異なるアドレスが持てる(追加のEメールアドレスと携帯番号)。 これらのアドレスは$CONTACTADDRESS1$ - $CONTACTADDRESS6$となります。 通知定義addressx設定が使われます。
日付マクロ:
$LONGDATETIME$ 現在の日付/タイムスタンプ(例 Fri Oct 13 00:30:28 CDT 2000)。 日付のフォーマットはdate_format設定で定義される。
$SHORTDATETIME$ 現在の日付/タイムスタンプ(例 10-13-2000 00:30:28)。 日付のフォーマットはdate_format設定で定義される。
$DATE$ 日付(例 10-13-2000)。 日付のフォーマットはdate_format設定で定義される。
$TIME$ 現在時刻(例 00:30:28).
$TIMET$ time_tフォーマット(UNIXエポック秒)での現在時刻。
ファイルマクロ:
$MAINCONFIGFILE$ メイン設定ファイルの場所。
$STATUSDATAFILE$ ステータスデータファイルの場所。
$COMMENTDATAFILE$ コメントデータファイルの場所。
$DOWNTIMEDATAFILE$ ダウンタイムデータファイルの場所。
$RETENTIONDATAFILE$ 状態保存ファイルの場所。
$OBJECTCACHEFILE$ オブジェクトキャッシュファイルの場所。
$TEMPFILE$ テンポラリファイルの場所。
$LOGFILE$ ログファイルの場所。
$RESOURCEFILE$ リソースファイルの場所。
$COMMANDFILE$ コマンドファイルの場所。
$HOSTPERFDATAFILE$ ホストパフォーマンスデータファイルの場所(定義されていれば)。
$SERVICEPERFDATAFILE$ サービスパフォーマンスデータファイルの場所(定義されていれば)。
その他のマクロ:
$PROCESSSTARTTIME$ Nagiosが最後に(再)起動した時のtime_tフォーマット(UNIXエポック秒)でのタイムスタンプ。 $TIMET$から$PROCESSSTARTTIME$を引き算する事でNagiosが(最後に再起動してからの)稼動した秒数を算出できます。
$ADMINEMAIL$ Nagios管理者のEメールアドレス。 admin_email設定が使われます。
$ADMINPAGER$ Nagios管理者の携帯番号/アドレス。 admin_pager設定が使われます。
$ARGn$ (通知, イベントハンドラ, サービスチェックなどの)コマンドで使われるn番目の引数。 Nagiosは32個までの引数マクロをサポートしています($ARG1$ から$ARG32$まで)。
$USERn$ ユーザ定義のn番目のマクロ。 ユーザマクロはリソースファイル中に複数定義できる。 Nagiosは32個までの引数マクロをサポートしています($USER1$ から$USER32$まで)。

注釈

1 ホストがチェックされているとき、関連するホストにはこれらのマクロは無効です (例 関連ホストがまだ定義されてないので意味をなさない)。

2 サービスがチェックされているとき、関連するサービスにはこれらのマクロは無効です (例 関連サービスがまだ定義されてないので意味をなさない)。

3 ホストマクロがサービス関連コマンドで使われている時 (例 サービス通知、イベントハンドラなど) サービスと関連のあるホストはそのホストマクロを参照できる。

4 ホストとサービス集計マクロが通知コマンドで使われている時、 ホストとサービスの通知が認知済みであった場合だけ省かれた総計となる (例 ホストとサービスが通知を受ける設定がされている)。