Nagios HTTP監視

基本的な構文   check_http -H ホスト -I IPアドレス

オプション説明省略時
-HIPアドレス、ホスト名
-IIPアドレス、ホスト名、HOSTヘッダがつかない
-pポート番号
-4IPv4
-6IPv6
-SSSLで接続する
-C証明書の有効期限を指定
-e正常時の応答ステータスを指定100,200番台はOK400はWARNING、500以上100未満でCRITICAL
-sbodyに含まれる文字列を指定省略時はなにもしない
-uURLを指定/
-jHTTPリクエストメソッドの指定GET
-Mドキュメントの更新日の経過時間 ex 10m(10分) 10h(10時間) 10d(10日)単位なしは秒
-l-r -R で改行を使えるように
-r本文を正規表現で指定
-R本文を正規表現で指定(大文字小文字を区別しない)
--invert-regex正規表現で見つかった時がCRITICAL
-a ユーザー名:パスワードBesic認証のサーバー
-A ユーザーエージェントユーザーエージェントを指定する
-k ヘッダヘッダ情報を追加する
-L監視URLをHTMLのリンクで出力する(管理画面でリンクが付く)
-f 状態リダイレクト時の関し状態を指定 ok warning critical follow sticky stickyportok
-m 最小ページサイズ:最大ページサイズページサイズの範囲を指定
-w 応答時間(秒)warningとする応答時間を指定なし
-c 応答時間(秒)criticalとする応答時間を指定なし
-t 応答時間(秒)timeoutとする応答時間を指定10秒
-vデバッグで使う

バーチャルホストをチェック

www.test.comを監視する

define command{
command_name check_http_vhost
command_line $USER1$/check_http -I $HOSTADDRESS$ -H $ARG1$
}
define service {
use generic-service
host_name web1
service_description HTTPの監視
check_command check_http_vhost!www.test.com
}

文字列が含まれているか監視する

http://ホスト/test.phpにTESTという文字列があるか

define command{
command_name check_http_body
command_line $USER1$/check_http -H $HOSTADDRESS$ -H $ARG1$ -s $ARG2$
}
define service {
use generic-service
host_name web1
service_description 本文の監視
check_command check_http_body!test.php!TEST
}

BASIC認証のあるページを監視する

define command{
command_name check_http_basic
command_line $USER1$/check_http -H $HOSTADDRESS$ -a $ARG1$
}
define service {
use generic-service
host_name web1
service_description BASIC認証の監視
check_command check_http_basic!nagios:nagios
}

SSL証明書を監視する

30日以内になるとwarning 切れてるとcritical

define command{
command_name check_http_ssl
command_line $USER1$/check_http -H $HOSTADDRESS$ -C $ARG1$
}
define service {
use generic-service
host_name web1
service_description 証明書の監視
check_command check_http_ssl!30
}

$USER1$はresouce.cfgで定義
$HOSTADDRESS$はhostで定義したaddressが入るとのこと。