I think it is important to know how much time it is taking for the varnish
to go to the backend (webserver) and return.
The script will show the response time of more then on site, to make
it work be sure to have the varnish VCL probe setup.
To test run
#varnishadm debug.health
Here is the code:
#!/bin/bash #Get current time of backend response on Varnish Servers # Requires the use of backend probes config in VLC #By Felipe Ferreira October 2010 # Exit codes STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 #Variables site="bobo" maxconwarn=1 maxconcrti=2 perfdata=1 #Check arguments print help if [ $# -lt 1 ]; then echo "Uso: $0 -s[-w|--warning ] [-c|--critical ]" exit $STATE_UNKNOWN fi #GET ARGS while test -n "$1"; do case "$1" in --help) echo "Uso: $0 -s [-w|--warning ] [-c|--critical ] " exit $STATE_OK ;; -h) echo "Uso: $0 -s [-w|--warning ] [-c|--critical ] " exit $STATE_OK ;; --warning) maxconwarn=$2 shift ;; -w) maxconwarn=$2 shift ;; --critical) maxconcrit=$2 shift ;; -c) maxconcrit=$2 shift ;; -s) site=$2 shift ;; -site) site=$2 shift ;; esac shift done if [ $site = "bobo" ]; then result=`/usr/local/varnish/bin/varnishadm -T 127.0.0.1:1234 debug.health|grep probes |cut -b 37-45 |head -n 1` elif [ $site = "rapa" ]; then result=`/usr/local/varnish/bin/varnishadm -T 127.0.0.1:1234 debug.health|grep probes |cut -b 37-45 |head -n 2|tail -n 1` else echo "Missing Site parameter" echo "Uso: $0 -s [-w|--warning ] [-c|--critical ] " exit $STATE_UNKNOWN fi #echo $result if [ $(echo "$result > $maxconwarn"|bc) -eq 1 ]; then OUTPUT="WARNING - Backend $site response = $result" exitstatus=$STATE_WARNING fi if [ $(echo "$result > $maxconcrit"|bc) -eq 1 ]; then OUTPUT="CRITICAL - Backend $site response = $result" exitstatus=$STATE_CRITICAL fi if [ $(echo "$result < $maxconwarn"|bc) -eq 1 ]; then OUTPUT="OK - Backend $site response = $result" exitstatus=$STATE_OK fi if [ $perfdata -eq 1 ]; then OUTPUT="$OUTPUT|BackendResponse=$result" fi echo $OUTPUT exit $exitstatus
it’s me
Nice work