21 KiB
WildFly Server by JMX
Overview
Official JMX Template for WildFly server.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- WildFly 22.6.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Metrics are collected by JMX. This template works with standalone and domain instances.
- Enable and configure JMX access to WildFly. See documentation for instructions.
- Copy jboss-client.jar from
/(wildfly,EAP,Jboss,AS)/bin/client
in to directory/usr/share/zabbix-java-gateway/lib
- Restart Zabbix Java gateway
- Set the user name and password in host macros {$WILDFLY.USER} and {$WILDFLY.PASSWORD}. Depending on your server setup, you may need to specify a custom JMX scheme in macro {$WILDFLY.JMX.PROTOCOL} (default: remote+http)
Macros used
Name | Description | Default |
---|---|---|
{$WILDFLY.USER} | zabbix |
|
{$WILDFLY.PASSWORD} | zabbix |
|
{$WILDFLY.JMX.PROTOCOL} | remote+http |
|
{$WILDFLY.DEPLOYMENT.MATCHES} | Filter of discoverable deployments |
.* |
{$WILDFLY.DEPLOYMENT.NOT_MATCHES} | Filter to exclude discovered deployments |
CHANGE_IF_NEEDED |
{$WILDFLY.CONN.USAGE.WARN.MAX} | The maximum connection usage percent for trigger expression. |
80 |
{$WILDFLY.CONN.WAIT.MAX.WARN} | The maximum number of waiting connections for trigger expression. |
300 |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
WildFly: Launch type | The manner in which the server process was launched. Either "DOMAIN" for a domain mode server launched by a Host Controller, "STANDALONE" for a standalone server launched from the command line, or "EMBEDDED" for a standalone server launched as an embedded part of an application running in the same virtual machine. |
JMX agent | jmx["jboss.as:management-root=server","launchType"] Preprocessing
|
WildFly: Name | For standalone mode: The name of this server. If not set, defaults to the runtime value of InetAddress.getLocalHost().getHostName(). For domain mode: The name given to this domain. |
JMX agent | jmx["jboss.as:management-root=server","name"] Preprocessing
|
WildFly: Process type | The type of process represented by this root resource. |
JMX agent | jmx["jboss.as:management-root=server","processType"] Preprocessing
|
WildFly: Runtime configuration state | The current persistent configuration state, one of starting, ok, reload-required, restart-required, stopping or stopped. |
JMX agent | jmx["jboss.as:management-root=server","runtimeConfigurationState"] Preprocessing
|
WildFly: Server controller state | The current state of the server controller; either STARTING, RUNNING, RESTART_REQUIRED, RELOAD_REQUIRED or STOPPING. |
JMX agent | jmx["jboss.as:management-root=server","serverState"] Preprocessing
|
WildFly: Version | The version of the WildFly Core based product release. |
JMX agent | jmx["jboss.as:management-root=server","productVersion"] Preprocessing
|
WildFly: Uptime | WildFly server uptime. |
JMX agent | jmx["java.lang:type=Runtime","Uptime"] Preprocessing
|
WildFly: Transactions: Total, rate | The total number of transactions (top-level and nested) created per second. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfTransactions"] Preprocessing
|
WildFly: Transactions: Aborted, rate | The number of aborted (i.e. rolledback) transactions per second. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfAbortedTransactions"] Preprocessing
|
WildFly: Transactions: Application rollbacks, rate | The number of transactions that have been rolled back by application request. This includes those that timeout, since the timeout behavior is considered an attribute of the application configuration. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfApplicationRollbacks"] Preprocessing
|
WildFly: Transactions: Committed, rate | The number of committed transactions. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfCommittedTransactions"] Preprocessing
|
WildFly: Transactions: Heuristics, rate | The number of transactions which have terminated with heuristic outcomes. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfHeuristics"] Preprocessing
|
WildFly: Transactions: Current | The number of transactions that have begun but not yet terminated. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfInflightTransactions"] |
WildFly: Transactions: Nested, rate | The total number of nested (sub) transactions created. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfNestedTransactions"] Preprocessing
|
WildFly: Transactions: ResourceRollbacks, rate | The number of transactions that rolled back due to resource (participant) failure. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfResourceRollbacks"] Preprocessing
|
WildFly: Transactions: System rollbacks, rate | The number of transactions that have been rolled back due to internal system errors. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfSystemRollbacks"] Preprocessing
|
WildFly: Transactions: Timed out, rate | The number of transactions that have rolled back due to timeout. |
JMX agent | jmx["jboss.as:subsystem=transactions","numberOfTimedOutTransactions"] Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
WildFly: Server needs to restart for configuration change. | find(/WildFly Server by JMX/jmx["jboss.as:management-root=server","runtimeConfigurationState"],,"like","ok")=0 |
Warning | ||
WildFly: Server controller is not in RUNNING state | find(/WildFly Server by JMX/jmx["jboss.as:management-root=server","serverState"],,"like","running")=0 |
Warning | Depends on:
|
|
WildFly: Version has changed | WildFly version has changed. Acknowledge to close the problem manually. |
last(/WildFly Server by JMX/jmx["jboss.as:management-root=server","productVersion"],#1)<>last(/WildFly Server by JMX/jmx["jboss.as:management-root=server","productVersion"],#2) and length(last(/WildFly Server by JMX/jmx["jboss.as:management-root=server","productVersion"]))>0 |
Info | Manual close: Yes |
WildFly: Host has been restarted | Uptime is less than 10 minutes. |
last(/WildFly Server by JMX/jmx["java.lang:type=Runtime","Uptime"])<10m |
Info | Manual close: Yes |
WildFly: Failed to fetch info data | Zabbix has not received data for items for the last 15 minutes |
nodata(/WildFly Server by JMX/jmx["java.lang:type=Runtime","Uptime"],15m)=1 |
Warning |
LLD rule Deployments discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Deployments discovery | Discovery deployments metrics. |
JMX agent | jmx.get[beans,"jboss.as.expr:deployment=*"] |
Item prototypes for Deployments discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
WildFly deployment [{#DEPLOYMENT}]: Status | The current runtime status of a deployment. Possible status modes are OK, FAILED, and STOPPED. FAILED indicates a dependency is missing or a service could not start. STOPPED indicates that the deployment was not enabled or was manually stopped. |
JMX agent | jmx["{#JMXOBJ}",status] Preprocessing
|
WildFly deployment [{#DEPLOYMENT}]: Enabled | Boolean indicating whether the deployment content is currently deployed in the runtime (or should be deployed in the runtime the next time the server starts). |
JMX agent | jmx["{#JMXOBJ}",enabled] Preprocessing
|
WildFly deployment [{#DEPLOYMENT}]: Managed | Indicates if the deployment is managed (aka uses the ContentRepository). |
JMX agent | jmx["{#JMXOBJ}",managed] Preprocessing
|
WildFly deployment [{#DEPLOYMENT}]: Persistent | Indicates if the deployment is managed (aka uses the ContentRepository). |
JMX agent | jmx["{#JMXOBJ}",persistent] Preprocessing
|
WildFly deployment [{#DEPLOYMENT}]: Enabled time | Indicates if the deployment is managed (aka uses the ContentRepository). |
JMX agent | jmx["{#JMXOBJ}",enabledTime] Preprocessing
|
Trigger prototypes for Deployments discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
WildFly deployment [{#DEPLOYMENT}]: Deployment status has changed | Deployment status has changed. Acknowledge to close the problem manually. |
last(/WildFly Server by JMX/jmx["{#JMXOBJ}",status],#1)<>last(/WildFly Server by JMX/jmx["{#JMXOBJ}",status],#2) and length(last(/WildFly Server by JMX/jmx["{#JMXOBJ}",status]))>0 |
Warning | Manual close: Yes |
LLD rule JDBC metrics discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
JDBC metrics discovery | JMX agent | jmx.get[beans,"jboss.as:subsystem=datasources,data-source=*,statistics=jdbc"] |
Item prototypes for JDBC metrics discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
WildFly {#JMX_DATA_SOURCE}: Cache access, rate | The number of times that the statement cache was accessed per second. |
JMX agent | jmx["{#JMXOBJ}",PreparedStatementCacheAccessCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Cache add, rate | The number of statements added to the statement cache per second. |
JMX agent | jmx["{#JMXOBJ}",PreparedStatementCacheAddCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Cache current size | The number of prepared and callable statements currently cached in the statement cache. |
JMX agent | jmx["{#JMXOBJ}",PreparedStatementCacheCurrentSize] |
WildFly {#JMX_DATA_SOURCE}: Cache delete, rate | The number of statements discarded from the cache per second. |
JMX agent | jmx["{#JMXOBJ}",PreparedStatementCacheDeleteCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Cache hit, rate | The number of times that statements from the cache were used per second. |
JMX agent | jmx["{#JMXOBJ}",PreparedStatementCacheHitCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Cache miss, rate | The number of times that a statement request could not be satisfied with a statement from the cache per second. |
JMX agent | jmx["{#JMXOBJ}",PreparedStatementCacheMissCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Statistics enabled | Define whether runtime statistics are enabled or not. |
JMX agent | jmx["{#JMXOBJ}",statisticsEnabled, "JDBC"] Preprocessing
|
Trigger prototypes for JDBC metrics discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
WildFly {#JMX_DATA_SOURCE}: JDBC monitoring statistic is not enabled | last(/WildFly Server by JMX/jmx["{#JMXOBJ}",statisticsEnabled, "JDBC"])=0 |
Info |
LLD rule Pools metrics discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Pools metrics discovery | JMX agent | jmx.get[beans,"jboss.as:subsystem=datasources,data-source=*,statistics=pool"] |
Item prototypes for Pools metrics discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
WildFly {#JMX_DATA_SOURCE}: Connections: Active | The number of open connections. |
JMX agent | jmx["{#JMXOBJ}",ActiveCount] |
WildFly {#JMX_DATA_SOURCE}: Connections: Available | The available count. |
JMX agent | jmx["{#JMXOBJ}",AvailableCount] |
WildFly {#JMX_DATA_SOURCE}: Blocking time, avg | Average Blocking Time for pool. |
JMX agent | jmx["{#JMXOBJ}",AverageBlockingTime] |
WildFly {#JMX_DATA_SOURCE}: Connections: Creating time, avg | The average time spent creating a physical connection. |
JMX agent | jmx["{#JMXOBJ}",AverageCreationTime] |
WildFly {#JMX_DATA_SOURCE}: Connections: Get time, avg | The average time spent obtaining a physical connection. |
JMX agent | jmx["{#JMXOBJ}",AverageGetTime] |
WildFly {#JMX_DATA_SOURCE}: Connections: Pool time, avg | The average time for a physical connection spent in the pool. |
JMX agent | jmx["{#JMXOBJ}",AveragePoolTime] |
WildFly {#JMX_DATA_SOURCE}: Connections: Usage time, avg | The average time spent using a physical connection |
JMX agent | jmx["{#JMXOBJ}",AverageUsageTime] |
WildFly {#JMX_DATA_SOURCE}: Connections: Blocking failure, rate | The number of failures trying to obtain a physical connection per second. |
JMX agent | jmx["{#JMXOBJ}",BlockingFailureCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Connections: Created, rate | The created per second |
JMX agent | jmx["{#JMXOBJ}",CreatedCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Connections: Destroyed, rate | The destroyed count. |
JMX agent | jmx["{#JMXOBJ}",DestroyedCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Connections: Idle | The number of physical connections currently idle. |
JMX agent | jmx["{#JMXOBJ}",IdleCount] |
WildFly {#JMX_DATA_SOURCE}: Connections: In use | The number of physical connections currently in use. |
JMX agent | jmx["{#JMXOBJ}",InUseCount] |
WildFly {#JMX_DATA_SOURCE}: Connections: Used, max | The maximum number of connections used. |
JMX agent | jmx["{#JMXOBJ}",MaxUsedCount] |
WildFly {#JMX_DATA_SOURCE}: Statistics enabled | Define whether runtime statistics are enabled or not. |
JMX agent | jmx["{#JMXOBJ}",statisticsEnabled] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Connections: Timed out, rate | The timed out connections per second. |
JMX agent | jmx["{#JMXOBJ}",TimedOut] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: Connections: Wait | The number of requests that had to wait to obtain a physical connection. |
JMX agent | jmx["{#JMXOBJ}",WaitCount] |
WildFly {#JMX_DATA_SOURCE}: XA: Commit time, avg | The average time for a XAResource commit invocation. |
JMX agent | jmx["{#JMXOBJ}",XACommitAverageTime] |
WildFly {#JMX_DATA_SOURCE}: XA: Commit, rate | The number of XAResource commit invocations per second. |
JMX agent | jmx["{#JMXOBJ}",XACommitCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: XA: End time, avg | The average time for a XAResource end invocation. |
JMX agent | jmx["{#JMXOBJ}",XAEndAverageTime] |
WildFly {#JMX_DATA_SOURCE}: XA: End, rate | The number of XAResource end invocations per second. |
JMX agent | jmx["{#JMXOBJ}",XAEndCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: XA: Forget time, avg | The average time for a XAResource forget invocation. |
JMX agent | jmx["{#JMXOBJ}",XAForgetAverageTime] |
WildFly {#JMX_DATA_SOURCE}: XA: Forget, rate | The number of XAResource forget invocations per second. |
JMX agent | jmx["{#JMXOBJ}",XAForgetCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: XA: Prepare time, avg | The average time for a XAResource prepare invocation. |
JMX agent | jmx["{#JMXOBJ}",XAPrepareAverageTime] |
WildFly {#JMX_DATA_SOURCE}: XA: Prepare, rate | The number of XAResource prepare invocations per second. |
JMX agent | jmx["{#JMXOBJ}",XAPrepareCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: XA: Recover time, avg | The average time for a XAResource recover invocation. |
JMX agent | jmx["{#JMXOBJ}",XARecoverAverageTime] |
WildFly {#JMX_DATA_SOURCE}: XA: Recover, rate | The number of XAResource recover invocations per second. |
JMX agent | jmx["{#JMXOBJ}",XARecoverCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: XA: Rollback time, avg | The average time for a XAResource rollback invocation. |
JMX agent | jmx["{#JMXOBJ}",XARollbackAverageTime] |
WildFly {#JMX_DATA_SOURCE}: XA: Rollback, rate | The number of XAResource rollback invocations per second. |
JMX agent | jmx["{#JMXOBJ}",XARollbackCount] Preprocessing
|
WildFly {#JMX_DATA_SOURCE}: XA: Start time, avg | The average time for a XAResource start invocation. |
JMX agent | jmx["{#JMXOBJ}",XAStartAverageTime] |
WildFly {#JMX_DATA_SOURCE}: XA: Start rate | The number of XAResource start invocations per second. |
JMX agent | jmx["{#JMXOBJ}",XAStartCount] Preprocessing
|
Trigger prototypes for Pools metrics discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
WildFly {#JMX_DATA_SOURCE}: There are no active connections for 5m | max(/WildFly Server by JMX/jmx["{#JMXOBJ}",ActiveCount],5m)=0 |
Warning | ||
WildFly {#JMX_DATA_SOURCE}: Connection usage is too high | min(/WildFly Server by JMX/jmx["{#JMXOBJ}",InUseCount],5m)/last(/WildFly Server by JMX/jmx["{#JMXOBJ}",AvailableCount])*100>{$WILDFLY.CONN.USAGE.WARN.MAX} |
High | ||
WildFly {#JMX_DATA_SOURCE}: Pools monitoring statistic is not enabled | Zabbix has not received data for items for the last 15 minutes |
last(/WildFly Server by JMX/jmx["{#JMXOBJ}",statisticsEnabled])=0 |
Info | |
WildFly {#JMX_DATA_SOURCE}: There are timeout connections | last(/WildFly Server by JMX/jmx["{#JMXOBJ}",TimedOut])>0 |
Warning | ||
WildFly {#JMX_DATA_SOURCE}: Too many waiting connections | min(/WildFly Server by JMX/jmx["{#JMXOBJ}",WaitCount],5m)>{$WILDFLY.CONN.WAIT.MAX.WARN} |
Warning |
LLD rule Undertow metrics discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Undertow metrics discovery | JMX agent | jmx.get[beans,"jboss.as:subsystem=undertow,server=,http-listener="] |
Item prototypes for Undertow metrics discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
WildFly listener {#HTTP_LISTENER}: Errors, rate | The number of 500 responses that have been sent by this listener per second. |
JMX agent | jmx["{#JMXOBJ}",errorCount] Preprocessing
|
WildFly listener {#HTTP_LISTENER}: Requests, rate | The number of requests this listener has served per second. |
JMX agent | jmx["{#JMXOBJ}",requestCount] Preprocessing
|
WildFly listener {#HTTP_LISTENER}: Bytes sent, rate | The number of bytes that have been sent out on this listener per second. |
JMX agent | jmx["{#JMXOBJ}",bytesSent] Preprocessing
|
WildFly listener {#HTTP_LISTENER}: Bytes received, rate | The number of bytes that have been received by this listener per second. |
JMX agent | jmx["{#JMXOBJ}",bytesReceived] Preprocessing
|
Trigger prototypes for Undertow metrics discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
WildFly listener {#HTTP_LISTENER}: There are 500 responses by this listener. | last(/WildFly Server by JMX/jmx["{#JMXOBJ}",errorCount])>0 |
Warning |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums