プロセスの監視を行う デーモン monit

こんにちは 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のプロセスなども監視できるので、様々な場面で活躍できそうですよね。
公式サイトはかなり充実したマニュアルとサンプルがあるので、ぜひ参照してみてください。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中