マクロ
Nagiosの1つの機能としてコマンド内でマクロが使えます。コマンドを実行する直前にに、Nagiosはコマンド内のすべてのマクロを対応する値に置き換えます。いくつかの一般的なコマンドに必要なものをハンドルして定義することを可能にします。
マクロの有効性
定義するすべてのコマンドの中でマクロを使用することができますが、すべてのマクロが特定のコマンドのタイプで"有効"ではありません。たとえば、あるマクロはサービス通知コマンドでのみ有効かもしれませんし、またホストチェックコマンドだけで有効かも知れません。Nagiosが扱うコマンドには異なる9つのタイプがあります。それらは以下の通り:
下のテーブルはNagiosで現在利用可能な全マクロの利用できるコマンドのタイプと、簡単な説明付のリストです。もし、使用できないコマンドのマクロを使用すると、空の文字列に置き換わります。マクロは全大文字で$文字で囲まれていることに注意してください。
有効なマクロの表
| マクロ名 | マクロの説明 | サービスチェック | サービス通知 | ホストチェック | ホスト通知 | サービスイベントハンドラ & グローバルサービスイベントハンドラ & OCSPコマンド | ホストイベントハンドラ & グローバルホストイベントハンドラ | サービスパフォーマンスデータコマンド | ホストパフォーマンスデータコマンド |
| $CONTACTNAME$ | ホストやサービスに障害が起きたときに通知される通知先のショートネーム(例:"jdoe") | × | ○ | × | ○ | × | × | × | × |
| $CONTACTALIAS$ | 通知される通知先のロングネーム/説明(例: "John Doe") | × | ○ | × | ○ | × | × | × | × |
| $CONTACTEMAIL$ | 通知される通知先のE-Mailアドレス | × | ○ | × | ○ | × | × | × | × |
| $CONTACTPAGER$ | 通知される通知先のページャ番号/アドレス | × | ○ | × | ○ | × | × | × | × |
| $HOSTNAME$ | ホストのショートネーム(例:"biglinuxbox")。サービス通知をする際に、そのサービスに属しているホストとしてこれが参照されます。 | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $HOSTALIAS$ | ホストのロングネーム/説明(i.e. "Big Linux Server") | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $HOSTADDRESS$ | ホストのIPアドレス | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| $HOSTSTATE$ | ホストの現在の状態("UP", "DOWN", もしくは "UNREACHABLE") | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $ARGn$ | サービスチェックでのn番目の引数。Nagiosでは32個の引数マクロをサポートします。($ARG1$ から $ARG32$). | ○ | × | × | × | × | × | × | × |
| $SERVICEDESC$ | 監視しているサービスのロングネーム/説明(例:"Main Website") | × | ○ | × | × | ○ | × | ○ | × |
| $SERVICESTATE$ | 監視しているサービスの現在の状態("WARNING", "UNKNOWN", "CRITICAL", もしくは "OK") | × | ○ | × | × | ○ | × | ○ | × |
| $OUTPUT$ | ホストやサービスのテキスト出力(例: "FTP ok - 1 second response time"). サービス通知とイベントハンドラの為にこれはサービスチェックからのテキスト出力が入っています。ホスト通知とイベントハンドラのためにホストチェックからの出力が入っています。 | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $PERFDATA$ | このマクロにはサービスチェックやホストチェックが返すパフォーマンスデータが格納されています。 | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $EXECUTIONTIME$ | ホスト、サービスチェックの実行にかかった秒数が格納されています(例:チェック実行時間):w。 | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $LATENCY$ | これはチェックがスケジュールされた時間と実際の実行時間の差の秒数です。たとえばチェックが03:04:15に予定されていたとして、実際には03:14:17まで実行されなければ、チェック遅延は2秒です。 | × | ○ | × | × | ○ | × | ○ | × |
| $NOTIFICATIONTYPE$ | 送られる通知の通知タイプ ("PROBLEM", "RECOVERY", もしくは "ACKNOWLEDGEMENT")。 | × | ○ | × | ○ | × | × | × | × |
| $NOTIFICATIONNUMBER$ | サービス、ホストの現在の通知番号です。通知番号はホストやサービスの通知が行われるたびに1ずつ増加します(認知通知は除く)。通知番号はホストやサービスが復旧すると(復旧通知が送られた後で)0にリセットされます。認知は通知番号の増加には影響しません。 | × | ○ | × | ○ | × | × | × | × |
| $DATETIME$ | タイムスタンプ(日/時)(例: Fri Oct 13 00:30:28 CDT 2000) | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $SHORTDATETIME$ | タイムスタンプ(日/時)(例: 10-13-2000 00:30:28) | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $DATE$ | タイムスタンプ(日/時) (例: 10-13-2000) | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $TIME$ | タイムスタンプ (例: 00:30:28) | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $TIMET$ | time_tフォーマットでのタイムスタンプ (1970年1月1日からの秒数) | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $LASTCHECK$ | ホストやサービスチェックが最後に行われたtime_tフォーマットでのタイムスタンプ(1970年1月1日からの秒数)。 | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $LASTSTATECHANGE$ | ホストやサービスの状態が最後に変化したtime_tフォーマットでのタイムスタンプ(1970年1月1日からの秒数)。 | × | ○ | × | ○ | ○ | ○ | ○ | ○ |
| $ADMINEMAIL$ | ローカル(もしくは監視サーバの)管理者のE-Mailアドレス。 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| $ADMINPAGER$ | ローカル管理者のページャ番号/アドレス | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| $STATETYPE$ | 現在のサービス、ホストチェックのステートタイプ("HARD"もしくは"SOFT")。ソフトステートはチェックプロセスが再試行中のnon-OK状態です。ハードステートはサービスチェックが最大回数に達した時の結果です。通知はハードステートチェンジが発生したときにのみ行われます。 | × | × | × | × | ○ | ○ | ○ | ○ |
| $SERVICEATTEMPT$ | これは現在のサービスチェックの再試行数を参照します。例を挙げると、もしサービスチェックが2回目の再試行であればこの数値は2です。現在の試行数はサービス試行回数を使用した"ソフト"ステートの為のサービスイベントハンドラを書く際にのみに便利です。 | × | × | × | × | ○ | × | ○ | × |
| $HOSTATTEMPT$ | これは現在のホストチェックの再試行数を参照します。例を挙げると、もしホストチェックが2回目の再試行であればこの数値は2です。現在の試行数はホストチェック試行回数を使用した"ソフト"ステートの為のホストイベントハンドラを書く際にのみに便利です | × | × | × | × | × | ○ | × | ○ |
| $USERn$ | ユーザ定義のn番目のマクロです。ユーザーマクロはリソースファイルで定義できます。Nagiosは32個のユーザマクロをサポートします($USER1$から$USER32$)。 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |