This template is for Áú»¢¶Ä²© version: 7.2
Source:
Apache Tomcat by JMX
Overview
This template is designed for the effortless deployment of Apache Tomcat monitoring by Áú»¢¶Ä²© via JMX and doesn't require any external scripts.
Requirements
Áú»¢¶Ä²© version: 7.2 and higher.
Tested versions
This template has been tested on:
Configuration
Áú»¢¶Ä²© should be configured according to the instructions in the Templates out of the box section.
Setup
Metrics are collected by JMX.
- Enable and configure JMX access to Apache Tomcat.
See documentation for (chose your version).
- If your Tomcat installation require authentication for JMX, set values in host macros {$TOMCAT.USERNAME} and {$TOMCAT.PASSWORD}.
- You can set custom macro values and add macros with context for specific metrics following macro description.
Macros used
Name |
Description |
Default |
{$TOMCAT.USER} |
User for JMX |
|
{$TOMCAT.PASSWORD} |
Password for JMX |
|
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.MATCHES} |
Filter for discoverable global request processors. |
.* |
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.NOT_MATCHES} |
Filter to exclude global request processors. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.MANAGER.MATCHES} |
Filter for discoverable managers. |
.* |
{$TOMCAT.LLD.FILTER.MANAGER.NOT_MATCHES} |
Filter to exclude managers. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.THREAD_POOL.MATCHES} |
Filter for discoverable thread pools. |
.* |
{$TOMCAT.LLD.FILTER.THREAD_POOL.NOT_MATCHES} |
Filter to exclude thread pools. |
CHANGE_IF_NEEDED |
{$TOMCAT.THREADS.MAX.PCT} |
Threshold for busy worker threads trigger. Can be used with {#JMXNAME} as context. |
75 |
{$TOMCAT.THREADS.MAX.TIME} |
The time during which the number of busy threads can exceed the threshold. Can be used with {#JMXNAME} as context. |
5m |
Items
Name |
Description |
Type |
Key and additional info |
Version |
The version of the Tomcat. |
JMX agent |
jmx["Catalina:type=Server",serverInfo] Preprocessing |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Apache Tomcat: Version has been changed |
The Tomcat version has changed. Acknowledge to close the problem manually. |
last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#1)<>last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#2) and length(last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo]))>0 |
Info |
Manual close: Yes |
LLD rule Global request processors discovery
Name |
Description |
Type |
Key and additional info |
Global request processors discovery |
Discovery for GlobalRequestProcessor |
JMX agent |
jmx.discovery[beans,"Catalina:type=GlobalRequestProcessor,name=*"] |
Item prototypes for Global request processors discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Bytes received per second |
Bytes received rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesReceived] Preprocessing |
{#JMXNAME}: Bytes sent per second |
Bytes sent rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesSent] Preprocessing |
{#JMXNAME}: Errors per second |
Error rate of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},errorCount] Preprocessing |
{#JMXNAME}: Requests per second |
Rate of requests served by request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},requestCount] Preprocessing |
{#JMXNAME}: Requests processing time |
The total time to process all incoming requests of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},processingTime] Preprocessing |
LLD rule Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
Protocol handlers discovery |
Discovery for ProtocolHandler |
JMX agent |
jmx.discovery[attributes,"Catalina:type=ProtocolHandler,port=*"] |
Item prototypes for Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
{#JMXVALUE}: Gzip compression status |
Gzip compression status on {#JMXNAME}. Enabling gzip compression may save server bandwidth. |
JMX agent |
jmx[{#JMXOBJ},compression] Preprocessing |
Trigger prototypes for Protocol handlers discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Apache Tomcat: {#JMXVALUE}: Gzip compression is disabled |
gzip compression is disabled for connector {#JMXVALUE}. |
find(/Apache Tomcat by JMX/jmx[{#JMXOBJ},compression],,"like","off") = 1 |
Info |
Manual close: Yes |
LLD rule Thread pools discovery
Name |
Description |
Type |
Key and additional info |
Thread pools discovery |
Discovery for ThreadPool |
JMX agent |
jmx.discovery[beans,"Catalina:type=ThreadPool,name=*"] |
Item prototypes for Thread pools discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Threads count |
Amount of threads the thread pool has right now, both busy and free. |
JMX agent |
jmx[{#JMXOBJ},currentThreadCount] Preprocessing |
{#JMXNAME}: Threads limit |
Limit of the threads count. When currentThreadsBusy counter reaches the maxThreads limit, no more requests could be handled, and the application chokes. |
JMX agent |
jmx[{#JMXOBJ},maxThreads] Preprocessing |
{#JMXNAME}: Threads busy |
Number of the requests that are being currently handled. |
JMX agent |
jmx[{#JMXOBJ},currentThreadsBusy] |
Trigger prototypes for Thread pools discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Apache Tomcat: {#JMXNAME}: Busy worker threads count is high |
When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes. |
min(/Apache Tomcat by JMX/jmx[{#JMXOBJ},currentThreadsBusy],{$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})>last(/Apache Tomcat by JMX/jmx[{#JMXOBJ},maxThreads])*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100 |
High |
|
LLD rule Contexts discovery
Name |
Description |
Type |
Key and additional info |
Contexts discovery |
Discovery for contexts |
JMX agent |
jmx.discovery[beans,"Catalina:type=Manager,host=,context="] |
Item prototypes for Contexts discovery
Name |
Description |
Type |
Key and additional info |
{#JMXHOST}{#JMXCONTEXT}: Sessions active |
Active sessions of the application. |
JMX agent |
jmx[{#JMXOBJ},activeSessions] |
{#JMXHOST}{#JMXCONTEXT}: Sessions active maximum so far |
Maximum number of active sessions so far. |
JMX agent |
jmx[{#JMXOBJ},maxActive] |
{#JMXHOST}{#JMXCONTEXT}: Sessions created per second |
Rate of sessions created by this application per second. |
JMX agent |
jmx[{#JMXOBJ},sessionCounter] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions rejected per second |
Rate of sessions we rejected due to maxActive being reached. |
JMX agent |
jmx[{#JMXOBJ},rejectedSessions] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions allowed maximum |
The maximum number of active Sessions allowed, or -1 for no limit. |
JMX agent |
jmx[{#JMXOBJ},maxActiveSessions] |
Feedback
Please report any issues with the template at
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
This template is for Áú»¢¶Ä²© version: 7.0
Source:
Apache Tomcat by JMX
Overview
This template is designed for the effortless deployment of Apache Tomcat monitoring by Áú»¢¶Ä²© via JMX and doesn't require any external scripts.
Requirements
Áú»¢¶Ä²© version: 7.0 and higher.
Tested versions
This template has been tested on:
Configuration
Áú»¢¶Ä²© should be configured according to the instructions in the Templates out of the box section.
Setup
Metrics are collected by JMX.
- Enable and configure JMX access to Apache Tomcat.
See documentation for (chose your version).
- If your Tomcat installation require authentication for JMX, set values in host macros {$TOMCAT.USERNAME} and {$TOMCAT.PASSWORD}.
- You can set custom macro values and add macros with context for specific metrics following macro description.
Macros used
Name |
Description |
Default |
{$TOMCAT.USER} |
User for JMX |
|
{$TOMCAT.PASSWORD} |
Password for JMX |
|
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.MATCHES} |
Filter for discoverable global request processors. |
.* |
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.NOT_MATCHES} |
Filter to exclude global request processors. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.MANAGER.MATCHES} |
Filter for discoverable managers. |
.* |
{$TOMCAT.LLD.FILTER.MANAGER.NOT_MATCHES} |
Filter to exclude managers. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.THREAD_POOL.MATCHES} |
Filter for discoverable thread pools. |
.* |
{$TOMCAT.LLD.FILTER.THREAD_POOL.NOT_MATCHES} |
Filter to exclude thread pools. |
CHANGE_IF_NEEDED |
{$TOMCAT.THREADS.MAX.PCT} |
Threshold for busy worker threads trigger. Can be used with {#JMXNAME} as context. |
75 |
{$TOMCAT.THREADS.MAX.TIME} |
The time during which the number of busy threads can exceed the threshold. Can be used with {#JMXNAME} as context. |
5m |
Items
Name |
Description |
Type |
Key and additional info |
Version |
The version of the Tomcat. |
JMX agent |
jmx["Catalina:type=Server",serverInfo] Preprocessing |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Apache Tomcat: Version has been changed |
The Tomcat version has changed. Acknowledge to close the problem manually. |
last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#1)<>last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#2) and length(last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo]))>0 |
Info |
Manual close: Yes |
LLD rule Global request processors discovery
Name |
Description |
Type |
Key and additional info |
Global request processors discovery |
Discovery for GlobalRequestProcessor |
JMX agent |
jmx.discovery[beans,"Catalina:type=GlobalRequestProcessor,name=*"] |
Item prototypes for Global request processors discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Bytes received per second |
Bytes received rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesReceived] Preprocessing |
{#JMXNAME}: Bytes sent per second |
Bytes sent rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesSent] Preprocessing |
{#JMXNAME}: Errors per second |
Error rate of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},errorCount] Preprocessing |
{#JMXNAME}: Requests per second |
Rate of requests served by request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},requestCount] Preprocessing |
{#JMXNAME}: Requests processing time |
The total time to process all incoming requests of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},processingTime] Preprocessing |
LLD rule Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
Protocol handlers discovery |
Discovery for ProtocolHandler |
JMX agent |
jmx.discovery[attributes,"Catalina:type=ProtocolHandler,port=*"] |
Item prototypes for Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
{#JMXVALUE}: Gzip compression status |
Gzip compression status on {#JMXNAME}. Enabling gzip compression may save server bandwidth. |
JMX agent |
jmx[{#JMXOBJ},compression] Preprocessing |
Trigger prototypes for Protocol handlers discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Apache Tomcat: {#JMXVALUE}: Gzip compression is disabled |
gzip compression is disabled for connector {#JMXVALUE}. |
find(/Apache Tomcat by JMX/jmx[{#JMXOBJ},compression],,"like","off") = 1 |
Info |
Manual close: Yes |
LLD rule Thread pools discovery
Name |
Description |
Type |
Key and additional info |
Thread pools discovery |
Discovery for ThreadPool |
JMX agent |
jmx.discovery[beans,"Catalina:type=ThreadPool,name=*"] |
Item prototypes for Thread pools discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Threads count |
Amount of threads the thread pool has right now, both busy and free. |
JMX agent |
jmx[{#JMXOBJ},currentThreadCount] Preprocessing |
{#JMXNAME}: Threads limit |
Limit of the threads count. When currentThreadsBusy counter reaches the maxThreads limit, no more requests could be handled, and the application chokes. |
JMX agent |
jmx[{#JMXOBJ},maxThreads] Preprocessing |
{#JMXNAME}: Threads busy |
Number of the requests that are being currently handled. |
JMX agent |
jmx[{#JMXOBJ},currentThreadsBusy] |
Trigger prototypes for Thread pools discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Apache Tomcat: {#JMXNAME}: Busy worker threads count is high |
When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes. |
min(/Apache Tomcat by JMX/jmx[{#JMXOBJ},currentThreadsBusy],{$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})>last(/Apache Tomcat by JMX/jmx[{#JMXOBJ},maxThreads])*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100 |
High |
|
LLD rule Contexts discovery
Name |
Description |
Type |
Key and additional info |
Contexts discovery |
Discovery for contexts |
JMX agent |
jmx.discovery[beans,"Catalina:type=Manager,host=,context="] |
Item prototypes for Contexts discovery
Name |
Description |
Type |
Key and additional info |
{#JMXHOST}{#JMXCONTEXT}: Sessions active |
Active sessions of the application. |
JMX agent |
jmx[{#JMXOBJ},activeSessions] |
{#JMXHOST}{#JMXCONTEXT}: Sessions active maximum so far |
Maximum number of active sessions so far. |
JMX agent |
jmx[{#JMXOBJ},maxActive] |
{#JMXHOST}{#JMXCONTEXT}: Sessions created per second |
Rate of sessions created by this application per second. |
JMX agent |
jmx[{#JMXOBJ},sessionCounter] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions rejected per second |
Rate of sessions we rejected due to maxActive being reached. |
JMX agent |
jmx[{#JMXOBJ},rejectedSessions] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions allowed maximum |
The maximum number of active Sessions allowed, or -1 for no limit. |
JMX agent |
jmx[{#JMXOBJ},maxActiveSessions] |
Feedback
Please report any issues with the template at
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
This template is for Áú»¢¶Ä²© version: 6.4
Source:
Apache Tomcat by JMX
Overview
This template is designed for the effortless deployment of Apache Tomcat monitoring by Áú»¢¶Ä²© via JMX and doesn't require any external scripts.
Requirements
Áú»¢¶Ä²© version: 6.4 and higher.
Tested versions
This template has been tested on:
Configuration
Áú»¢¶Ä²© should be configured according to the instructions in the Templates out of the box section.
Setup
Metrics are collected by JMX.
- Enable and configure JMX access to Apache Tomcat.
See documentation for (chose your version).
- If your Tomcat installation require authentication for JMX, set values in host macros {$TOMCAT.USERNAME} and {$TOMCAT.PASSWORD}.
- You can set custom macro values and add macros with context for specific metrics following macro description.
Macros used
Name |
Description |
Default |
{$TOMCAT.USER} |
User for JMX |
|
{$TOMCAT.PASSWORD} |
Password for JMX |
|
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.MATCHES} |
Filter for discoverable global request processors. |
.* |
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.NOT_MATCHES} |
Filter to exclude global request processors. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.MANAGER.MATCHES} |
Filter for discoverable managers. |
.* |
{$TOMCAT.LLD.FILTER.MANAGER.NOT_MATCHES} |
Filter to exclude managers. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.THREAD_POOL.MATCHES} |
Filter for discoverable thread pools. |
.* |
{$TOMCAT.LLD.FILTER.THREAD_POOL.NOT_MATCHES} |
Filter to exclude thread pools. |
CHANGE_IF_NEEDED |
{$TOMCAT.THREADS.MAX.PCT} |
Threshold for busy worker threads trigger. Can be used with {#JMXNAME} as context. |
75 |
{$TOMCAT.THREADS.MAX.TIME} |
The time during which the number of busy threads can exceed the threshold. Can be used with {#JMXNAME} as context. |
5m |
Items
Name |
Description |
Type |
Key and additional info |
Tomcat: Version |
The version of the Tomcat. |
JMX agent |
jmx["Catalina:type=Server",serverInfo] Preprocessing |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Tomcat: Version has been changed |
The Tomcat version has changed. Acknowledge to close the problem manually. |
last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#1)<>last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#2) and length(last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo]))>0 |
Info |
Manual close: Yes |
LLD rule Global request processors discovery
Name |
Description |
Type |
Key and additional info |
Global request processors discovery |
Discovery for GlobalRequestProcessor |
JMX agent |
jmx.discovery[beans,"Catalina:type=GlobalRequestProcessor,name=*"] |
Item prototypes for Global request processors discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Bytes received per second |
Bytes received rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesReceived] Preprocessing |
{#JMXNAME}: Bytes sent per second |
Bytes sent rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesSent] Preprocessing |
{#JMXNAME}: Errors per second |
Error rate of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},errorCount] Preprocessing |
{#JMXNAME}: Requests per second |
Rate of requests served by request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},requestCount] Preprocessing |
{#JMXNAME}: Requests processing time |
The total time to process all incoming requests of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},processingTime] Preprocessing |
LLD rule Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
Protocol handlers discovery |
Discovery for ProtocolHandler |
JMX agent |
jmx.discovery[attributes,"Catalina:type=ProtocolHandler,port=*"] |
Item prototypes for Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
{#JMXVALUE}: Gzip compression status |
Gzip compression status on {#JMXNAME}. Enabling gzip compression may save server bandwidth. |
JMX agent |
jmx[{#JMXOBJ},compression] Preprocessing |
Trigger prototypes for Protocol handlers discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#JMXVALUE}: Gzip compression is disabled |
gzip compression is disabled for connector {#JMXVALUE}. |
find(/Apache Tomcat by JMX/jmx[{#JMXOBJ},compression],,"like","off") = 1 |
Info |
Manual close: Yes |
LLD rule Thread pools discovery
Name |
Description |
Type |
Key and additional info |
Thread pools discovery |
Discovery for ThreadPool |
JMX agent |
jmx.discovery[beans,"Catalina:type=ThreadPool,name=*"] |
Item prototypes for Thread pools discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Threads count |
Amount of threads the thread pool has right now, both busy and free. |
JMX agent |
jmx[{#JMXOBJ},currentThreadCount] Preprocessing |
{#JMXNAME}: Threads limit |
Limit of the threads count. When currentThreadsBusy counter reaches the maxThreads limit, no more requests could be handled, and the application chokes. |
JMX agent |
jmx[{#JMXOBJ},maxThreads] Preprocessing |
{#JMXNAME}: Threads busy |
Number of the requests that are being currently handled. |
JMX agent |
jmx[{#JMXOBJ},currentThreadsBusy] |
Trigger prototypes for Thread pools discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#JMXNAME}: Busy worker threads count is high |
When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes. |
min(/Apache Tomcat by JMX/jmx[{#JMXOBJ},currentThreadsBusy],{$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})>last(/Apache Tomcat by JMX/jmx[{#JMXOBJ},maxThreads])*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100 |
High |
|
LLD rule Contexts discovery
Name |
Description |
Type |
Key and additional info |
Contexts discovery |
Discovery for contexts |
JMX agent |
jmx.discovery[beans,"Catalina:type=Manager,host=,context="] |
Item prototypes for Contexts discovery
Name |
Description |
Type |
Key and additional info |
{#JMXHOST}{#JMXCONTEXT}: Sessions active |
Active sessions of the application. |
JMX agent |
jmx[{#JMXOBJ},activeSessions] |
{#JMXHOST}{#JMXCONTEXT}: Sessions active maximum so far |
Maximum number of active sessions so far. |
JMX agent |
jmx[{#JMXOBJ},maxActive] |
{#JMXHOST}{#JMXCONTEXT}: Sessions created per second |
Rate of sessions created by this application per second. |
JMX agent |
jmx[{#JMXOBJ},sessionCounter] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions rejected per second |
Rate of sessions we rejected due to maxActive being reached. |
JMX agent |
jmx[{#JMXOBJ},rejectedSessions] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions allowed maximum |
The maximum number of active Sessions allowed, or -1 for no limit. |
JMX agent |
jmx[{#JMXOBJ},maxActiveSessions] |
Feedback
Please report any issues with the template at
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
This template is for Áú»¢¶Ä²© version: 6.2
Source:
Apache Tomcat by JMX
Overview
For Áú»¢¶Ä²© version: 6.2 and higher
Official JMX Template for Apache Tomcat.
This template was tested on:
- Apache Tomcat, version 8.5.59
Setup
See Áú»¢¶Ä²© template operation for basic instructions.
Metrics are collected by JMX.
- Enable and configure JMX access to Apache Tomcat.
See documentation for (chose your version).
- If your Tomcat installation require authentication for JMX, set values in host macros {$TOMCAT.USERNAME} and {$TOMCAT.PASSWORD}.
- You can set custom macro values and add macros with context for specific metrics following macro description.
Áú»¢¶Ä²© configuration
No specific Áú»¢¶Ä²© configuration is required.
Macros used
Name |
Description |
Default |
{$TOMCAT.LLD.FILTER.MATCHES} |
Filter for discoverable objects. Can be used with following contexts: "GlobalRequestProcessor", "ThreadPool", "Manager" |
.* |
{$TOMCAT.LLD.FILTER.NOT_MATCHES} |
Filter to exclude discovered objects. Can be used with following contexts: "GlobalRequestProcessor", "ThreadPool", "Manager" |
CHANGE IF NEEDED |
{$TOMCAT.PASSWORD} |
Password for JMX |
`` |
{$TOMCAT.THREADS.MAX.PCT} |
Threshold for busy worker threads trigger. Can be used with {#JMXNAME} as context. |
75 |
{$TOMCAT.THREADS.MAX.TIME} |
The time during which the number of busy threads can exceed the threshold. Can be used with {#JMXNAME} as context. |
5m |
{$TOMCAT.USER} |
User for JMX |
`` |
Template links
There are no template links in this template.
Discovery rules
Name |
Description |
Type |
Key and additional info |
Contexts discovery |
Discovery for contexts |
JMX |
jmx.discovery[beans,"Catalina:type=Manager,host=,context="] Filter: AND - {#JMXHOST} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"Manager"} - {#JMXHOST} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"Manager"} |
Global request processors discovery |
Discovery for GlobalRequestProcessor |
JMX |
jmx.discovery[beans,"Catalina:type=GlobalRequestProcessor,name=*"] Filter: AND - {#JMXNAME} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"GlobalRequestProcessor"} - {#JMXNAME} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"GlobalRequestProcessor"} |
Protocol handlers discovery |
Discovery for ProtocolHandler |
JMX |
jmx.discovery[attributes,"Catalina:type=ProtocolHandler,port=*"] Filter: AND - {#JMXATTR} MATCHES_REGEX ^name$ |
Thread pools discovery |
Discovery for ThreadPool |
JMX |
jmx.discovery[beans,"Catalina:type=ThreadPool,name=*"] Filter: AND - {#JMXNAME} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"ThreadPool"} - {#JMXNAME} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"ThreadPool"} |
Items collected
Group |
Name |
Description |
Type |
Key and additional info |
Tomcat |
Tomcat: Version |
The version of the Tomcat. |
JMX |
jmx["Catalina:type=Server",serverInfo] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 1d |
Tomcat |
{#JMXNAME}: Bytes received per second |
Bytes received rate by processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},bytesReceived] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Bytes sent per second |
Bytes sent rate by processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},bytesSent] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Errors per second |
Error rate of request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},errorCount] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Requests per second |
Rate of requests served by request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},requestCount] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Requests processing time |
The total time to process all incoming requests of request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},processingTime] Preprocessing: - MULTIPLIER: 0.001 |
Tomcat |
{#JMXVALUE}: Gzip compression status |
Gzip compression status on {#JMXNAME}. Enabling gzip compression may save server bandwidth. |
JMX |
jmx[{#JMXOBJ},compression] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 1h |
Tomcat |
{#JMXNAME}: Threads count |
Amount of threads the thread pool has right now, both busy and free. |
JMX |
jmx[{#JMXOBJ},currentThreadCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 10m |
Tomcat |
{#JMXNAME}: Threads limit |
Limit of the threads count. When currentThreadsBusy counter reaches the maxThreads limit, no more requests could be handled, and the application chokes. |
JMX |
jmx[{#JMXOBJ},maxThreads] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 10m |
Tomcat |
{#JMXNAME}: Threads busy |
Number of the requests that are being currently handled. |
JMX |
jmx[{#JMXOBJ},currentThreadsBusy] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions active |
Active sessions of the application. |
JMX |
jmx[{#JMXOBJ},activeSessions] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions active maximum so far |
Maximum number of active sessions so far. |
JMX |
jmx[{#JMXOBJ},maxActive] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions created per second |
Rate of sessions created by this application per second. |
JMX |
jmx[{#JMXOBJ},sessionCounter] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions rejected per second |
Rate of sessions we rejected due to maxActive being reached. |
JMX |
jmx[{#JMXOBJ},rejectedSessions] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions allowed maximum |
The maximum number of active Sessions allowed, or -1 for no limit. |
JMX |
jmx[{#JMXOBJ},maxActiveSessions] |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Tomcat: Version has been changed |
Tomcat version has changed. Ack to close. |
last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#1)<>last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#2) and length(last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo]))>0 |
INFO |
Manual close: YES |
{#JMXVALUE}: Gzip compression is disabled |
gzip compression is disabled for connector {#JMXVALUE}. |
find(/Apache Tomcat by JMX/jmx[{#JMXOBJ},compression],,"like","off") = 1 |
INFO |
Manual close: YES |
{#JMXNAME}: Busy worker threads count is high |
When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes. |
min(/Apache Tomcat by JMX/jmx[{#JMXOBJ},currentThreadsBusy],{$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})>last(/Apache Tomcat by JMX/jmx[{#JMXOBJ},maxThreads])*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100 |
HIGH |
|
Feedback
Please report any issues with the template at
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
This template is for Áú»¢¶Ä²© version: 6.0
Source:
Apache Tomcat by JMX
Overview
This template is designed for the effortless deployment of Apache Tomcat monitoring by Áú»¢¶Ä²© via JMX and doesn't require any external scripts.
Requirements
Áú»¢¶Ä²© version: 6.0 and higher.
Tested versions
This template has been tested on:
Configuration
Áú»¢¶Ä²© should be configured according to the instructions in the Templates out of the box section.
Setup
Metrics are collected by JMX.
- Enable and configure JMX access to Apache Tomcat.
See documentation for (chose your version).
- If your Tomcat installation require authentication for JMX, set values in host macros {$TOMCAT.USERNAME} and {$TOMCAT.PASSWORD}.
- You can set custom macro values and add macros with context for specific metrics following macro description.
Macros used
Name |
Description |
Default |
{$TOMCAT.USER} |
User for JMX |
|
{$TOMCAT.PASSWORD} |
Password for JMX |
|
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.MATCHES} |
Filter for discoverable global request processors. |
.* |
{$TOMCAT.LLD.FILTER.REQUEST_PROCESSOR.NOT_MATCHES} |
Filter to exclude global request processors. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.MANAGER.MATCHES} |
Filter for discoverable managers. |
.* |
{$TOMCAT.LLD.FILTER.MANAGER.NOT_MATCHES} |
Filter to exclude managers. |
CHANGE_IF_NEEDED |
{$TOMCAT.LLD.FILTER.THREAD_POOL.MATCHES} |
Filter for discoverable thread pools. |
.* |
{$TOMCAT.LLD.FILTER.THREAD_POOL.NOT_MATCHES} |
Filter to exclude thread pools. |
CHANGE_IF_NEEDED |
{$TOMCAT.THREADS.MAX.PCT} |
Threshold for busy worker threads trigger. Can be used with {#JMXNAME} as context. |
75 |
{$TOMCAT.THREADS.MAX.TIME} |
The time during which the number of busy threads can exceed the threshold. Can be used with {#JMXNAME} as context. |
5m |
Items
Name |
Description |
Type |
Key and additional info |
Tomcat: Version |
The version of the Tomcat. |
JMX agent |
jmx["Catalina:type=Server",serverInfo] Preprocessing |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Tomcat: Version has been changed |
The Tomcat version has changed. Acknowledge to close the problem manually. |
last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#1)<>last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#2) and length(last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo]))>0 |
Info |
Manual close: Yes |
LLD rule Global request processors discovery
Name |
Description |
Type |
Key and additional info |
Global request processors discovery |
Discovery for GlobalRequestProcessor |
JMX agent |
jmx.discovery[beans,"Catalina:type=GlobalRequestProcessor,name=*"] |
Item prototypes for Global request processors discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Bytes received per second |
Bytes received rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesReceived] Preprocessing |
{#JMXNAME}: Bytes sent per second |
Bytes sent rate by processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},bytesSent] Preprocessing |
{#JMXNAME}: Errors per second |
Error rate of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},errorCount] Preprocessing |
{#JMXNAME}: Requests per second |
Rate of requests served by request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},requestCount] Preprocessing |
{#JMXNAME}: Requests processing time |
The total time to process all incoming requests of request processor {#JMXNAME} |
JMX agent |
jmx[{#JMXOBJ},processingTime] Preprocessing |
LLD rule Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
Protocol handlers discovery |
Discovery for ProtocolHandler |
JMX agent |
jmx.discovery[attributes,"Catalina:type=ProtocolHandler,port=*"] |
Item prototypes for Protocol handlers discovery
Name |
Description |
Type |
Key and additional info |
{#JMXVALUE}: Gzip compression status |
Gzip compression status on {#JMXNAME}. Enabling gzip compression may save server bandwidth. |
JMX agent |
jmx[{#JMXOBJ},compression] Preprocessing |
Trigger prototypes for Protocol handlers discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#JMXVALUE}: Gzip compression is disabled |
gzip compression is disabled for connector {#JMXVALUE}. |
find(/Apache Tomcat by JMX/jmx[{#JMXOBJ},compression],,"like","off") = 1 |
Info |
Manual close: Yes |
LLD rule Thread pools discovery
Name |
Description |
Type |
Key and additional info |
Thread pools discovery |
Discovery for ThreadPool |
JMX agent |
jmx.discovery[beans,"Catalina:type=ThreadPool,name=*"] |
Item prototypes for Thread pools discovery
Name |
Description |
Type |
Key and additional info |
{#JMXNAME}: Threads count |
Amount of threads the thread pool has right now, both busy and free. |
JMX agent |
jmx[{#JMXOBJ},currentThreadCount] Preprocessing |
{#JMXNAME}: Threads limit |
Limit of the threads count. When currentThreadsBusy counter reaches the maxThreads limit, no more requests could be handled, and the application chokes. |
JMX agent |
jmx[{#JMXOBJ},maxThreads] Preprocessing |
{#JMXNAME}: Threads busy |
Number of the requests that are being currently handled. |
JMX agent |
jmx[{#JMXOBJ},currentThreadsBusy] |
Trigger prototypes for Thread pools discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#JMXNAME}: Busy worker threads count is high |
When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes. |
min(/Apache Tomcat by JMX/jmx[{#JMXOBJ},currentThreadsBusy],{$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})>last(/Apache Tomcat by JMX/jmx[{#JMXOBJ},maxThreads])*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100 |
High |
|
LLD rule Contexts discovery
Name |
Description |
Type |
Key and additional info |
Contexts discovery |
Discovery for contexts |
JMX agent |
jmx.discovery[beans,"Catalina:type=Manager,host=,context="] |
Item prototypes for Contexts discovery
Name |
Description |
Type |
Key and additional info |
{#JMXHOST}{#JMXCONTEXT}: Sessions active |
Active sessions of the application. |
JMX agent |
jmx[{#JMXOBJ},activeSessions] |
{#JMXHOST}{#JMXCONTEXT}: Sessions active maximum so far |
Maximum number of active sessions so far. |
JMX agent |
jmx[{#JMXOBJ},maxActive] |
{#JMXHOST}{#JMXCONTEXT}: Sessions created per second |
Rate of sessions created by this application per second. |
JMX agent |
jmx[{#JMXOBJ},sessionCounter] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions rejected per second |
Rate of sessions we rejected due to maxActive being reached. |
JMX agent |
jmx[{#JMXOBJ},rejectedSessions] Preprocessing |
{#JMXHOST}{#JMXCONTEXT}: Sessions allowed maximum |
The maximum number of active Sessions allowed, or -1 for no limit. |
JMX agent |
jmx[{#JMXOBJ},maxActiveSessions] |
Feedback
Please report any issues with the template at
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
This template is for Áú»¢¶Ä²© version: 5.4
Source:
Apache Tomcat by JMX
Overview
For Áú»¢¶Ä²© version: 5.4 and higher
Official JMX Template for Apache Tomcat.
This template was tested on:
- Apache Tomcat, version 8.5.59
Setup
See Áú»¢¶Ä²© template operation for basic instructions.
Metrics are collected by JMX.
- Enable and configure JMX access to Apache Tomcat.
See documentation for (chose your version).
- If your Tomcat installation require authentication for JMX, set values in host macros {$TOMCAT.USERNAME} and {$TOMCAT.PASSWORD}.
- You can set custom macro values and add macros with context for specific metrics following macro description.
Áú»¢¶Ä²© configuration
No specific Áú»¢¶Ä²© configuration is required.
Macros used
Name |
Description |
Default |
{$TOMCAT.LLD.FILTER.MATCHES} |
Filter for discoverable objects. Can be used with following contexts: "GlobalRequestProcessor", "ThreadPool", "Manager" |
.* |
{$TOMCAT.LLD.FILTER.NOT_MATCHES} |
Filter to exclude discovered objects. Can be used with following contexts: "GlobalRequestProcessor", "ThreadPool", "Manager" |
CHANGE IF NEEDED |
{$TOMCAT.PASSWORD} |
Password for JMX |
`` |
{$TOMCAT.THREADS.MAX.PCT} |
Threshold for busy worker threads trigger. Can be used with {#JMXNAME} as context. |
75 |
{$TOMCAT.THREADS.MAX.TIME} |
The time during which the number of busy threads can exceed the threshold. Can be used with {#JMXNAME} as context. |
5m |
{$TOMCAT.USER} |
User for JMX |
`` |
Template links
There are no template links in this template.
Discovery rules
Name |
Description |
Type |
Key and additional info |
Global request processors discovery |
Discovery for GlobalRequesProcessor |
JMX |
jmx.discovery[beans,"Catalina:type=GlobalRequestProcessor,name=*"] Filter: AND - {#JMXNAME} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"GlobalRequesProcessor"} - {#JMXNAME} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"GlobalRequesProcessor"} |
Protocol handlers discovery |
Discovery for ProtocolHandler |
JMX |
jmx.discovery[attributes,"Catalina:type=ProtocolHandler,port=*"] Filter: AND - {#JMXATTR} MATCHES_REGEX ^name$ |
Thread pools discovery |
Discovery for ThreadPool |
JMX |
jmx.discovery[beans,"Catalina:type=ThreadPool,name=*"] Filter: AND - {#JMXNAME} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"ThreadPool"} - {#JMXNAME} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"ThreadPool"} |
Contexts discovery |
Discovery for contexts |
JMX |
jmx.discovery[beans,"Catalina:type=Manager,host=,context="] Filter: AND - {#JMXHOST} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"Manager"} - {#JMXHOST} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"Manager"} |
Items collected
Group |
Name |
Description |
Type |
Key and additional info |
Tomcat |
Tomcat: Version |
The version of the Tomcat. |
JMX |
jmx["Catalina:type=Server",serverInfo] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 1d |
Tomcat |
{#JMXNAME}: Bytes received per second |
Bytes received rate by processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},bytesReceived] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Bytes sent per second |
Bytes sent rate by processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},bytesSent] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Errors per second |
Error rate of request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},errorCount] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Requests per second |
Rate of requests served by request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},requestCount] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Requests processing time |
The total time to process all incoming requests of request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},processingTime] Preprocessing: - MULTIPLIER: 0.001 |
Tomcat |
{#JMXVALUE}: Gzip compression status |
Gzip compression status on {#JMXNAME}. Enabling gzip compression may save server bandwidth. |
JMX |
jmx[{#JMXOBJ},compression] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 1h |
Tomcat |
{#JMXNAME}: Threads count |
Amount of threads the thread pool has right now, both busy and free. |
JMX |
jmx[{#JMXOBJ},currentThreadCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 10m |
Tomcat |
{#JMXNAME}: Threads limit |
Limit of the threads count. When currentThreadsBusy counter reaches the maxThreads limit, no more requests could be handled, and the application chokes. |
JMX |
jmx[{#JMXOBJ},maxThreads] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 10m |
Tomcat |
{#JMXNAME}: Threads busy |
Number of the requests that are being currently handled. |
JMX |
jmx[{#JMXOBJ},currentThreadsBusy] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions active |
Active sessions of the application. |
JMX |
jmx[{#JMXOBJ},activeSessions] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions active maximum so far |
Maximum number of active sessions so far. |
JMX |
jmx[{#JMXOBJ},maxActive] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions created per second |
Rate of sessions created by this application per second. |
JMX |
jmx[{#JMXOBJ},sessionCounter] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions rejected per second |
Rate of sessions we rejected due to maxActive being reached. |
JMX |
jmx[{#JMXOBJ},rejectedSessions] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions allowed maximum |
The maximum number of active Sessions allowed, or -1 for no limit. |
JMX |
jmx[{#JMXOBJ},maxActiveSessions] |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Tomcat: Version has been changed |
Tomcat version has changed. Ack to close. |
last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#1)<>last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo],#2) and length(last(/Apache Tomcat by JMX/jmx["Catalina:type=Server",serverInfo]))>0 |
INFO |
Manual close: YES |
{#JMXVALUE}: Gzip compression is disabled |
gzip compression is disabled for connector {#JMXVALUE}. |
find(/Apache Tomcat by JMX/jmx[{#JMXOBJ},compression],,"like","off") = 1 |
INFO |
Manual close: YES |
{#JMXNAME}: Busy worker threads count are more than {$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}% of the limit for {$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"} |
When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes. |
min(/Apache Tomcat by JMX/jmx[{#JMXOBJ},currentThreadsBusy],{$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})>last(/Apache Tomcat by JMX/jmx[{#JMXOBJ},maxThreads])*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100 |
HIGH |
|
Feedback
Please report any issues with the template at
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
This template is for Áú»¢¶Ä²© version: 5.0
Source:
Template App Apache Tomcat JMX
Overview
For Áú»¢¶Ä²© version: 5.0 and higher
Official JMX Template for Apache Tomcat.
This template was tested on:
- Apache Tomcat, version 8.5.59
- Áú»¢¶Ä²©, version 5.0, 5.2
Setup
See Áú»¢¶Ä²© template operation for basic instructions.
Metrics are collected by JMX.
- Enable and configure JMX access to Apache Tomcat.
See documentation for (chose your version).
- If your Tomcat installation require authentication for JMX, set values in host macros {$TOMCAT.USERNAME} and {$TOMCAT.PASSWORD}.
- You can set custom macro values and add macros with context for specific metrics following macro description.
Áú»¢¶Ä²© configuration
No specific Áú»¢¶Ä²© configuration is required.
Macros used
Name |
Description |
Default |
{$TOMCAT.LLD.FILTER.MATCHES} |
Filter for discoverable objects. Can be used with following contexts: "GlobalRequestProcessor", "ThreadPool", "Manager" |
.* |
{$TOMCAT.LLD.FILTER.NOT_MATCHES} |
Filter to exclude discovered objects. Can be used with following contexts: "GlobalRequestProcessor", "ThreadPool", "Manager" |
CHANGE IF NEEDED |
{$TOMCAT.PASSWORD} |
Password for JMX |
`` |
{$TOMCAT.THREADS.MAX.PCT} |
Threshold for busy worker threads trigger. Can be used with {#JMXNAME} as context. |
75 |
{$TOMCAT.THREADS.MAX.TIME} |
The time during which the number of busy threads can exceed the threshold. Can be used with {#JMXNAME} as context. |
5m |
{$TOMCAT.USER} |
User for JMX |
`` |
Template links
There are no template links in this template.
Discovery rules
Name |
Description |
Type |
Key and additional info |
Global request processors discovery |
Discovery for GlobalRequestProcessor |
JMX |
jmx.discovery[beans,"Catalina:type=GlobalRequestProcessor,name=*"] Filter: AND - A: {#JMXNAME} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"GlobalRequestProcessor"} - B: {#JMXNAME} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"GlobalRequestProcessor"} |
Protocol handlers discovery |
Discovery for ProtocolHandler |
JMX |
jmx.discovery[attributes,"Catalina:type=ProtocolHandler,port=*"] Filter: AND - A: {#JMXATTR} MATCHES_REGEX ^name$ |
Thread pools discovery |
Discovery for ThreadPool |
JMX |
jmx.discovery[beans,"Catalina:type=ThreadPool,name=*"] Filter: AND - A: {#JMXNAME} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"ThreadPool"} - B: {#JMXNAME} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"ThreadPool"} |
Contexts discovery |
Discovery for contexts |
JMX |
jmx.discovery[beans,"Catalina:type=Manager,host=,context="] Filter: AND - A: {#JMXHOST} MATCHES_REGEX {$TOMCAT.LLD.FILTER.MATCHES:"Manager"} - B: {#JMXHOST} NOT_MATCHES_REGEX {$TOMCAT.LLD.FILTER.NOT_MATCHES:"Manager"} |
Items collected
Group |
Name |
Description |
Type |
Key and additional info |
Tomcat |
Tomcat: Version |
The version of the Tomcat. |
JMX |
jmx["Catalina:type=Server",serverInfo] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 1d |
Tomcat |
{#JMXNAME}: Bytes received per second |
Bytes received rate by processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},bytesReceived] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Bytes sent per second |
Bytes sent rate by processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},bytesSent] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Errors per second |
Error rate of request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},errorCount] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Requests per second |
Rate of requests served by request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},requestCount] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXNAME}: Requests processing time |
The total time to process all incoming requests of request processor {#JMXNAME} |
JMX |
jmx[{#JMXOBJ},processingTime] Preprocessing: - MULTIPLIER: 0.001 |
Tomcat |
{#JMXVALUE}: Gzip compression status |
Gzip compression status on {#JMXNAME}. Enabling gzip compression may save server bandwidth. |
JMX |
jmx[{#JMXOBJ},compression] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 1h |
Tomcat |
{#JMXNAME}: Threads count |
Amount of threads the thread pool has right now, both busy and free. |
JMX |
jmx[{#JMXOBJ},currentThreadCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 10m |
Tomcat |
{#JMXNAME}: Threads limit |
Limit of the threads count. When currentThreadsBusy counter reaches the maxThreads limit, no more requests could be handled, and the application chokes. |
JMX |
jmx[{#JMXOBJ},maxThreads] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: 10m |
Tomcat |
{#JMXNAME}: Threads busy |
Number of the requests that are being currently handled. |
JMX |
jmx[{#JMXOBJ},currentThreadsBusy] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions active |
Active sessions of the application. |
JMX |
jmx[{#JMXOBJ},activeSessions] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions active maximum so far |
Maximum number of active sessions so far. |
JMX |
jmx[{#JMXOBJ},maxActive] |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions created per second |
Rate of sessions created by this application per second. |
JMX |
jmx[{#JMXOBJ},sessionCounter] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions rejected per second |
Rate of sessions we rejected due to maxActive being reached. |
JMX |
jmx[{#JMXOBJ},rejectedSessions] Preprocessing: - CHANGE_PER_SECOND |
Tomcat |
{#JMXHOST}{#JMXCONTEXT}: Sessions allowed maximum |
The maximum number of active Sessions allowed, or -1 for no limit. |
JMX |
jmx[{#JMXOBJ},maxActiveSessions] |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Tomcat: Version has been changed |
Tomcat version has changed. Ack to close. |
{TEMPLATE_NAME:jmx["Catalina:type=Server",serverInfo].diff()}=1 and {TEMPLATE_NAME:jmx["Catalina:type=Server",serverInfo].strlen()}>0 |
INFO |
Manual close: YES |
{#JMXVALUE}: Gzip compression is disabled |
gzip compression is disabled for connector {#JMXVALUE}. |
{TEMPLATE_NAME:jmx[{#JMXOBJ},compression].str(off)} = 1 |
INFO |
Manual close: YES |
{#JMXNAME}: Busy worker threads count are more than {$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}% of the limit for {$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"} |
When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes. |
{TEMPLATE_NAME:jmx[{#JMXOBJ},currentThreadsBusy].min({$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})}>{TEMPLATE_NAME:jmx[{#JMXOBJ},maxThreads].last()}*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100 |
HIGH |
|
Feedback
Please report any issues with the template at
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.