監視ツールというとNagiosやZabbixなどがメジャーですが、構築や設定は手間のかかる作業です。そんな時に、そんなに手間もかけずに、しかも比較的簡単に導入できる監視ツール「monit」を設定してみたのでその時の手順をまとめておきたいと思います。サーバ毎に設定をするため、スモールスタートやスタートアップにももってこいだと思います。
monitで出来ることは、主に以下です。
・サーバリソース監視
・ファイルシステムの監視
・URL監視
・ログ監視
・プロセス監視
ちなみに、多数のサーバの総合監視をする場合には、M/Monit(http://mmonit.com/) を利用すると良いそうです。これも今度試してみます。
では、サーバにmonitを設定してみましょう。
【インストール準備】
DAGレポジトリを利用します。
# wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt # rpm --import RPM-GPG-KEY.dag.txt 今回は、centOS6のサーバとなるので、Redhat用のレポジトリにします。 # vi /etc/yum.repos.d/dag.repo [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/ gpgcheck=1 enabled=0 # yum --enablerepo=dag install monit
インストール完了です。
【基本設定】
基本的な設定は monit.conf で実施します。
# vi /etc/monit.conf set daemon 60 # デーモンの監視間隔 set logfile /var/log/monit.log #ログファイルの指定 # アラートメールの送信元 set mailserver mail.xxxx.com port 465 username "AAAAAAAA" password "BBBBBBBB" using SSLAUTO # イベントキューの保持数 set eventqueue basedir /var/monit slots 100 # アラートメールの内容 set mail-format { From: aaa@example.com Subject:$HOST -- $EVENT $SERVICE $DATE message:$EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Description: $DESCRIPTION please check message or log. } # アラートメールの送信先 # not on {INSTANCE, xxxx} というように、指定の動作を設定するとそれに関する通知をしなくなります。 set alert bbb@example.com not on {INSTANCE} set httpd port 2812 and use address localhost allow localhost allow admin:monit allow @monit allow @users readonly # 設定ファイルのインクルード include /etc/monit.d/*
■ 個別サービスの設定
Apacheの場合
# vi /etc/monit.d/httpd.conf check process httpd with pidfile /var/run/httpd/httpd.pid start program = "/etc/init.d/httpd start" with timeout 60 seconds stop program = "/etc/init.d/httpd stop" if failed port 80 protocol http then restart
SSHの場合
# vi /etc/monit.d/httpd.conf check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/sshd start" with timeout 60 seconds stop program "/etc/init.d/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
最後に、monitを再起動して設定反映です。
ここで上げたのはほんの一例です。
URL監視も可能です。
monitを利用して色々なパターンの外部URLの監視、http監視を設定してみる | 田舎に住みたいエンジニアの日記
ドキュメントを見るととても詳しく設定の方法が書かれているので、是非見てください。
http://mmonit.com/monit/documentation/monit.html#configuration_examples