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 を見ると良い.