web-dev-qa-db-ja.com

再起動時にMonit実行スクリプト

そのため、サービスの開始時にMonitにスクリプトを実行させようとしています。 Monitはサービスの再起動に問題はありませんが、サービスが無期限にダウンしているときだけでなく、サービスの開始が必要な場合はもちろんアラートを受け取りたいと思います。

これが私の/etc/monit/conf.d/nginx.pidファイルです:

check process nginx with pidfile /var/run/nginx.pid
  start program = "/usr/sbin/service nginx start"
  stop  program = "/usr/sbin/service nginx stop"
  if failed Host 127.0.0.1 port 8080 then restart
  if changed pid then exec "/etc/monit/slack.rb"
  if failed Host 127.0.0.1 port 8080 then exec "/etc/monit/slack.rb" else if succeeded then exec "/etc/monit/slack.rb"
  if cpu is greater than 40% for 2 cycles then exec "/etc/monit/slack.rb" else if succeeded then exec "/etc/monit/slack.rb"
  if cpu > 60% for 5 cycles then restart

今のところ、ポートをnginxが実行されていない別のポートに変更すると(明らかに接続できません)、monitはslack.rbスクリプトを実行しますが、nginxが停止しているときは実行されませんが、 monit。後者のシナリオは、私が作業する必要があるものです。

助けてくれてありがとう!

1
ambe5960

私はそれをこのように機能させました:

check process nginx with pidfile /var/run/nginx.pid
  start program = "/usr/sbin/service nginx start"
  stop  program = "/usr/sbin/service nginx stop"
  IF does not exist THEN restart ELSE IF SUCCEEDED THEN exec "/etc/monit/slack.rb"
  IF failed Host 127.0.0.1 port 8080 THEN restart ELSE IF SUCCEEDED THEN exec "/etc/monit/slack.rb"
1
Taggart Comet