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