5.02021-11-21T22:06:11ZTemplates/ApplicationsApp SolrApp Solr## Description
Template for monitoring Solr using json statistics. http://{USERNAME}@{PASSWORD}:{HOST.CONN}/solr/admin/metrics
## Overview
**Zabbix Template Solr statistics**
-----------------------------------
Template for monitoring Solr using JSON statistics.
**Versions**
------------
I tested this using zabbix 5.0.9 and Solr 8.6.3, but maybe it works with different versions.
**Requirements**
----------------
Zabbix version > 5.0 because template is using HTTP agent, Dependent items and JSON Path. You need to setup user and password for accessing Solr statistics JSON:
* [http://{USERNAME}:{PASSWORD}@{HOST.CONN}/solr/admin/metrics](http://{USERNAME}@{PASSWORD}{HOST.CONN})
**Installation**
----------------
* Download Zabbix template
* Import the template on Zabbix
* Create host on Zabbix and apply the template (I have configured to connect to DNS name, because it will be used in {HOST.CONN})
* On host configuration, modify macros {$SOLR\_USERNAME} and {$SOLR\_PASSWORD} with the information you created.
* You can change macros {$PROTOCOL}, {$URI} from host and/or template to your environment
## Author
Felipe de Moura Vieira
Templates/ApplicationsSolr: JVMSolr: Raw data- Solr: Java process numberproc.num[java,,,start.jar]1807dSolr: JVM{max(300)}=0SOLR is not runningHIGH
- Solr: JVM metrics get statusHTTP_AGENTsolr.jvm.getStatus5m0TEXTSolr: Raw dataJSONPATH$.['metrics']['solr.jvm']{$PROTOCOL}://{$SOLR_USERNAME}:{$SOLR_PASSWORD}@{HOST.CONN}{$URI}groupsolr.jvmwtjsoncompacttrue
- Solr: JVM memory heap commitedDEPENDENTsolr.jvm.memory.heap.committed07dBSolr: JVMJSONPATH$.['memory.heap.committed']solr.jvm.getStatus
- Solr: JVM memory heap maxDEPENDENTsolr.jvm.memory.heap.max07dBSolr: JVMJSONPATH$.['memory.heap.max']solr.jvm.getStatus
- Solr: JVM memory heap usageDEPENDENTsolr.jvm.memory.heap.usage07d%Solr: JVMJSONPATH$.['memory.heap.usage']MULTIPLIER100solr.jvm.getStatus
- Solr: JVM memory heap usedDEPENDENTsolr.jvm.memory.heap.used07dBSolr: JVMJSONPATH$.['memory.heap.used']solr.jvm.getStatus
- Solr: JVM memory non-heap commitedDEPENDENTsolr.jvm.memory.non-heap.committed07dBSolr: JVMJSONPATH$.['memory.non-heap.committed']solr.jvm.getStatus
- Solr: JVM memory non-heap maxDEPENDENTsolr.jvm.memory.non-heap.max07dBSolr: JVMJSONPATH$.['memory.non-heap.max']solr.jvm.getStatus
- Solr: JVM memory non-heap usageDEPENDENTsolr.jvm.memory.non-heap.usage07d%Solr: JVMJSONPATH$.['memory.non-heap.usage']MULTIPLIER100solr.jvm.getStatus
- Solr: JVM memory non-heap usedDEPENDENTsolr.jvm.memory.non-heap.used07dBSolr: JVMJSONPATH$.['memory.non-heap.used']solr.jvm.getStatus
- Solr: JVM memory total commitedDEPENDENTsolr.jvm.memory.total.committed07dBSolr: JVMJSONPATH$.['memory.total.committed']solr.jvm.getStatus
- Solr: JVM memory total maxDEPENDENTsolr.jvm.memory.total.max07dBSolr: JVMJSONPATH$.['memory.total.max']solr.jvm.getStatus
- Solr: JVM memory total usedDEPENDENTsolr.jvm.memory.total.used07dBSolr: JVMJSONPATH$.['memory.total.used']solr.jvm.getStatus
- Solr: JVM OS max file descriptorsDEPENDENTsolr.jvm.os.maxFileDescriptorCount07dSolr: JVMJSONPATH$.['os.maxFileDescriptorCount']solr.jvm.getStatus
- Solr: JVM OS open file descriptorsDEPENDENTsolr.jvm.os.openFileDescriptorCount07dSolr: JVMJSONPATH$.['os.openFileDescriptorCount']solr.jvm.getStatus
- Solr: JVM OS Process CPU LoadDEPENDENTsolr.jvm.os.processCpuLoad07dFLOAT%Solr: JVMJSONPATH$.['os.processCpuLoad']MULTIPLIER100solr.jvm.getStatus
- Solr: JVM Threads Blocked CountDEPENDENTsolr.jvm.threads.blocked.count07dSolr: JVMJSONPATH$.['threads.blocked.count']solr.jvm.getStatus
- Solr: JVM Threads CountDEPENDENTsolr.jvm.threads.count07dSolr: JVMJSONPATH$.['threads.count']solr.jvm.getStatus
- Solr: JVM Threads Daemon CountDEPENDENTsolr.jvm.threads.daemon.count07dSolr: JVMJSONPATH$.['threads.daemon.count']solr.jvm.getStatus
- Solr: JVM Threads Deadlock CountDEPENDENTsolr.jvm.threads.deadlock.count07dSolr: JVMJSONPATH$.['threads.deadlock.count']solr.jvm.getStatus
- Solr: JVM Threads Runnable CountDEPENDENTsolr.jvm.threads.runnable.count07dSolr: JVMJSONPATH$.['threads.runnable.count']solr.jvm.getStatus
- Solr: JVM Threads Terminated CountDEPENDENTsolr.jvm.threads.terminated.count07dSolr: JVMJSONPATH$.['threads.terminated.count']solr.jvm.getStatus
- Solr: JVM Threads Waiting CountDEPENDENTsolr.jvm.threads.waiting.count07dSolr: JVMJSONPATH$.['threads.waiting.count']solr.jvm.getStatus
Solr: Core DiscoveryHTTP_AGENTsolr.core.discovery60m0dDiscovers core ListSolr: Core {#CORENAME} document cache - evictionsDEPENDENTsolr.core.documentCache.evictions[{#CORENAME}]07dSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.documentCache']['evictions']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} document cache - hitratioDEPENDENTsolr.core.documentCache.hitratio[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.documentCache']['hitratio']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} document cache - hits/secDEPENDENTsolr.core.documentCache.hits[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.documentCache']['hits']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} document cache - inserts/secDEPENDENTsolr.core.documentCache.inserts[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.documentCache']['inserts']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} filter cache - evictionsDEPENDENTsolr.core.filterCache.evictions[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.filterCache']['evictions']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} filter cache - hitratioDEPENDENTsolr.core.filterCache.hitratio[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.filterCache']['hitratio']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} filter cache - hits/secDEPENDENTsolr.core.filterCache.hits[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.filterCache']['hits']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} filter cache - inserts/secDEPENDENTsolr.core.filterCache.inserts[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.filterCache']['inserts']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core "{#CORENAME}" metrics get statusHTTP_AGENTsolr.core.getStatus[{#CORENAME}]5m0TEXTSolr: Raw dataSolr: {#CORENAME}JSONPATH$.['metrics']['solr.core.{#CORENAME}']{$PROTOCOL}://{$SOLR_USERNAME}:{$SOLR_PASSWORD}@{HOST.CONN}{$URI}groupsolr.core.{#CORENAME}prefixUPDATEprefixCACHEprefixQUERYprefixSEARCHERprefixINDEXwtjsoncompacttrueSolr: Core {#CORENAME} index - sizeDEPENDENTsolr.core.index.size[{#CORENAME}]07dBSolr: {#CORENAME}JSONPATH$.['INDEX.sizeInBytes']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} query result cache - hits/secDEPENDENTsolr.core.queryResultCache.hits[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['CACHE.searcher.queryResultCache']['hits']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} searcher - numDocsDEPENDENTsolr.core.searcher.numDocs[{#CORENAME}]07dDocument countSolr: {#CORENAME}JSONPATH$.['SEARCHER.searcher.numDocs']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} select - errors/secDEPENDENTsolr.core.select.errors.count[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['QUERY./select.errors']['count']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} select - requests/secDEPENDENTsolr.core.select.requests[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['QUERY./select.requests']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} select - requestTimes.5minRateDEPENDENTsolr.core.select.requestTimes.5minRate[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['QUERY./select.requestTimes']['5minRate']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} select - requestTimes/secDEPENDENTsolr.core.select.requestTimes.count[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['QUERY./select.requestTimes']['count']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} select - requestTimes.meanRateDEPENDENTsolr.core.select.requestTimes.meanRate[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['QUERY./select.requestTimes']['meanRate']solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} select - requestTimes.medianDEPENDENTsolr.core.select.requestTimes.median_ms[{#CORENAME}]07dFLOATsSolr: {#CORENAME}JSONPATH$.['QUERY./select.requestTimes']['meanRate']MULTIPLIER0.001solr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} select - timeouts/secDEPENDENTsolr.core.select.timeouts.count[{#CORENAME}]07dFLOATSolr: {#CORENAME}JSONPATH$.['QUERY./select.timeouts']['count']CHANGE_PER_SECONDsolr.core.getStatus[{#CORENAME}]Solr: Core {#CORENAME} document cache1199C0D- App Solrsolr.core.documentCache.evictions[{#CORENAME}]
2F63100- App Solrsolr.core.documentCache.hitratio[{#CORENAME}]
3BOLD_LINE2774A4RIGHT- App Solrsolr.core.documentCache.hits[{#CORENAME}]
4BOLD_LINEF7941DRIGHT- App Solrsolr.core.documentCache.inserts[{#CORENAME}]
Solr: Core {#CORENAME} filter cache1199C0D- App Solrsolr.core.filterCache.evictions[{#CORENAME}]
2F63100- App Solrsolr.core.filterCache.hitratio[{#CORENAME}]
3BOLD_LINE2774A4RIGHT- App Solrsolr.core.filterCache.hits[{#CORENAME}]
4BOLD_LINEF7941DRIGHT- App Solrsolr.core.filterCache.inserts[{#CORENAME}]
Solr: Core {#CORENAME} index size1GRADIENT_LINE199C0D- App Solrsolr.core.index.size[{#CORENAME}]
{$PROTOCOL}://{$SOLR_USERNAME}:{$SOLR_PASSWORD}@{HOST.CONN}{$URI}prefixCORE.coreNamewtjsoncompacttrueJSONPATH$..['CORE.coreName']STR_REPLACE[
[{"{#CORENAME}":STR_REPLACE,
},{"{#CORENAME}":STR_REPLACE]
}]{$PROTOCOL}http{$SOLR_PASSWORD}NEWPASS{$SOLR_USERNAME}NEWUSER{$URI}/solr/admin/metricsSolr: JVM330Solr: JVM memory totalApp Solr50020000110100030Solr: JVM memory heapApp Solr50020010110100030Solr: JVM memory non-heapApp Solr50020020110100030Solr: JVM threadsApp Solr50020001110000030Solr: JVM file descriptorsApp Solr500200111101000320Solr: Core {#CORENAME} document cacheApp Solr500200021101000120Solr: Core {#CORENAME} filter cacheApp Solr500200121101000120Solr: Core {#CORENAME} index sizeApp Solr5002002211010001Solr: JVM file descriptorsITEMApp Solrsolr.jvm.os.maxFileDescriptorCount1GRADIENT_LINE199C0D- App Solrsolr.jvm.os.maxFileDescriptorCount
2GRADIENT_LINEF63100- App Solrsolr.jvm.os.openFileDescriptorCount
Solr: JVM memory heapITEMApp Solrsolr.jvm.memory.heap.max1GRADIENT_LINE199C0D- App Solrsolr.jvm.memory.heap.max
2GRADIENT_LINE2774A4- App Solrsolr.jvm.memory.heap.committed
3GRADIENT_LINEF63100- App Solrsolr.jvm.memory.heap.used
Solr: JVM memory non-heapITEMApp Solrsolr.jvm.memory.non-heap.max1GRADIENT_LINE199C0D- App Solrsolr.jvm.memory.non-heap.max
2GRADIENT_LINE2774A4- App Solrsolr.jvm.memory.non-heap.committed
3GRADIENT_LINEF63100- App Solrsolr.jvm.memory.non-heap.used
Solr: JVM memory totalITEMApp Solrsolr.jvm.memory.total.max1GRADIENT_LINE199C0D- App Solrsolr.jvm.memory.total.max
2GRADIENT_LINE2774A4- App Solrsolr.jvm.memory.total.committed
3GRADIENT_LINEF63100- App Solrsolr.jvm.memory.total.used
Solr: JVM threadsSTACKEDITEMApp Solrsolr.jvm.threads.count1F63100- App Solrsolr.jvm.threads.blocked.count
22774A4- App Solrsolr.jvm.threads.daemon.count
3F7941D- App Solrsolr.jvm.threads.deadlock.count
4199C0D- App Solrsolr.jvm.threads.runnable.count
56C59DC- App Solrsolr.jvm.threads.terminated.count
6C7A72D- App Solrsolr.jvm.threads.waiting.count