2009-07-23
monit使う場合は定期的にmonit monitor allしたほうが良い
monitとは
サーバに常駐してプロセス監視(pid,file,tcp/udp port checkなど)を行い、必要ならプロセス再起動とかしてくれるめちゃ便利なデーモン。
で、公式の例のような感じでこんな風に設定してるとする。
check process apache with pidfile /usr/local/apache2/logs/httpd.pid
group www
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host localhost port 80
protocol HTTP request /monit/token then restart
if 5 restarts within 5 cycles then timeout
monitがしてること
- http://localhost:80/monit/tokenにhttpリクエスト投げて、失敗(80番ポートに接続できない,40x/50xのstatusが返ってきたなど)すれば再起動(stop, start)する。
- 5サイクル内に5回再起動した場合はtimeout(unmonitor)
timeoutとなる例は、ネットワーク障害/アクセス集中による高負荷などで連続してモニタに失敗した場合など。で、こうなると、monit status*1のコマンド打ったときに
# monit status (中略) Process 'apache' status not monitored monitoring status not monitored data collected Sun Jul 19 18:54:17 2009
対策
monit再起動(monit reloadではなく、停止/起動で)、monit monitor allなどのコマンドを実行する。でもうっかり忘れると困る。というわけでタイトルのようにcronで
*/30 * * * * /usr/sbin/monit monitor all
等のような設定を入れておいたほうが良いんじゃないか、と思ったのでこのエントリを書いた。
追記: set httpdについて
monit管理用のhttpdの設定。monit status, monit monitor allなどのコマンドを使う場合は、設定が必要。(monitの命令がhttp経由で実行されるので)
ここで設定するhttpdは通常のブラウザからでもアクセスできて、監視対象デーモンの再起動なども出来る。Basic認証で制限できるとはいえ、ブラウザ経由でそんなことするの怖い、というのであれば
set httpd port 2812 and use address localhost allow localhost # Allow localhost to connect
というように設定しておけばlocalhostでのみlistenする。
リモートからアクセスする場合はIPとBasic認証かける。read-onlyの設定が入っているユーザは、statusを確認できるけどデーモン再起動などはできない。
set httpd port 2812 and use address localhost allow 192.168.0.1/24 allow admin:Monit # Allow Basic Auth allow user:pass read-only # Allow Basic Auth (read-only)
あと、sampleではhttpdのportが2812だけど、覚えにくいので自分が使うときは別のportに変えています(割とどうでもよい)。
ちなみにmonitのhttpdにアクセスするとこんな画面になる。
*1:monitの設定でset httpdを有効にしている必要あり
- 123 http://www.google.co.jp/search?q=monit&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 77 http://www.multiburst.net/sometime-php
- 71 http://www.google.co.jp/url?sa=t&rct=j&q=monit&source=web&cd=5&ved=0CEcQFjAE&url=http://d.hatena.ne.jp/hogem/20090723/1248358467&ei=JWCmTpvAHqmImQW1t62yDw&usg=AFQjCNE0A8fXslAo9IcqRfVwnqhIQZW-ow
- 69 http://www.google.co.jp/url?sa=t&rct=j&q=monit&source=web&cd=6&ved=0CF8QFjAF&url=http://d.hatena.ne.jp/hogem/20090723/1248358467&ei=GzqETtLKMvGimQWl7ZQr&usg=AFQjCNE0A8fXslAo9IcqRfVwnqhIQZW-ow&sig2=RMaAhmzzm1228VGole1Fkw
- 55 http://www.google.co.jp/search?q=monit&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP-mac:official&client=firefox-a
- 40 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=io3&q=start+program+monit&btnG=検索&lr=lang_ja
- 40 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCQQFjAA&url=http://d.hatena.ne.jp/hogem/20090723/1248358467&ei=hcwxT7DXOYeNmQWPiMy8BQ&usg=AFQjCNE0A8fXslAo9IcqRfVwnqhIQZW-ow&sig2=ZoiETHFZYagODOC_z2ESfw
- 37 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=HPND,HPND:2006-37,HPND:ja&q=monit
- 32 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=monit
- 26 http://www.google.co.jp/search?hl=ja&q=Monit&lr=lang_ja



