monit 資料一覧

monitインストール手順

2008/5/23更新

対応バージョン: 4.10.1

公式サイト

準備

導入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