監視ツールというとNagiosやZabbixなどがメジャーですが、構築や設定は手間のかかる作業です。そんな時に、そんなに手間もかけずに、しかも比較的簡単に導入できる監視ツール「monit」を設定してみたのでその時の手順をまとめておきたいと思います。サーバ毎に設定をするため、スモールスタートやスタートアップにももってこいだと思います。
monitで出来ることは、主に以下です。
・サーバリソース監視
・ファイルシステムの監視
・URL監視
・ログ監視
・プロセス監視
ちなみに、多数のサーバの総合監視をする場合には、M/Monit(http://mmonit.com/) を利用すると良いそうです。これも今度試してみます。
では、サーバにmonitを設定してみましょう。
【インストール準備】
DAGレポジトリを利用します。
[html]
# 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
[/html]
インストール完了です。
【基本設定】
基本的な設定は monit.conf で実施します。
[html]
# 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/*
[/html]
■ 個別サービスの設定
Apacheの場合
[html]
# 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
[/html]
SSHの場合
[html]
# 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
[/html]
最後に、monitを再起動して設定反映です。
ここで上げたのはほんの一例です。
URL監視も可能です。
monitを利用して色々なパターンの外部URLの監視、http監視を設定してみる | 田舎に住みたいエンジニアの日記
ドキュメントを見るととても詳しく設定の方法が書かれているので、是非見てください。
http://mmonit.com/monit/documentation/monit.html#configuration_examples