先月くらいからお名前.comのVPSサービスで勝手に各種サービスが落ちている事が数回あった。
そこで、プロセスの存在を確認しプロセスが死んでいたら起動するシェルを作成した。
※エラー処理もしていないので実用性は低いです。
##2010/03/13追加
amavisdのプロセスも確認するようにした。
amavisdがダウンしていると送受信メールのウィルスチェックができず、そこでメールが止まってしまう。
(ログ)
connect to 127.0.0.1[127.0.0.1]:10024: Connection refused
$ vi process_chk.sh
#!/bin/sh
message=""
#amavisd
amavisd=`ps ax | grep '^.* amavisd (master)$' 2>/dev/null`
if [ -z "${amavisd}" ]; then
/etc/rc.d/init.d/amavisd start
message="${message}amavisd "
fi
#postfix
postfix=`ps ax | grep '^.* /usr/libexec/postfix/master$' 2>/dev/null`
if [ -z "${postfix}" ]; then
/etc/rc.d/init.d/postfix start
message="${message}postfix "
fi
#dovecot
dovecot=`ps ax | grep '^.* /usr/sbin/dovecot$' 2>/dev/null`
if [ -z "${dovecot}" ]; then
/etc/rc.d/init.d/dovecot start
message="${message}dovecot "
fi
#httpd
httpd=`ps ax | grep '^.* /usr/local/httpd/bin/httpd -k start$'`
if [ -z "${httpd}" ]; then
/etc/rc.d/init.d/httpd start
message="${message}httpd "
fi
#send mail
if [ -n "${message}" ]; then
mail -s "process_chk.sh develop-spot.com" "***@docomo.ne.jp" -- -f "***@develop-spot.com" << body
${message}start.
body
fi
exit 0
こんな感じでシェルを作ってクーロンに登録してとりあえず応急処置。
*/5 * * * * /root/process_chk.sh
監視サービスを設置したいが、ポート制限があり外部からだとポート監視程度しかできない。(DBはポートが解放できないためアウト)
またどのサービスが落ちるか分からないため同じサーバーで監視をしても、監視系サービスが落ちたら終了する。
お名前側でポート監視くらいは用意してほしいな。