monitでプロセス監視(落ちてたら再起動する)設定をしていると、メンテナンス時に勝手に立ち上げてくれてしまったり、逆に面倒な事が起きるので、その場合の手順を纏めておきます。
参考:CentOS 6.5にmonitをインストールしてプロセス監視をする
前提条件は、monit
のWebインタフェースが空いていて、コマンドからのモニター設定が可能になっている事です。
※コマンドからじゃなくて直接Webでunmonitor/monitorするのでもいいのだけども、大概メンテナンスするときってコマンドライン使っていると思うので、そのまま出来た方が便利
ここでは、仮にvarnish
のメンテナンス(設定変更とかバージョンアップとか)で監視を停止する場合を想定します。
監視状況の確認(status/summary)
$ sudo service varnish status
varnishd (pid 12371) を実行中...
$ sudo monit summary | grep varnish
Process 'varnish' running
$ sudo monit status
(略)
Process 'varnish'
status running
monitoring status monitored
pid 12371
parent pid 1
uptime 1m
children 1
memory kilobytes 83940
memory kilobytes total 172900
memory percent 4.4%
memory percent total 9.2%
cpu percent 0.0%
cpu percent total 0.0%
data collected Sat Jul dd hh:mm:ss yyyy
簡単に状態を確認する場合はmonit summary
で見るのが早いです。プロセス名でgrep
しておけば、一行で確認できます。
詳細な状況が見たいのであればmonit status
で表示できますが、メンテナンスの為の事前状態確認としては、ここまで見る必要はないでしょう(^_^;)
監視停止(stop/unmonitor)
$ sudo monit unmonitor varnish
$ sudo monit summary | grep varnish
Process 'varnish' not monitored
$
$ sudo service varnish status
varnishd (pid 12371) を実行中...
$
$ sudo monit stop varnish
$ sudo monit summary | grep varnish
Process 'varnish' not monitored
$ sudo service varnish status
varnishd は停止しています
monit unmonitor
で監視のみの停止が出来ます。monit stop
で、監視だけでなくてサービス停止もしてくれます。
通常、メンテナンスする場合は一気に落としてしまうと思うので、monit stop
の方がてっとり早い気がします。
監視再開(start/monitor)
$ sudo monit start varnish
$ sudo service varnish status
varnishd (pid 12841) を実行中...
$ sudo monit summary | grep varnish
Process 'varnish' initializing
$ sleep 60
$ sudo monit summary | grep varnish
Process 'varnish' running
$
$ sudo monit unmonitor varnish
$ sudo monit summary | grep varnish
Process 'varnish' not monitored
$ sudo monit monitor varnish
$ sleep 60
$ sudo monit summary | grep varnish
Process 'varnish' running
こちらは完全に逆パターンで、monit start
でサービス再開とモニタ再開を両方してくれますし、monit monitor
でモニタのみの再開になります。
initialize状態は次の監視周期でrunningに(正常に動いていれば)変わります。
こちらは、メンテナンス後にいきなり監視も再開というのも乱暴なので、事前に動作確認は別途(service XXXX start
などで)確認した上で、monit monitor
で再開する方が多い気がします。
参考資料:USAGE
$ monit -h
Usage: monit [options] {arguments}
Options are as follows:
-c file Use this control file
-d n Run as a daemon once per n seconds
-g name Set group name for start, stop, restart, monitor and unmonitor
-l logfile Print log information to this file
-p pidfile Use this lock file in daemon mode
-s statefile Set the file monit should write state information to
-I Do not run in background (needed for run from init)
-t Run syntax check for the control file
-v Verbose mode, work noisy (diagnostic output)
-H [filename] Print SHA1 and MD5 hashes of the file or of stdin if the
filename is omited; monit will exit afterwards
-V Print version number and patchlevel
-h Print this text
Optional action arguments for non-daemon mode are as follows:
start all - Start all services
start name - Only start the named service
stop all - Stop all services
stop name - Only stop the named service
restart all - Stop and start all services
restart name - Only restart the named service
monitor all - Enable monitoring of all services
monitor name - Only enable monitoring of the named service
unmonitor all - Disable monitoring of all services
unmonitor name - Only disable monitoring of the named service
reload - Reinitialize monit
status - Print full status information for each service
summary - Print short status information for each service
quit - Kill monit daemon process
validate - Check all services and start if not running
(Action arguments operate on services defined in the control file)