LoginSignup
5
2

More than 3 years have passed since last update.

Monit周りまとめ

Last updated at Posted at 2020-10-28

概要

プロセスの自動再起動に便利なmonit。
使い方について昔学んだことをまとめておく。

monitへの監視設定追加の流れ

  1. monitの監視対象となっているプロセスを確認
  2. monitの監視対象とするプロセスの設定を追加
  3. monitの設定を読み込ませる
  4. monitの監視対象となっているプロセスを確認
  5. 対象プロセスをキルして動作確認

1. monitの監視対象となっているプロセスを確認

sudo monit summary
=>
表示例
Process 'XXX'  Running             # 設定がmonitに認識されている & 監視対象   & 動作している
Process 'YYY'  Initializing        # 設定がmonitに認識されている & 監視対象   & 動作している(初回監視間隔をむかえていない?)
Process 'ZZZ'  Not monitored       # 設定はmonitに認識されている & 監視対象外 & 動作しているかは不明
Process 'AAA'  Does not exist      # 設定はmonitに認識されている & 監視対象   & 動作していない

上記に表示されていないプロセスについてはmonitに設定を追加する必要がある。
※上記コマンドで出てこない場合は、以下の設定がないことが原因かもしれない。
自分が触っていたEC2は実際そうだった。

参考:monit: error connecting to the monit daemon

2. monitの監視対象とするプロセスの設定を追加

# 各プロセスの設定ファイル格納ディレクトリへ移動
cd /etc/monit/conf.d

# monit監視対象に新規追加したいプロセスの設定ファイルを作成
sudo vi <プロセス名>.conf

# 編集して保存
---
# pidfileの有無で<プロセス名>のプロセス起動を監視
check process <プロセス名> with pidfile "<対象プロセスのpidファイルのパス>"

# <プロセス名>起動コマンド(起動に30秒かかったらタイムアウト)
start program = "<起動コマンド>" with timeout 30 seconds

# <プロセス名>停止コマンド(停止に20秒かかったらタイムアウト)
stop program = "<停止コマンド>" with timeout 20 seconds
---

3. monitの設定を読み込ませる

sudo monit reload

4. monitの監視対象となっているプロセスを確認(設定の読み込み確認)

※1.と同様

sudo monit summary

で確認し、監視対象プロセスが一覧に表示されるようになれば読み込まれている。

5. 動作確認

# プロセスを殺す
kill <対象プロセスのPID>

set daemonで設定されている秒数を待ったのちに

ps aux | grep <プロセス>

でプロセスが存在するようになればOK

monitでの自動起動設定追加

/etc/monit/conf.d/ 以下に設定ファイルを作成する(ファイル名はなんでもいい)

ex. unicornをmonit監視下におく

※check process は summaryに表示される名称になる

check process unicorn_process
  with pidfile "<unicornのpidファイルのパス>"
  start program = "<起動コマンド>" with timeout 30 seconds
  stop program = "<終了コマンド>" with timeout 20 seconds
  group <グループ名>

を設定ファイルに追加した後

sudo service monit restart

補足:monitコマンドのその他オプション

monitのバージョンを知る

sudo monit -V

monitに認識されているプロセスについて監視対象にする、監視対象外にする

# 監視対象にする
sudo monit monitor <プロセス名(summaryで表示されるやつ)>

# 監視対象外にする
sudo monit unmonitor <プロセス名(summaryで表示されるやつ)>

補足:設定ファイル解説

monitrc

# 監視間隔の設定(以下は2分間隔の場合)
 set daemon 120            # check services at 2-minute intervals

# monitのログファイルパス
  set logfile /var/log/monit.log

# 外部の設定ファイルを読み込む場合のパス
    include /etc/monit/conf.d/*
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2