使用Monit来监视和自动恢复Ubuntu 20.0.4上的nginx

首先

目标读者

    • Ubuntu で nginx サーバを運用している人

 

    • 気づいたら nginx がお亡くなりになっていて対応しないとならない、という事態に陥ったことのある人

 

    あるいは上記のような事態に陥りたくない人

行动环境

    Ubuntu 20.0.4

安装

请监控

    • Monit

 

    以下の通りインストール
apt install monit

设置

/etc/monit/monitrc 只需要一个选择,请以中文本地方式进行改述。

    初期値は 120 秒ごとにチェックするようになっている。運用に応じて変更するべし
  set daemon 120            # check services at 2-minute intervals
    ログは以下のところに出力されるようになっている。ここも含め、他の設定も特に変更する必要はないと思われる
  set log /var/log/monit.log

/nginx在/etc/monit/conf-available/中

    • 今回は nginx を監視するので監視対象用のコンフィグファイルは /etc/monit/conf-available/nginx

最近の monit はインストールした時点でコンフィグファイルが用意されている
中身は以下のようになっているので、自身の環境で要変更箇所があれば変更すべし

 check process nginx with pidfile /var/run/nginx.pid
   group www
   group nginx
   start program = "/etc/init.d/nginx start"
   stop program = "/etc/init.d/nginx stop"
#  if failed port 80 protocol http request "/" then restart
   if 5 restarts with 5 cycles then timeout
   depend nginx_bin
   depend nginx_rc

 check file nginx_bin with path /usr/sbin/nginx
   group nginx
   include /etc/monit/templates/rootbin

 check file nginx_rc with path /etc/init.d/nginx
   group nginx
   include /etc/monit/templates/rootbin
    上記コンフィグを適用したいので、シンボリックリンクを作成
ln -s /etc/monit/conf-available/nginx /etc/monit/conf-enabled/
    設定を再読込
systemctl reload monit

确认动作

    • 試しに nginx -s stop を実行して nginx プロセスを止めてみると、自動復旧してくれるようになる

 

    ログは以下のように出力される
[JST Jul  5 18:35:19] error    : 'nginx' process is not running
[JST Jul  5 18:35:19] info     : 'nginx' trying to restart
[JST Jul  5 18:35:19] info     : 'nginx' start: '/etc/init.d/nginx start'

总结

印象

    • 日本語で、最近の Ubuntu 環境での monit + nginx 記事が見当たらなかったので、まとめました

 

    これで知らない間に nginx が沈黙していた……という状況のときに自動復活してくれるので精神衛生面で助かる

文献提及

    • Qiita – プロセス監視のためのmonitを設定してみる

 

    Tutorials24x7 – Configure Monit For MySQL, Apache, NGINX On Ubuntu 20.04 LTS
广告
将在 10 秒后关闭
bannerAds