VarnishでELBヘルスチェックに対応させるで紹介しているのように、Varnish単体で/healthcheck.txtにアクセスできるのが前提となります。

この状態で、下記のような/etc/monit.d/varnish.confで実現できます。

check process varnish with pidfile /var/run/varnish.pid
    start program = "/etc/init.d/varnish start"
    stop program = "/etc/init.d/varnish stop"
    if failed port 80 protocol http request /healthcheck.txt then restart
    if 5 restarts within 5 cycles then timeout

これにより、あとはMonitを再起動すればVarnishも監視することができ、プロセスが死んだり、コンテンツ(/healthcheck.txt)へのアクセスができなくなったら、Varnishが再起動されるようになります。

Monitは他のサービスも積極的に使うべきだと思います。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら