Help us understand the problem. What is going on with this article?

monitで監視しているプロセスをunmonitorしてメンテナンスする

More than 5 years have passed since last update.

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

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)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away