Nagios
概要 [#q4a4772b]
Nagiosにて監視設定を追加する際、Nagiosサーバーで監視対象のサービスを一度実行してから設定ファイルに追加する場合に、一括して実行するスクリプトです。
基本的に結果が「OK」だったものだけを監視するという考えでgrepにて抜き出ししてます。
後は、sedコマンドにて、必要な項目(サービス名とOK、httpはステータスコード)のみを表示させてます。
表示しない結果は監視できない、使用していないサービスと考えてください。
シンプルなので、適当に修正して活用してください。
1.下記スクリプトを/usr/local/nasgios/libexec/に0-check-all.shなど適当な名前で保存する。
#!/bin/sh
## Nagiosのコマンド一括確認スクリプト
#!/bin/sh
cat << EOF
--------------------------------------------
$1 : Service Check Reslut
--------------------------------------------
EOF
./check_ping -H "$1" -w 3000.0,80% -c 10000.0,100% -p 3 -t 3 | grep OK | cut -d' ' -f1,2
./check_ssh -H "$1" | grep OK | cut -d' ' -f1,2
./check_ftp -H "$1" | grep OK | cut -d' ' -f1,2
./check_smtp -H "$1" | grep OK | cut -d' ' -f1,2
./check_pop -H "$1" | grep OK | cut -d' ' -f1,2
./check_http -H "$1" | grep OK | cut -d' ' -f1-5
#./check_http -H "$1" -e 300,301,302 | grep "HTTP OK" | cut -d' ' -f1-5
cat << EOF
--------------------------------------------
$1 : Port Check Reslut
--------------------------------------------
EOF
./check_tcp "$1" -p 21 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 22 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 25 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 53 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 80 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 110 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 443 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 587 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 1723 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
./check_tcp "$1" -p 5432 | grep OK | sed -e "s/|time=.*//g" | cut -d' ' -f1,2,9,10
echo -e "\n"
echo -e "Complete!!"
echo -e "\n"
2.chmod u+x スクリプト名で実行権限付与
3.「./スクリプト名 サーバーIPアドレス」で実行。
4.結果が表示されます。
ログに書き出す場合 [#pd14e200]
以下のようにスクリプトの内容を囲うことでログに出力しながら、標準出力にも表示させることが可能です。
{
スクリプトの内容
} 2>&1 | tee /tmp/test.log