Monit

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Monit and the translation is 100% complete.

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

ipv6 Add support for IP version 6
pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)

USE フラグを適切に決定したら、emerge を利用して app-admin/monit をインストールしてください:

root #emerge --ask app-admin/monit

Monit 設定ファイル

Monit アプリケーションはその設定ファイルとして /etc/monitrc を使用します。

監視の定義の追加と削除を簡単にするために、monit は特定のディレクトリ (通常は /etc/monit.d) 内のファイルのインクルードに対応しています。これを有効化するには、/etc/monitrc を次のように編集してください:

ファイル /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 を開始する場合は、この機能は提供されないでしょう。

ファイル /etc/inittab失敗時に 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 文がこれらのグループを参照しているべきです:

ファイル /etc/monitrcweb インターフェースへのアクセスをグループに付与する
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 が終了したときに自動的に再開するには:

ファイル /etc/monit.d/mysqlmysql を自動で再開する
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'"

別の例として、プロセスのメモリ使用量を監視して、一定のしきい値を超えたときに警告を発するには:

ファイル /etc/monit.d/squidsquid を監視してメモリ消費が 512 MB を超えたら警告する
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 に関するさらなる情報については、以下の資料が助けになるかもしれません。

参照

  1. Greg Wooledge. Process management、2015 年 1 月 1 日取得。