2011.06.30
chojiro

3分で作る監視システム

3分で監視システムを作ります。
分かりやすいところでWEBサービスの”httpd”を監視します。

監視にはpsコマンドを使います。
psコマンドを打つとこんな感じです。

# ps
  PID TTY          TIME CMD
 8899 pts/0    00:00:00 su
 8900 pts/0    00:00:00 bash
 8906 pts/0    00:00:00 ps

各項目の説明については時間の関係上、割愛します。(3分しかないので)

httpdサービスだけ見たい場合はこんな感じ。

# ps ax | grep httpd
 7010 ?        S      0:01 /usr/sbin/httpd
 7011 ?        S      0:01 /usr/sbin/httpd
 7012 ?        S      0:01 /usr/sbin/httpd
 7013 ?        S      0:01 /usr/sbin/httpd
 7014 ?        S      0:01 /usr/sbin/httpd
18494 ?        Ss     0:00 /usr/sbin/httpd

要はこのプロセス数を数えて、ひとつも見つからなければ「止まってるぞ」という事になるわけです。

シェルで書くとこうなります。

# hckeck.sh
#!/bin/bash
while :
do
  pcount=`/bin/ps -ef|grep “httpd”|grep -v grep|wc -l`
  if [ $pcount -lt 1 ]; then
    echo “止まってるよー!”
    break
  fi
done

… プロセス数を数える
… 1より少ない(=0)なら…
… 処理

psコマンドのオプションはココでは説明しません。(残り1分切りました)

早速実行します。

# ./hcheck.sh

httpdサービスを止めます。

# /etc/init.d/httpd stop
httpd を停止中:                                            [  OK  ]

はい出ました。

# ./hcheck.sh
止まってるよー!

chojiro
一覧に戻る