In order to know Varnish Cache if is running and able to handle HTTP requests properly, without having the backends as part the equation please add the following VCL snippet makes sure that the URL /heart-beat always returns 200:
Varnish 4 equivalent:
sub vcl_recv {
if (req.method == "GET" && req.url == “/heart-beat") {
return(synth(200, "OK"));
}
}
Varnish 3 equivalent:
sub vcl_recv {
if (req.request == "GET" && req.url == "/heart-beat") {
error 200 "OK";
}
}
You may want to protect the URL by using ACLs if you don’t want to expose /heart-beat to the public.
Please see original page: https://www.varnish-software.com/blog/blog-sysadmin-monitoring-health-varnish-cache