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