monit 資料一覧
monitインストール手順
2008/5/23更新
対応バージョン: 4.10.1
公式サイト
http://www.tildeslash.com/monit/
準備
導入OS
Fedora 8,9
インストール
配布ファイル展開
% tar zxvf monit-4.10.1.tar.gz % cd monit-4.10.1
make,インストール
% ./configure <オプション> % make % su % sudo make install
インストール物 (man,infoは除く)
/usr/local/bin/monit
各種設定
/usr/local/etc/monitrcにて設定を行う。同ファイルのパーミッションは0700にしておく。
ここではとりあえず以下のような設定にする。
基本設定
デーモンとして動作、監視間隔は60秒
syslog経由でログ出力
アラート送信先メールサーバとメールアドレスを指定
set daemon 60 set logfile syslog set mailserver smtp.bar.com set alert admin@bar.com
プロセス監視
Apacheのプロセスを監視し、停止あるいは応答がなければアラート送信して再起動
check process apache with pidfile /usr/local/apache2/logs/httpd.pid start program = "/etc/init.d/apache start" stop program = "/etc/init.d/apache stop" if failed port 80 protocol http then alert if failed port 80 protocol http then restart
その他の設定も含め、詳細は以下を参照のこと。
関連資料・記事
またmonitrcに以下のように記述することによって外部のファイルを設定ファイルの一部としてインクルードすることができるので、monitrcを変更することなく設定を追加/変更したい場合などに便利である。
include /usr/local/etc/monit.d/*
動作確認
デーモンを起動する。
% sudo /usr/local/bin/monit
プロセスが動作しているか確認する。
% ps ax|grep monit 970 ? S 0:07 /usr/local/bin/monit
ログを出力するようにしている場合はログファイルに以下の内容が出力されていることを確認する。
Starting monit daemon Monit started
監視対象のプロセスが再起動できることを確認する。
例えば上述ようにApacheのプロセスを監視している場合、以下のようにApacheのデーモンを停止させてしばらくして再起動されるのを確認する。
% sudo service apache stop
この時ログには以下のような内容が出力される。
'apache' process is not running 'apache' trying to restart 'apache' start: /etc/init.d/apache
また以下のようなメールが配信される。
(Apache未起動)
subject: monit alert -- Does not exist apache Does not exist Service apache Date: Thu, 22 May 2008 02:26:02 +0900 Action: restart Host: fedora.private.jp Description: 'apache' process is not running Your faithful employee, monit
(Apache起動) ... monitが再起動
monit alert -- Exists apache Exists Service apache Date: Thu, 22 May 2008 02:26:09 +0900 Action: alert Host: fedora.private.jp Description: 'apache' process is running with pid 8649 Your faithful employee, monit
デーモンを終了する。
% sudo /usr/local/bin/monit quit
initスクリプト設置
スクリプト作成
/etc/rc.d/init.d/monitを作成する。
#!/bin/bash # # monit # # chkconfig: 345 80 20 # description: monit server TARGET=monit DST_PREFIX=/usr/local DST_BIN=${DST_PREFIX}/bin/${TARGET} DST_CONF=${DST_PREFIX}/etc/monitrc [ -f ${DST_BIN} ] || exit 0 [ -f ${DST_CONF} ] || exit 0 start() { echo -n "Starting ${TARGET}: " ${DST_BIN} > /dev/null 2>&1 echo } stop() { echo -n "Shutting down ${TARGET}: " ${DST_BIN} quit > /dev/null 2>&1 echo } restart() { echo -n "Restarting ${TARGET}: " ${DST_BIN} reload > /dev/null 2>&1 echo } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 exit 1 esac exit 0
サービス登録/起動
% sudo chkconfig --add monit % sudo chkconfig --list monit monit 0:off 1:off 2:off 3:on 4:on 5:on 6:off % sudo service monit start