Monit
monit は、UNIX システム上でプロセス、プログラム、ディレクトリ、およびファイルシステムを管理・監視するためのユーティリティです。
設定
monit をインストールする
app-admin/monit アプリケーションは以下の USE フラグを持っています:
USE flags for app-admin/monit Monitoring and managing daemons or similar programs running on a Unix system
USE フラグを適切に決定したら、emerge を利用して app-admin/monit をインストールしてください:
root #
emerge --ask app-admin/monit
Monit 設定ファイル
Monit アプリケーションはその設定ファイルとして /etc/monitrc を使用します。
監視の定義の追加と削除を簡単にするために、monit は特定のディレクトリ (通常は /etc/monit.d) 内のファイルのインクルードに対応しています。これを有効化するには、/etc/monitrc を次のように編集してください:
## It is possible to include additional configuration parts from other files or
## directories.
include /etc/monit.d/*
Monit に関連する設定ファイルを変更したら、monit にその設定を再読み込みさせてください:
root #
monit reload
ブート時に自動で monit を開始する
init 自身が monit アプリケーションを起動して、moint が突然終了したとしても自動で再起動できるように、/etc/inittab を介して monit を開始することが推奨されます。init スクリプトを介して monit を開始する場合は、この機能は提供されないでしょう。
# monit を通常のランレベルで実行する
mo:2345:respawn:/usr/bin/monit -Ic /etc/monitrc
/etc/inittab を更新したら、telinit q によって monit をただちに開始することができます。
ユーザー管理
monit または users グループに追加されたユーザは、web インターフェースを介して monit を操作することができます。
ユーザをこれらのグループのいずれかに追加するには、gpasswd を使用してください (${LOGNAME} はユーザの実際のログイン名で置き換えてください):
root #
gpasswd -a ${LOGNAME} monit
root #
gpasswd -a ${LOGNAME} users
/etc/monitrc ファイル内で、次のように allow
文がこれらのグループを参照しているべきです:
set httpd port 2812
allow @monit
allow @users
monitrc ファイル内にユーザ名とパスワードをハードコードすることもできますが、これは推奨されません。monitrc ファイルからデフォルトのパスワードを探して、それらを削除するか、強いユニークなパスワードを使用するように変更してください。その際に使用される構文はallow <username>:<password>
です。
Monit web インターフェース
web インターフェースのデフォルトの場所は localhost:2812 で、管理者ユーザ名は admin
、デフォルトのパスワードは monit
です。忘れずに変更してください!
monit でアプリケーションを監視する
Monit アプリケーションは、アプリケーションが実行中かどうかを判定するために PID ファイルチェックを使用します。つまり、アプリケーションが PID ファイルに対応していなくてはならず、さもないと monit はそのアプリケーションを監視することができません。デーモンが PID ファイルを作成しない場合は、それを作成するラッパを使用してください。
監視のために PID ファイルを使用する (ps などのツールが出力する PID と突き合わせる) 方法は、壊れている[1]と言われることがあります。Monit は、信頼に足りるだけ十分頻繁に PID ファイルを確認することによって、この弱点を克服しようとしています。
/etc/monit.d/ ディレクトリを使用することで、監視ルールの追加は簡単に行えます。
例えば、MySQL が終了したときに自動的に再開するには:
check process mysql with pidfile /var/run/mysqld/mysqld.pid
start program = "/bin/bash -c 'rc-service mysql start'"
stop program = "/bin/bash -c 'rc-service mysql stop'"
別の例として、プロセスのメモリ使用量を監視して、一定のしきい値を超えたときに警告を発するには:
check process squid with pidfile /run/squid.pid
start program = "/bin/bash -c 'rc-service squid start'"
stop program = "/bin/bash -c 'rc-service squid stop'"
if totalmem > 512 MB then alert
monit をデバッグする
monit をフォアグラウンドで実行する
monit をフォアグラウンドで実行して、検出されるすべての情報についてのフィードバックを得るには、-Ivv
オプションを使用してください:
root #
monit -Ivv
... 'squid' total mem amount of 525748kB matches resource limit [total mem amount>524288kB]
外部資料
Monit に関するさらなる情報については、以下の資料が助けになるかもしれません。
参照
- ↑ Greg Wooledge. Process management、2015 年 1 月 1 日取得。