概要†Nagiosにて監視設定を追加する際、Nagiosサーバーで監視対象のサービスを一度実行してから設定ファイルに追加する場合に、一括して実行するスクリプトです。 基本的に結果が「OK」だったものだけを監視するという考えでgrepにて抜き出ししてます。 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>&1 | tee /tmp/test.log
|