No Image

monit を使ってサーバプロセスを監視し、よく眠れる環境を作りましょう

サーバを管理しているとどうしても気になるのは、サーバが動作しているのかどうか、です。
何らかの形でマシンの前に座っている時はサイトをブラウジングするなりして確認することはできますが、そうでない場合、ドキドキな日々を送っている管理者は少なくないでしょう。

現在、当方は一部サーバにて「mon」を使用しています。
このソフトウェアは悪くはないのですが、Perlにて作成されているため、monのプロセスそのものが若干重く大きいのと、mon自体が動作しているかどうかよく分からんところがあり、何となく不安な日々を過ごしています。
最近、たまたま名前を見かけたのが「monit」
一応、バイナリプロセスのようですし、initで動作するのでmonit自身の稼動監視も可能です。
以下、インストール方法です。


【ダウンロード】
RPM等でインストールする場合、下記よりダウンロードします。
monit :RPM Packages
今回は「珍しく」RPMにてインストールします。
【インストール】
上記からRPMパッケージをダウンロードします。
今回は、monit-4.9-2.rh7.rf.i386.rpmをダウンロードします。
ダウンロードしたら、通常のRPMパッケージと同様にインストールします。

>rpm -ivh monit-4.9-2.rh7.rf.i386.rpm

【設定】
基本の設定ファイル:/etc/monit.conf
インクルードする設定ファイルの置き場:/etc/monit.d/
/etc/monit.conf
[bash]# 監視を行う間隔を秒で指定
set daemon 120
#
# ログファイルの記録方法
set logfile syslog facility log_daemon
#
# アラートメールなどを配信するためのメールサーバ
set mailserver localhost
#
# アラートメールを配信するメールアドレス
set alert メールアドレス
# アラートメールのメールフォーマット
set mail-format {
subject: monit alert– $EVENT $SERVICE @$HOST
}
#
# 管理画面に関する情報
# ポート番号:2812
set httpd port 2812
  # SSLにてアクセス
SSL ENABLE
  # PEMファイルの場所を指定
PEMFILE /etc/monit.d/pem/monit.pem
  # アクセスの際に指定するアドレス
use address localhost
  # アクセス許可するIPアドレス
allow localhost
allow xxx.xxx.xxx.xxx
  # アクセスする際に使用するIDとパスワード
allow ID:password
#
# その他設定ファイルの設置先
include /etc/monit.d/*[/bash]
/etc/monit.d/にapache監視用の設定ファイルを設置
/etc/monit.d/httpd.conf
[bash]
check process apache with pidfile /usr/local/apache2/logs/httpd.pid
start program = "/usr/local/apache2/bin/apachectl start"
stop program = "/usr/local/apache2/bin/apachectl stop"
if 5 restarts within 5 cycles then timeout
if failed port 80 then restart
[/bash]
説明:
apacheのプロセスが起動しているかどうかを/usr/local/apache2/logs/httpd.pidの存在有無にて確認する
apacheの起動コマンドは /usr/local/apache2/bin/apachectl start
apacheの停止コマンドは /usr/local/apache2/bin/apachectl stop
もし、5回リスタートを行っても起動しなかったらタイムアウト処理を行う
もし、ポート番号:80がダウンしていたらリスタートを行う
ここまで設定したらmonitを起動します。
[bash] > /etc/init.d/monit start[/bash]
monitが起動したことを確認したら、試しにapacheのプロセスを停止してみましょう。
自動でapacheプロセスが再起動するはずです。
同様の形で他のプロセスについてもconfファイルを作成します。
上記には記載していませんが、例えば、apacheのプロセスがCPU負荷を50%食っている状態が10分続いた場合や、メモリを60%食いつぶした場合の処理なども指定できます。
【ドキュメント】
monit document
プロセスの監視を行うデーモン monit [ウノウラボ]
Monitでサービス・プロセス監視、止まったら勝手にリスタート [sawano blog]
[tmkm-amazon]4478006008[/tmkm-amazon]

Share this post