monitでプロセスの監視

monitでプロセスの監視

mixiアプリなどでhttpdやmysqldを使用する場合、
mysqlのみこけてたりする場合、得点保存できなかったりとかなり不都合があった。

そんなときmonitのプロセス監視デーモンはかなりよさそうだったので、導入してみた。


(参考)http://temog.info/archives/tweet/serversmanvps-centos-monit.html
(参考)http://www.usupi.org/sysad/158.html

インストール方法

リポジトリの追加
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -ivh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

monitのインストール
yum install --enablerepo=rpmforge monit

起動方法

/etc/init.d/monit start

設定ファイル

/etc/monit/monit.conf ログの場所やメールの送信先、監視間隔等
/etc/monit/monit.d アプリケーション別の設定ファイルを設置

例)

apacheの死活監視
 check process apache with pidfile /var/run/apache2.pid
    start program = "/etc/init.d/apache2 start"
    stop program = "/etc/init.d/apache2 stop"
    if failed host localhost port 80
      protocol HTTP request /keepalive.txt then restart
    group apache
書式
 check process <プロセス名> with pidfile <PIDファイル名>
    start program = "<プロセスの起動方法>"
    stop program = "<プロセスの停止方法>"
    if failed host <ホスト名> port <ポート番号>
      protocol HTTP request <URLのパス> then restart
    group <プロセスのグループ>
postfixの死活監視
check process postfix with pidfile /var/run/postmaster.pid
   start program = "/etc/init.d/postfix start"
   stop  program = "/etc/init.d/postfix stop"
   if failed port 25 protocol smtp then restart

設定方法

set daemon <秒数> ・・・間隔の秒数
set logfile <ログのパス> ・・・ログファイルのパス
set mailserver <サーバ名> ・・・メールサーバーの指定
set mailserver <サーバ名> port <ポート番号>・・・メールサーバーの指定
set alert <メールアドレス>