そのため、サービスの開始時に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。後者のシナリオは、私が作業する必要があるものです。
助けてくれてありがとう!
私はそれをこのように機能させました:
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"