monitの使い方

sudo apt install monit -y

永続化

sudo systemctl enable monit

設定ファイルを /etc/monit/conf.d に配置する.以下はElasticsearchの場合の例.

check process elasticsearch with pidfile /var/run/elasticsearch/elasticsearch.pid
  start program = "/bin/systemctl start elasticsearch"
  stop  program = "/bin/systemctl stop elasticsearch"
  if 5 restarts within 5 cycles then timeout
  if failed port 9200 protocol http request "/" then restart

nginxやmysqlをはじめとする主要なOSSは /etc/monit/conf-available に配置されているのでシンボリックリンクを貼ることで設定を有効化できる.ここではNginxを例にする.

cd /etc/monit/conf-availabe
sudo ln -s ../conf-enabled/nginx ./nginx

設定ファイルの構文をチェックする.

sudo monit -t

monitへ設定を適用させる.

sudo monit reload

monitで把握している状況を以下で確認できる.

sudo monit summary

monitで把握している状況の詳細

sudo monit status

試しにサービスをダウンさせてみる.

sudo systemctl stop nginx

monitの状況を確認してみる.monitが検知するまでには時間がかかる.

sudo monit summary

異常を検知すると,startのコマンドを実行する.次に監視するタイミングで起動しているとsummaryの結果が正常に戻る.詳細なログは /var/log/monit.log を見ると良い.

リンク