Monitとは?
Monit とは、プロセスを監視して、 なにか問題があったときに再起動などを行ってくれる、便利なユーティリティです。
便利そうなのでいれてみる。
CentOS5.3はrpmforgeを見ないとmonitが無いようなので一度確認する。
# yum search --enablerepo=rpmforge monit ・・・ monit.x86_64 : Process monitor and restart utility ・・・
見つかったのでインストール
# yum install --enablerepo=rpmforge monit Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.nara.wide.ad.jp * extras: ftp.nara.wide.ad.jp * rpmforge: fr2.rpmfind.net * updates: ftp.nara.wide.ad.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package monit.x86_64 0:5.2.5-1.el5.rf set to be updated --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================================================================================================== Package Arch Version Repository Size ==================================================================================================================================================================================== Installing: monit x86_64 5.2.5-1.el5.rf rpmforge 567 k Transaction Summary ==================================================================================================================================================================================== Install 1 Package(s) Upgrade 0 Package(s) Total download size: 567 k Is this ok [y/N]: y Downloading Packages: monit-5.2.5-1.el5.rf.x86_64.rpm | 567 kB 00:02 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : monit 1/1 Installed: monit.x86_64 0:5.2.5-1.el5.rf Complete!
インストールできた。
設定ファイルはここに出来上がる
/etc/monit.conf
/etc/monit.d
起動スクリプトはここに出来上がる
/etc/rc.d/init.d/monit
設定変更前にバックアップ
# cp /etc/monit.conf /etc/monit.conf.default
設定を変更する。変更後のdiff。
# diff /etc/monit.conf.default /etc/monit.conf 19,20c19,20 < # set daemon 120 # check services at 2-minute intervals < # with start delay 240 # optional: delay the first check by 4-minutes (by --- > set daemon 120 # check services at 2-minute intervals > with start delay 240 # optional: delay the first check by 4-minutes (by 28c28 < # set logfile syslog facility log_daemon --- > set logfile syslog facility log_daemon 35c35 < set idfile /var/monit/id --- > #set idfile /var/monit/id 43c43 < set statefile /var/monit/state --- > #set statefile /var/monit/state 52a53 > set mailserver localhost 107c108 < # set alert sysadm@foo.bar # receive all alerts --- > set alert xxxxx@xxxxxx.co.jp # receive all alerts アラートメールの送信先設定 116,117c117,118 < # set httpd port 2812 and < # use address localhost # only accept connection from localhost --- > set httpd port 2812 and > use address example.com # only accept connection from localhost http://example.com:2812で管理画面が見られる 119c120 < # allow admin:monit # require user 'admin' with password 'monit' --- > allow username:password # require user 'admin' with password 'monit' 管理画面にアクセスする際のユーザ名とパスワード
httpの監視設定ファイルの作成
# vim /etc/monit.d/httpd
check process httpd with pidfile /var/run/httpd.pid start program = "/etc/init.d/httpd start" stop program = "/etc/init.d/httpd stop" if failed port 80 then restart if cpu > 90% for 5 cycles then alert if mem > 90% for 5 cycles then alert
mysqlの監視設定ファイルの作成
# vim /etc/monit.d/mysql
check process mysql with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed port 3306 protocol mysql then restart if cpu > 90% for 5 cycles then alert if mem > 90% for 5 cycles then alert
monitの起動
# /etc/init.d/monit start Starting monit: Starting monit daemon with http interface at [example.com:2812] Monit start delay set -- pause for 240s [ OK ]
ブラウザからアクセスしてみる。
この例ではhttp://example.com:2812
※iptablesとかで絞ってるならあけないと。。
管理画面はこんな感じ
ちょっとapache止めてみる。
# /etc/rc.d/init.d/httpd stop httpd を停止中: [ OK ]
管理画面を見てみると・・・。
httpdが止まってる。
そのまま数分放置してまた管理画面を見ると・・・。
再起動してる!
とりあえずこんな感じ。
参考URL
monit で始めるお手軽サーバ監視
プロセスの監視を行う デーモン monit
Monit の導入
Monit の導入 – 設定ファイルいくつかAdd Star
monit入門
monit でプロセスを監視する
monit でいろいろ監視する