httpdやmysqldを監視するmonitを導入する

monit を導入する

ダウンロードできるか確認
———————————–
yum list available | grep monit
———————————–

monit をインストール
———————————–
yum install monit
———————————–

設定ファイルをいじるので原本をコピー
———————————–
cp -p /etc/monit.conf /etc/monit.conf_org
———————————–
※centOS7.x系では設定ファイル名は monitrc

起動しているか(monitの状態確認)
———————————–
monit summary
———————————–

もしくは

———————————–
monit status
———————————–

結果:起動していない
———————————–
Monit: the monit daemon is not running
———————————–

monit を起動させる(centOS6.x系)
———————————–
service monit start
———————————–

monit を起動させる(centOS7.x系)
———————————–
systemctl start monit
———————————–

設定ファイルの編集
———————————–
vi /etc/monit.conf
———————————–

monit のログ(デフォルト)
———————————–
cat /var/log/monit
———————————–

monit.conf を見ると、include /etc/monit.d/ 以下のファイルがインクルードされているのが分かる
———————————–
# Include all files from /etc/monit.d/
include /etc/monit.d/*
———————————–

監視対象のデーモンは /etc/monit.d/ に個別にファイルを作ればいい。

crond の監視をする場合、下記の内容で crond.conf というファイル名にして /etc/monit.d の直下に置く
———————————–
check process crond with pidfile /var/run/crond.pid
start program = “/etc/init.d/crond start”
stop program = “/etc/init.d/crond stop”
if 5 restarts within 5 cycles then unmonitor
———————————–

mysqldはこれ
———————————–
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
start program = “/etc/init.d/mysqld start”
stop program = “/etc/init.d/mysqld stop”
if 5 restarts within 5 cycles then unmonitor
———————————–

httpd(apache)はこれ
———————————–
check process httpd with pidfile /var/run/httpd/httpd.pid
start program = “/etc/init.d/httpd start”
stop program = “/etc/init.d/httpd stop”
if 5 restarts within 5 cycles then unmonitor
———————————–

メールの設定。monit.conf に書く
———————————–
#yahooメールの送信サーバーを指定
set mailserver localhost

#アラートメールの内容
set mail-format {
from: monit@example.com
subject: $HOST : $SERVICE – $EVENT
message: Monit
ACTION : $ACTION
SERVICE : $SERVICE
at $DATE on $HOST.
DESCRIPTION : $DESCRIPTION
}

#送信先
set alert 自分のメール@yahoo.co.jp
———————————–

個別設定ファイルを作ったらシンタックスのチェックも忘れずに
———————————–
monit -t
———————————–

シンタックスに問題なければ設定を反映
———————————–
monit reload
———————————–

サーバーが起動した際に monit も自動起動するか確認
———————————–
# chkconfig –list monit
monit 0:off 1:off 2:off 3:off 4:off 5:off 6:off
———————————–
run level 3 ~ 5 が on になっていれば自動起動する。↑これでは起動しない。

ちなみに mysqld の run level を確認すると 3~ 5 が on になっていた。
———————————-
#chkconfig –list mysqld
mysqld 0:off 1:off 2:off 3:on 4:on 5:on 6:off
———————————

monit を自動起動に設定する
———————————
chkconfig monit on
———————————

スクリプトにより unmonitor になった場合に monitor に戻すとき
———————————–
monit monitor all
———————————–

一時的に unmonitor するとき
———————————–
monit unmonitor crond

もしくは

monit unmonitor all
———————————–

一度 unmonitor になると自動で戻らないので cron で定期的に戻す
———————————–
#60分ごとに unmonit をリフレッシュ
*/60 * * * * /usr/bin/monit monitor all
———————————–

マニュアルを開く
———————————–
man monit
———————————–

タイトルとURLをコピーしました