amazon linuxでmonitを使ってみる

monitは手軽に導入できるプロセス監視ツールです。
例えばapacheのCPU使用率が閾値を越えたらapacheを再起動する、などといった監視設定を簡単に行うことができます。

amazon linuxの場合、公式リポジトリにパッケージが用意されているのでyum installだけでインストールできます。

yum install monit

基本的な設定は/etc/monit.confに記述します。
アラートメールなどの設定もこのファイルに記述しますが、今回は動作を確認するだけなのでデフォルトの状態からログだけ有効にしてみました。60秒に一度監視を実行する設定になっています。

set logfile syslog facility log_daemon
set daemon 60
include /etc/monit.d/*

プロセスごとの設定は/etc/monit.d/以下に***.confという形式で設定ファイルを作成して行います。
apacheの監視なら以下のような感じになります。

# /etc/monit.d/httpd.conf
check process apache with pidfile /var/run/httpd.pid
  start program = "/etc/init.d/httpd start"
  stop program = "/etc/init.d/httpd stop"
  if cpu > 90% for 5 cycles then restart
  if mem > 90% for 5 cycles then restart

pidファイルのパスを指定することでプロセスを指定します。
start programとstop programにはデーモンの起動コマンドと停止コマンドを記述しておきます。
後はifの部分でどのような条件でアラートを送るor再起動するかの条件を指定します。
上記の場合、CPU使用率かメモリ使用率が90%以上の状態が5サイクル継続したら再起動、という設定になります。

設定が完了したらmonitを起動します。

service monit start