こんにちは satoです。
monitは プロセスの監視を行うデーモンです。 条件とそれに伴うアクションを指定することができます。
条件とは例えば以下のようなものがあります
- プロセスが起動していなかったら
- 特定のプロセスのメモリの使用量が あるサイズを超えたら
- 特定のプロセスのCPUの使用率が 50%を超えている状態が 10分続いたら
- 特定のポートに接続できなくなったら など
アクションには以下のような物があります
- 起動、再起動する
- アラートメールを送信する
- ユーザスクリプトを実行する など
これらを組み合わせて、プロセスの監視を行います。とくにユーザが作成したプログラムの監視などに効果を発揮します。インストールは RedHat系なら
yum install monit
で入ります。(CentOSや商用のRedHatはrpmforgeをリポジトリとして追加する必要があります)
主な設定ファイルは
- /etc/monit/monit.conf logの場所やメールの送信先、監視の間隔などを設定
- /etc/monit/monit.d アプリケーション別の設定ファイルを置きます
になります。簡易的な postfixの監視ファイル postfix.conf は以下のような感じになります。
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
pidの場所を指定して、 startと stopを定義します。monitの起動は
/etc/init.d/monit start
で行います。
試しにpostfixを止めてみてください。どうでしょうか。ちゃんとリスタートしたでしょうか。
もちろん Railsで作成した mongrelのプロセスなども監視できるので、様々な場面で活躍できそうですよね。
公式サイトはかなり充実したマニュアルとサンプルがあるので、ぜひ参照してみてください。