5.02021-11-21T21:57:40ZTemplates/ApplicationsApp Varnish by Zabbix agentApp Varnish by Zabbix agent## Description
Simple template for the Varnish cache using results from the varnishstat command. Ensure that "EnableRemoteCommands=1" is set in the host's agent config file.
## Overview
Simple template for the Varnish cache using results from the varnishstat command. Ensure that "EnableRemoteCommands=1" is set in the host's agent config file.
## Author
Dave Humphrey (dave@uesp.net)
Templates/ApplicationsVarnishZabbix raw items- Varnish: Service response timenet.tcp.service.perf[http,"{$VARNISH.STATUS.HOST}","{$VARNISH.STATUS.PORT}"]7dFLOATsVarnish{min(5m)}={$VARNISH.RESPONSE_TIME.MAX.WARN}Varnish: Service response time is too high (over {$VARNISH.RESPONSE_TIME.MAX.WARN}s for 5m)WARNINGYESVarnish: Process is not running{App Varnish by Zabbix agent:proc.num["{$VARNISH.PROCESS_NAME}"].last()}=0Varnish: Service is down{App Varnish by Zabbix agent:net.tcp.service[http,"{$VARNISH.STATUS.HOST}","{$VARNISH.STATUS.PORT}"].last()}=0
- Varnish: Service pingnet.tcp.service[http,"{$VARNISH.STATUS.HOST}","{$VARNISH.STATUS.PORT}"]7dVarnish{last()}=0Varnish: Service is downAVERAGEYESVarnish: Process is not running{App Varnish by Zabbix agent:proc.num["{$VARNISH.PROCESS_NAME}"].last()}=0
- Varnish: CPU utilizationproc.cpu.util["{$VARNISH.PROCESS_NAME}"]7dFLOAT%Process CPU utilization percentage.Varnish
- Varnish: Memory usage (rss)proc.mem["{$VARNISH.PROCESS_NAME}",,,,rss]7dBResident set size memory used by process in bytes.Varnish
- Varnish: Memory usage (vsize)proc.mem["{$VARNISH.PROCESS_NAME}",,,,vsize]7dBVirtual memory size used by process in bytes.Varnish
- Varnish: Number of processes runningproc.num["{$VARNISH.PROCESS_NAME}"]7dVarnish{last()}=0Varnish: Process is not runningHIGH
- Varnish: Get statussystem.run[varnishstat -j]1h0TEXTZabbix raw items{nodata(10m)}=1Varnish: Failed to fetch stats (or no data for 10m)WARNINGZabbix has not received data for stats for the last 10m.YESVarnish: Process is not running{App Varnish by Zabbix agent:proc.num["{$VARNISH.PROCESS_NAME}"].last()}=0Varnish: Service is down{App Varnish by Zabbix agent:net.tcp.service[http,"{$VARNISH.STATUS.HOST}","{$VARNISH.STATUS.PORT}"].last()}=0
- Varnish: Backend connectionsDEPENDENTvarnish.backend.connections07dBackend connections succeededVarnishJSONPATH$["MAIN.backend_conn"].valuesystem.run[varnishstat -j]
- Varnish: Backend failedDEPENDENTvarnish.backend.failed07dBackend connections failedVarnishJSONPATH$["MAIN.backend_fail"].valuesystem.run[varnishstat -j]
- Varnish: Backend requestsDEPENDENTvarnish.backend.requests07dBackend requests madeVarnishJSONPATH$["MAIN.backend_req"].valuesystem.run[varnishstat -j]
- Varnish: Backend unhealthyDEPENDENTvarnish.backend.unhealthy07dBackend connections not attemptedVarnishJSONPATH$["MAIN.backend_unhealthy"].valuesystem.run[varnishstat -j]
- Varnish: Bytes per secondDEPENDENTvarnish.bytes.rate07dFLOATBpsCalculated as change rate for 'Total bytes' stat.VarnishJAVASCRIPTvar values = JSON.parse(value);
var headBytes = values["MAIN.s_resp_hdrbytes"].value;
var bodyBytes = values["MAIN.s_resp_bodybytes"].value;
return headBytes + bodyBytes;CHANGE_PER_SECONDsystem.run[varnishstat -j]
- Varnish: Cache hit-passDEPENDENTvarnish.cache.hitpasses07dCache hits for passVarnishJSONPATH$["MAIN.cache_hitpass"].valuesystem.run[varnishstat -j]
- Varnish: Cache hitsDEPENDENTvarnish.cache.hits07dCache hitsVarnishJSONPATH$["MAIN.cache_hit"].valuesystem.run[varnishstat -j]
- Varnish: Cache missesDEPENDENTvarnish.cache.misses07dCache missesVarnishJSONPATH$["MAIN.cache_miss"].valuesystem.run[varnishstat -j]
- Varnish: Client requestsDEPENDENTvarnish.client.requests07dGood client requests receivedVarnishJSONPATH$["MAIN.client_req"].valuesystem.run[varnishstat -j]
- Varnish: Cache hit rateDEPENDENTvarnish.hitrate07dFLOAT%Average hit rate since the cache was startedVarnishJAVASCRIPTvar values = JSON.parse(value);
var hit = values["MAIN.cache_hit"].value;
var miss = values["MAIN.cache_miss"].value;
var hitpass = values["MAIN.cache_hitpass"].value;
return hit / (hit + miss) * 100;system.run[varnishstat -j]
- Varnish: Cache hit rate 5mCALCULATEDvarnish.hitrate5m7dFLOAT%(last("varnish.cache.hits") - last("varnish.cache.hits",#2)) * 100 / ((last("varnish.cache.misses") - last("varnish.cache.misses",#2)) + (last("varnish.cache.hits") - last("varnish.cache.hits",#2)))Average cache hit rate in the past 5mVarnish
- Varnish: Expired objectsDEPENDENTvarnish.objects.expired07dNumber of expired objectsVarnishJSONPATH$["MAIN.n_expired"].valuesystem.run[varnishstat -j]
- Varnish: LRU nuked objectsDEPENDENTvarnish.objects.lrunuked07dNumber of LRU nuked objectsVarnishJSONPATH$["MAIN.n_lru_nuked"].valuesystem.run[varnishstat -j]
- Varnish: Num purgesDEPENDENTvarnish.objects.purges07dNumber of purge operations executedVarnishJSONPATH$["MAIN.n_purges"].valuesystem.run[varnishstat -j]
- Varnish: Total request bytesDEPENDENTvarnish.request.bytes07dBTotal bytes receivedVarnishJAVASCRIPTvar values = JSON.parse(value);
var headBytes = values["MAIN.s_req_hdrbytes"].value;
var bodyBytes = values["MAIN.s_req_bodybytes"].value;
return headBytes + bodyBytes;system.run[varnishstat -j]
- Varnish: Requests per secondDEPENDENTvarnish.requests.rate07dFLOATVarnishJSONPATH$["MAIN.client_req"].valueCHANGE_PER_SECONDsystem.run[varnishstat -j]
- Varnish: Total response bytesDEPENDENTvarnish.response.bytes07dBTotal bytes sentVarnishJAVASCRIPTvar values = JSON.parse(value);
var headBytes = values["MAIN.s_resp_hdrbytes"].value;
var bodyBytes = values["MAIN.s_resp_bodybytes"].value;
return headBytes + bodyBytes;system.run[varnishstat -j]
- Varnish: Session droppedDEPENDENTvarnish.session.dropped07dSessions droppedVarnishJSONPATH$["MAIN.sess_drop"].valuesystem.run[varnishstat -j]
- Varnish: Threads createdDEPENDENTvarnish.threads.created07dThreads createdVarnishJSONPATH$["MAIN.threads_created"].valuesystem.run[varnishstat -j]
- Varnish: Threads failedDEPENDENTvarnish.threads.failed07dThread creation failureVarnishJSONPATH$["MAIN.threads_failed"].valuesystem.run[varnishstat -j]
- Varnish: Threads limitedDEPENDENTvarnish.threads.limited07dThreads hit maxVarnishJSONPATH$["MAIN.threads_limited"].valuesystem.run[varnishstat -j]
- Varnish: UptimeDEPENDENTvarnish.uptime07duptimeService uptime in secondsVarnishJSONPATH$["MAIN.uptime"].valuesystem.run[varnishstat -j]{last()}=10mVarnish: Has been restarted (uptime < 10m)INFOUptime is less than 10 minutesYES
{$VARNISH.PROCESS_NAME}varnishdProcess name of the Varnish server.{$VARNISH.RESPONSE_TIME.MAX.WARN}5Max response time before a warning is given.{$VARNISH.STATUS.HOST}127.0.0.1IP or hostname of the Varnish server.{$VARNISH.STATUS.PORT}80Port of the Varnish server.Cache hit rate1A7C11- App Varnish by Zabbix agentvarnish.hitrate
1F63100- App Varnish by Zabbix agentvarnish.hitrate5m
Request rate1A7C11- App Varnish by Zabbix agentvarnish.requests.rate