突然の電話に出てみると
「WEBサーバーがダウンしてるみたいなんですけど!?」
突然の電話に出てみると
「WEBサーバーがダウンしてるみたいなんですけど!?」
とまぁ、サーバー管理者なら誰でも経験したことあるような、無いような話ですが。
普段動いてる時は感謝されず、止まると怒られる。
そんな理不尽なサーバー管理者。
自分の身は自分で守りましょう。
とゆーことで簡単なプロセス監視シェルスクリプトを作りました。
Cronに仕込むので /etc/cron.d/ 以下に仕込みます。
vi /etc/cron.d/process_chk.sh
#httpd httpd=`ps ax | grep '/usr/sbin/httpd' | grep -v 'grep'` if [ -z "${httpd}" ]; then /etc/init.d/httpd restart wait httpd=`ps ax | grep '/usr/sbin/httpd' | grep -v 'grep'` if [ -z "${httpd}" ]; then message="${message}httpd stopd !" else message="${message}httpd stopd restart OK " fi fi #postmaster postmaster=`ps ax | grep 'postmaster' | grep -v 'grep'` if [ -z "${postmaster}" ]; then /etc/init.d/postgresql restart wait postmaster=`ps ax | grep 'postmaster' | grep -v 'grep'` if [ -z "${postmaster}" ]; then message="${message}postmaster stopd " else message="${message}postmaster stopd restart OK " fi fi #postfix postfix=`ps ax | grep '/usr/libexec/postfix/master' | grep -v 'grep'` if [ -z "${postfix}" ]; then /etc/init.d/postfix restart wait postfix=`ps ax | grep '/usr/libexec/postfix/master' | grep -v 'grep'` if [ -z "${postfix}" ]; then message="${message}postfix stopd " else message="${message}postfix stopd restart OK " fi fi #send mail if [ -n "${message}" ]; then mail -s "***ERROR***** process_chk.sh flagsystem.co.jp " "hogehoge@hoge.com" << body ${message} . body fi exit 0
こんな感じです。
簡単ですね。
ps ax | grep 'hogehoge' | grep -v 'hogehoge'
とやって、結果が帰ってこなければ、一旦再起動を試し、
それでもダメならアラートです。
立ち上がった場合はアラートに「OK」が付きます。
ではクーロンに仕込んでやりましょう。
そのまえにパーミッションを忘れずに
chmod 755 /etc/cron.d/process_chk.sh crontab -e #process_chk.sh */5 * * * * /etc/cron.d/process_chk.sh > /dev/null
で、気づいた人も多いかと思いますが、メールが止まって起動しなかった場合はお手上げです。
そこまで求めるなら別な方法考えないといけませんね。
この記事をシェアする