monit 資料一覧
2008/5/23更新
対応バージョン: 4.10.1
monitrcの設定項目は以下の2つのセクションに分かれる。
monitの動作全般
システムリソース・プロセス等の監視対象に対する設定
以下、主な設定項目についてそれぞれ説明する。
monitの動作全般
デーモンの動作
デーモンとして動作させる場合の監視間隔を秒で指定する。
set daemon 60
設定そのものを省略するとデーモンとして動作せず、すぐに処理が終了する。
ログ出力
ログをファイル、またはsyslog経由で出力する場合の設定を行う。
ファイルに出力する場合は以下のようにファイル名を指定する。
set logfile /var/log/monit.log
syslog経由で出力する場合は以下のようにsyslog facilityオプションに続けてファシリティを指定する。
ファシリティは先頭に"log_"を付与する必要がある。
例) daemonファシリティの場合
set logfile syslog facility log_daemon
ファシリティを省略するとuserファシリティがデフォルトとして使われる。
set logfile syslog
設定そのものを省略するとログは出力されない。
アラート送信先メールサーバ
アラートを送信するメールサーバを指定する。カンマで区切って複数指定可能である。
ポート番号をデフォルトの25以外にする場合はportオプションに続けて指定する。
例)
set mailserver smtp.bar.com, slave.bar.com port 8025, localhost
アラート送信先メールサーバ利用不可時のスプール設定
アラート送信先メールサーバが利用できない場合デフォルトではアラートが捨てられるが、この設定により特定のディレクトリにスプールしておくことができる。
ディスク容量が許す限りスプールできるがslotsオプションで最大個数を指定することもできる。
例)
set eventqueue basedir /var/spool/monit slots 100
(*) ディレクトリは存在しなければ自動的に作成される。
アラートメールフォーマット
アラートメールのフォーマットを指定する。
デフォルトでは以下のフォーマットでメールが送られる。
From: monit@$HOST Subject: monit alert -- $EVENT $SERVICE $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Description: $DESCRIPTION Your faithful employee, monit
$に続く変数には以下の内容が入る。
$HOST
monit動作ホスト名
$EVENT
発生イベント名("Changed"等)
$SERVICE
monitrcで定義されたサービス名("apache"等)
$DATE
イベント発生日時
$ACTION
実行アクション名("restart"等)
$DESCRIPTION
詳細
このフォーマットの任意の一部分を変更することができる。
例) 送信アドレスとタイトルを変更
set mail-format { from: admin@bar.com subject: $SERVICE $EVENT ($DATE) }
アラート送信先メールアドレス
アラートを送信するメールアドレスを指定する。
目的に応じて複数指定することができる。
例) すべてのアラートの送信先
set alert adm@bar.com
例) サービスタイムアウト時に発生するアラートの送信先
set alert sub@bar.com only on { timeout }
内蔵Webサーバ
monitでは設定をWebブラウザから確認するためのWebサーバが用意されている。
以下、ポート番号や待ち受けホスト、許可ユーザなどを設定する。
例)
set httpd port 8880 and # 待ち受けポート use address localhost # 待ち受けホスト allow localhost # 接続許可ホスト allow admin:passwd # 許可ユーザのID/パスワード
このWebサーバにアクセスするとmonitの稼働状態や監視しているサービスの状態が一覧で確認できる。
システムリソース・プロセス等の監視対象に対する設定
CPU/メモリ/ディスク等の各種リソースやサーバプログラムの状態などを監視し、必要に応じてアラート送信やプロセス再起動などを行う設定ができる。
設定そのものが分かりやすいので個々のパラメータの説明は割愛し、いくつかの設定例を示す。
CPU/メモリ使用率
例) ロードアベレージ/CPU使用率/メモリ使用率がそれぞれ一定以上に達したらアラート送信
check system fedora.private.jp if loadavg (5min) > 2 then alert if cpu usage (user) > 70% then alert if cpu usage (system) > 30% then alert if memory usage > 75% then alert
ディスク使用率
例) ディスク使用率/inode使用率が一定以上に達したらアラート送信やディスク使用停止
check device datafs with path /dev/sda1 if space usage > 80% for 5 times within 15 cycles then alert if space usage > 95% then stop if inode usage > 90% then alert
ファイル
例) データベースファイルの指定時間以内に更新されていたらアラート、指定サイズ以上になったらクリーンアッププログラム実行
check file database with path /data/foo.db if timestamp > 15 minutes then alert if size > 100 MB then exec "/usr/local/bin/cleanup.sh"
ディレクトリ
例) 指定したディレクトリのパーミッションやオーナーが指定された状態以外になっていたらアラート送信して以降の監視停止
check directory bin with path /bin if failed permission 755 then unmonitor if failed uid 0 then unmonitor if failed gid 0 then unmonitor
プロセス監視
例) 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