Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/7.4
Apache ActiveMQ by JMX
Overview
This template is designed for the effortless deployment of Apache ActiveMQ monitoring by Zabbix via JMX and doesn't require any external scripts.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- Apache ActiveMQ 5.15.5
Configuration
Zabbix 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 ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.USER} | User for JMX |
admin |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
LLD rule Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] |
Item prototypes for Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX agent | jmx[{#JMXOBJ},BrokerVersion] Preprocessing
|
Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX agent | jmx[{#JMXOBJ},UptimeMillis] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX agent | jmx[{#JMXOBJ},MemoryLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX agent | jmx[{#JMXOBJ}, MemoryPercentUsage] |
Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},StoreLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX agent | jmx[{#JMXOBJ},StorePercentUsage] |
Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},TempLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX agent | jmx[{#JMXOBJ},TempPercentUsage] |
Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX agent | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX agent | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalConsumerCount] |
Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalProducerCount] |
Trigger prototypes for Brokers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Version has been changed | The Broker {#JMXBROKERNAME} version has changed. Acknowledge to close the problem manually. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0 |
Info | Manual close: Yes |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Broker has been restarted | Uptime is less than 10 minutes. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m |
Info | Manual close: Yes |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}) |
Average | |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High |
LLD rule Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Destinations discovery | Discovery of destinations |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] |
Item prototypes for Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ConsumerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ProducerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX agent | jmx[{#JMXOBJ},MemoryPercentUsage] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX agent | jmx[{#JMXOBJ},EnqueueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX agent | jmx[{#JMXOBJ},DequeueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX agent | jmx[{#JMXOBJ},QueueSize] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX agent | jmx[{#JMXOBJ},ExpiredCount] Preprocessing
|
Trigger prototypes for Destinations discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
Average | ||
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
High | ||
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}) |
Average | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size is high | Queue size is higher than threshold. It may indicate performance problems. |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
Average | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count is high | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
Average |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/7.2
Apache ActiveMQ by JMX
Overview
This template is designed for the effortless deployment of Apache ActiveMQ monitoring by Zabbix via JMX and doesn't require any external scripts.
Requirements
Zabbix version: 7.2 and higher.
Tested versions
This template has been tested on:
- Apache ActiveMQ 5.15.5
Configuration
Zabbix 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 ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.USER} | User for JMX |
admin |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
LLD rule Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] |
Item prototypes for Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX agent | jmx[{#JMXOBJ},BrokerVersion] Preprocessing
|
Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX agent | jmx[{#JMXOBJ},UptimeMillis] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX agent | jmx[{#JMXOBJ},MemoryLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX agent | jmx[{#JMXOBJ}, MemoryPercentUsage] |
Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},StoreLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX agent | jmx[{#JMXOBJ},StorePercentUsage] |
Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},TempLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX agent | jmx[{#JMXOBJ},TempPercentUsage] |
Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX agent | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX agent | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalConsumerCount] |
Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalProducerCount] |
Trigger prototypes for Brokers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Version has been changed | The Broker {#JMXBROKERNAME} version has changed. Acknowledge to close the problem manually. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0 |
Info | Manual close: Yes |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Broker has been restarted | Uptime is less than 10 minutes. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m |
Info | Manual close: Yes |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}) |
Average | |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High |
LLD rule Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Destinations discovery | Discovery of destinations |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] |
Item prototypes for Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ConsumerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ProducerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX agent | jmx[{#JMXOBJ},MemoryPercentUsage] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX agent | jmx[{#JMXOBJ},EnqueueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX agent | jmx[{#JMXOBJ},DequeueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX agent | jmx[{#JMXOBJ},QueueSize] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX agent | jmx[{#JMXOBJ},ExpiredCount] Preprocessing
|
Trigger prototypes for Destinations discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
Average | ||
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
High | ||
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}) |
Average | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size is high | Queue size is higher than threshold. It may indicate performance problems. |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
Average | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count is high | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
Average |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/7.0
Apache ActiveMQ by JMX
Overview
This template is designed for the effortless deployment of Apache ActiveMQ monitoring by Zabbix via JMX and doesn't require any external scripts.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- Apache ActiveMQ 5.15.5
Configuration
Zabbix 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 ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.USER} | User for JMX |
admin |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
LLD rule Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] |
Item prototypes for Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX agent | jmx[{#JMXOBJ},BrokerVersion] Preprocessing
|
Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX agent | jmx[{#JMXOBJ},UptimeMillis] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX agent | jmx[{#JMXOBJ},MemoryLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX agent | jmx[{#JMXOBJ}, MemoryPercentUsage] |
Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},StoreLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX agent | jmx[{#JMXOBJ},StorePercentUsage] |
Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},TempLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX agent | jmx[{#JMXOBJ},TempPercentUsage] |
Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX agent | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX agent | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalConsumerCount] |
Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalProducerCount] |
Trigger prototypes for Brokers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Version has been changed | The Broker {#JMXBROKERNAME} version has changed. Acknowledge to close the problem manually. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0 |
Info | Manual close: Yes |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Broker has been restarted | Uptime is less than 10 minutes. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m |
Info | Manual close: Yes |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN} |
Average | Depends on:
|
|
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}) |
Average | |
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Apache ActiveMQ: Broker {#JMXBROKERNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High |
LLD rule Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Destinations discovery | Discovery of destinations |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] |
Item prototypes for Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ConsumerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ProducerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX agent | jmx[{#JMXOBJ},MemoryPercentUsage] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX agent | jmx[{#JMXOBJ},EnqueueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX agent | jmx[{#JMXOBJ},DequeueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX agent | jmx[{#JMXOBJ},QueueSize] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX agent | jmx[{#JMXOBJ},ExpiredCount] Preprocessing
|
Trigger prototypes for Destinations discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
Average | ||
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
High | ||
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}) |
Average | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size is high | Queue size is higher than threshold. It may indicate performance problems. |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
Average | |
Apache ActiveMQ: {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count is high | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
Average |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/6.4
Apache ActiveMQ by JMX
Overview
This template is designed for the effortless deployment of Apache ActiveMQ monitoring by Zabbix via JMX and doesn't require any external scripts.
Requirements
Zabbix version: 6.4 and higher.
Tested versions
This template has been tested on:
- Apache ActiveMQ 5.15.5
Configuration
Zabbix 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 ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.USER} | User for JMX |
admin |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
LLD rule Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] |
Item prototypes for Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX agent | jmx[{#JMXOBJ},BrokerVersion] Preprocessing
|
Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX agent | jmx[{#JMXOBJ},UptimeMillis] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX agent | jmx[{#JMXOBJ},MemoryLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX agent | jmx[{#JMXOBJ}, MemoryPercentUsage] |
Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},StoreLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX agent | jmx[{#JMXOBJ},StorePercentUsage] |
Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},TempLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX agent | jmx[{#JMXOBJ},TempPercentUsage] |
Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX agent | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX agent | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalConsumerCount] |
Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalProducerCount] |
Trigger prototypes for Brokers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Broker {#JMXBROKERNAME}: Version has been changed | The Broker {#JMXBROKERNAME} version has changed. Acknowledge to close the problem manually. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0 |
Info | Manual close: Yes |
Broker {#JMXBROKERNAME}: Broker has been restarted | Uptime is less than 10 minutes. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m |
Info | Manual close: Yes |
Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN} |
Average | Depends on:
|
|
Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH} |
High | ||
Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}) |
Average | |
Broker {#JMXBROKERNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Broker {#JMXBROKERNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High |
LLD rule Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Destinations discovery | Discovery of destinations |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] |
Item prototypes for Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ConsumerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ProducerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX agent | jmx[{#JMXOBJ},MemoryPercentUsage] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX agent | jmx[{#JMXOBJ},EnqueueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX agent | jmx[{#JMXOBJ},DequeueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX agent | jmx[{#JMXOBJ},QueueSize] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX agent | jmx[{#JMXOBJ},ExpiredCount] Preprocessing
|
Trigger prototypes for Destinations discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
Average | ||
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
High | ||
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}) |
Average | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size is high | Queue size is higher than threshold. It may indicate performance problems. |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
Average | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count is high | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
Average |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/6.2
Apache ActiveMQ by JMX
Overview
For Zabbix version: 6.2 and higher
Official JMX Template for Apache ActiveMQ.
This template was tested on:
- Apache ActiveMQ, version 5.15.5
Setup
See Zabbix template operation for basic instructions.
Metrics are collected by JMX.
- Enable and configure JMX access to Apache ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.USER} | User for JMX |
admin |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] Filter: FORMULA A and B- {#JMXBROKERNAME} MATCHES_REGEX - {#JMXBROKERNAME} NOT_MATCHES_REGEX |
Destinations discovery | Discovery of destinations |
JMX | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] Filter: FORMULA A and B- {#JMXDESTINATIONNAME} MATCHES_REGEX - {#JMXDESTINATIONNAME} NOT_MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
ActiveMQ | Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX | jmx[{#JMXOBJ},BrokerVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX | jmx[{#JMXOBJ},UptimeMillis] Preprocessing: - MULTIPLIER: |
ActiveMQ | Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX | jmx[{#JMXOBJ},MemoryLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX | jmx[{#JMXOBJ}, MemoryPercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX | jmx[{#JMXOBJ},StoreLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX | jmx[{#JMXOBJ},StorePercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX | jmx[{#JMXOBJ},TempLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX | jmx[{#JMXOBJ},TempPercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX | jmx[{#JMXOBJ},TotalConsumerCount] |
ActiveMQ | Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX | jmx[{#JMXOBJ},TotalProducerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX | jmx[{#JMXOBJ},ConsumerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing: - IN_RANGE: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX | jmx[{#JMXOBJ},ProducerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing: - IN_RANGE: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX | jmx[{#JMXOBJ},MemoryPercentUsage] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX | jmx[{#JMXOBJ},EnqueueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX | jmx[{#JMXOBJ},DequeueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX | jmx[{#JMXOBJ},QueueSize] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX | jmx[{#JMXOBJ},ExpiredCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Broker {#JMXBROKERNAME}: Version has been changed | Broker {#JMXBROKERNAME} version has changed. Ack to close. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0 |
INFO | Manual close: YES |
Broker {#JMXBROKERNAME}: Broker has been restarted | Uptime is less than 10 minutes. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m |
INFO | Manual close: YES |
Broker {#JMXBROKERNAME}: Memory usage is too high | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Memory usage is too high |
Broker {#JMXBROKERNAME}: Memory usage is too high | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Storage usage is too high | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Storage usage is too high |
Broker {#JMXBROKERNAME}: Storage usage is too high | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Temp usage is too high | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Temp usage is too high |
Broker {#JMXBROKERNAME}: Temp usage is too high | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH} |
HIGH | |
Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}) |
AVERAGE | |
Broker {#JMXBROKERNAME}: Consumers count is too low | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Producers count is too low | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} Recovery expression: min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} |
AVERAGE | Manual close: YES |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} Recovery expression: min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} |
AVERAGE | Manual close: YES |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | - |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | - |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
HIGH | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}) |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size is high | Queue size is higher than threshold. It may indicate performance problems. |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count is high | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
AVERAGE |
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 with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/6.0
Apache ActiveMQ by JMX
Overview
This template is designed for the effortless deployment of Apache ActiveMQ monitoring by Zabbix via JMX and doesn't require any external scripts.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- Apache ActiveMQ 5.15.5
Configuration
Zabbix 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 ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.USER} | User for JMX |
admin |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
LLD rule Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] |
Item prototypes for Brokers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX agent | jmx[{#JMXOBJ},BrokerVersion] Preprocessing
|
Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX agent | jmx[{#JMXOBJ},UptimeMillis] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX agent | jmx[{#JMXOBJ},MemoryLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX agent | jmx[{#JMXOBJ}, MemoryPercentUsage] |
Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},StoreLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX agent | jmx[{#JMXOBJ},StorePercentUsage] |
Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX agent | jmx[{#JMXOBJ},TempLimit] Preprocessing
|
Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX agent | jmx[{#JMXOBJ},TempPercentUsage] |
Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX agent | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX agent | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing
|
Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalConsumerCount] |
Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX agent | jmx[{#JMXOBJ},TotalProducerCount] |
Trigger prototypes for Brokers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Broker {#JMXBROKERNAME}: Version has been changed | The Broker {#JMXBROKERNAME} version has changed. Acknowledge to close the problem manually. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0 |
Info | Manual close: Yes |
Broker {#JMXBROKERNAME}: Broker has been restarted | Uptime is less than 10 minutes. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m |
Info | Manual close: Yes |
Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Broker {#JMXBROKERNAME}: Memory usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
Average | Depends on:
|
|
Broker {#JMXBROKERNAME}: Storage usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN} |
Average | Depends on:
|
|
Broker {#JMXBROKERNAME}: Temp usage is too high | min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH} |
High | ||
Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}) |
Average | |
Broker {#JMXBROKERNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High | ||
Broker {#JMXBROKERNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
High |
LLD rule Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Destinations discovery | Discovery of destinations |
JMX agent | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] |
Item prototypes for Destinations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ConsumerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX agent | jmx[{#JMXOBJ},ProducerCount] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX agent | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX agent | jmx[{#JMXOBJ},MemoryPercentUsage] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX agent | jmx[{#JMXOBJ},EnqueueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX agent | jmx[{#JMXOBJ},DequeueCount] Preprocessing
|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX agent | jmx[{#JMXOBJ},QueueSize] |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX agent | jmx[{#JMXOBJ},ExpiredCount] Preprocessing
|
Trigger prototypes for Destinations discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low | max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
Average | Manual close: Yes | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
Average | ||
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high | last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
High | ||
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}) |
Average | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size is high | Queue size is higher than threshold. It may indicate performance problems. |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
Average | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count is high | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
Average |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/5.4
Apache ActiveMQ by JMX
Overview
For Zabbix version: 5.4 and higher
Official JMX Template for Apache ActiveMQ.
This template was tested on:
- Apache ActiveMQ, version 5.15.5
Setup
See Zabbix template operation for basic instructions.
Metrics are collected by JMX.
- Enable and configure JMX access to Apache ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.USER} | User for JMX |
admin |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] Filter: FORMULA A and B- {#JMXBROKERNAME} MATCHES_REGEX - {#JMXBROKERNAME} NOT_MATCHES_REGEX |
Destinations discovery | Discovery of destinations |
JMX | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] Filter: FORMULA A and B- {#JMXDESTINATIONNAME} MATCHES_REGEX - {#JMXDESTINATIONNAME} NOT_MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
ActiveMQ | Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX | jmx[{#JMXOBJ},BrokerVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX | jmx[{#JMXOBJ},UptimeMillis] Preprocessing: - MULTIPLIER: |
ActiveMQ | Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX | jmx[{#JMXOBJ},MemoryLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX | jmx[{#JMXOBJ}, MemoryPercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX | jmx[{#JMXOBJ},StoreLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX | jmx[{#JMXOBJ},StorePercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX | jmx[{#JMXOBJ},TempLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX | jmx[{#JMXOBJ},TempPercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX | jmx[{#JMXOBJ},TotalConsumerCount] |
ActiveMQ | Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX | jmx[{#JMXOBJ},TotalProducerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX | jmx[{#JMXOBJ},ConsumerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing: - IN_RANGE: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX | jmx[{#JMXOBJ},ProducerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing: - IN_RANGE: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX | jmx[{#JMXOBJ},MemoryPercentUsage] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX | jmx[{#JMXOBJ},EnqueueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX | jmx[{#JMXOBJ},DequeueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX | jmx[{#JMXOBJ},QueueSize] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX | jmx[{#JMXOBJ},ExpiredCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Broker {#JMXBROKERNAME}: Version has been changed | Broker {#JMXBROKERNAME} version has changed. Ack to close. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0 |
INFO | Manual close: YES |
Broker {#JMXBROKERNAME}: Broker has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m |
INFO | Manual close: YES |
Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%) |
Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%) | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%) |
Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%) | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%) |
Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH} |
HIGH | |
Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"} | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}) |
AVERAGE | |
Broker {#JMXBROKERNAME}: Consumers count is too low (below {$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"}) | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Producers count is too low (below {$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"}) | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low (below {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"}) | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} Recovery expression: min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} |
AVERAGE | Manual close: YES |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low (below {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"}) | - |
max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} Recovery expression: min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} |
AVERAGE | Manual close: YES |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}%) | - |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}%) | - |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
HIGH | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"} | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}) |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size higher than {$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"} | Queue size is higher than threshold. It may indicate performance problems. |
min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count higher than {$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
AVERAGE |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx?at=release/5.0
Template App Apache ActiveMQ by JMX
Overview
For Zabbix version: 5.0 and higher
Official JMX Template for Apache ActiveMQ.
This template was tested on:
- Apache ActiveMQ, version 5.15.5
- Zabbix, version 5.0
Setup
See Zabbix template operation for basic instructions.
Metrics are collected by JMX.
- Enable and configure JMX access to Apache ActiveMQ. See documentation for instructions.
- Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD} and {$ACTIVEMQ.PORT}.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME} | Time during which there may be no consumers on destination. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH} | Minimum amount of producers for broker. Can be used with broker name as context. |
1 |
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME} | Time during which there may be no producers on broker. Can be used with broker name as context. |
5m |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH} | Minimum amount of consumers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME} | Time during which there may be no consumers in destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH} | Minimum amount of producers for destination. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME} | Time during which there may be no producers on destination. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.EXPIRED.WARN} | Threshold for expired messages count. Can be used with destination name as context. |
0 |
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES} | Filter of discoverable discovered brokers |
.* |
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES} | Filter to exclude discovered brokers |
CHANGE IF NEEDED |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES} | Filter of discoverable discovered destinations |
.* |
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES} | Filter to exclude discovered destinations |
CHANGE IF NEEDED |
{$ACTIVEMQ.MEM.MAX.HIGH} | Memory threshold for HIGH trigger. Can be used with destination or broker name as context. |
90 |
{$ACTIVEMQ.MEM.MAX.WARN} | Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context. |
75 |
{$ACTIVEMQ.MEM.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.MSG.RATE.WARN.TIME} | The time for message enqueue/dequeue rate. Can be used with destination or broker name as context. |
15m |
{$ACTIVEMQ.PASSWORD} | Password for JMX |
activemq |
{$ACTIVEMQ.PORT} | Port for JMX |
1099 |
{$ACTIVEMQ.QUEUE.ENABLED} | Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context. |
1 |
{$ACTIVEMQ.QUEUE.TIME} | Time during which the QueueSize can be higher than threshold. Can be used with destination name as context. |
10m |
{$ACTIVEMQ.QUEUE.WARN} | Threshold for QueueSize. Can be used with destination name as context. |
100 |
{$ACTIVEMQ.STORE.MAX.HIGH} | Storage threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.STORE.MAX.WARN} | Storage threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.STORE.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.TEMP.MAX.HIGH} | Temp threshold for HIGH trigger. Can be used with broker name as context. |
90 |
{$ACTIVEMQ.TEMP.MAX.WARN} | Temp threshold for AVERAGE trigger. Can be used with broker name as context. |
75 |
{$ACTIVEMQ.TEMP.TIME} | Time during which the metric can be above the threshold. Can be used with destination or broker name as context. |
5m |
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT} | Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalConsumerCount |
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT} | Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
TotalProducerCount |
{$ACTIVEMQ.USER} | User for JMX |
admin |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Brokers discovery | Discovery of brokers |
JMX | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"] Filter: FORMULA A and B- A: {#JMXBROKERNAME} MATCHES_REGEX - B: {#JMXBROKERNAME} NOT_MATCHES_REGEX |
Destinations discovery | Discovery of destinations |
JMX | jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"] Filter: FORMULA A and B- A: {#JMXDESTINATIONNAME} MATCHES_REGEX - B: {#JMXDESTINATIONNAME} NOT_MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
ActiveMQ | Broker {#JMXBROKERNAME}: Version | The version of the broker. |
JMX | jmx[{#JMXOBJ},BrokerVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Uptime | The uptime of the broker. |
JMX | jmx[{#JMXOBJ},UptimeMillis] Preprocessing: - MULTIPLIER: |
ActiveMQ | Broker {#JMXBROKERNAME}: Memory limit | Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage. |
JMX | jmx[{#JMXOBJ},MemoryLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Memory usage in percents | Percent of memory limit used. |
JMX | jmx[{#JMXOBJ}, MemoryPercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Storage limit | Disk limit, in bytes, used for persistent messages before producers are blocked. |
JMX | jmx[{#JMXOBJ},StoreLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Storage usage in percents | Percent of store limit used. |
JMX | jmx[{#JMXOBJ},StorePercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Temp limit | Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked. |
JMX | jmx[{#JMXOBJ},TempLimit] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | Broker {#JMXBROKERNAME}: Temp usage in percents | Percent of temp limit used. |
JMX | jmx[{#JMXOBJ},TempPercentUsage] |
ActiveMQ | Broker {#JMXBROKERNAME}: Messages enqueue rate | Rate of messages that have been sent to the broker. |
JMX | jmx[{#JMXOBJ},TotalEnqueueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | Broker {#JMXBROKERNAME}: Messages dequeue rate | Rate of messages that have been delivered by the broker and acknowledged by consumers. |
JMX | jmx[{#JMXOBJ},TotalDequeueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | Broker {#JMXBROKERNAME}: Consumers count total | Number of consumers attached to this broker. |
JMX | jmx[{#JMXOBJ},TotalConsumerCount] |
ActiveMQ | Broker {#JMXBROKERNAME}: Producers count total | Number of producers attached to this broker. |
JMX | jmx[{#JMXOBJ},TotalProducerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count | Number of consumers attached to this destination. |
JMX | jmx[{#JMXOBJ},ConsumerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME} | Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold. |
JMX | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing: - IN_RANGE: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count | Number of producers attached to this destination. |
JMX | jmx[{#JMXOBJ},ProducerCount] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME} | Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold. |
JMX | jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}] Preprocessing: - IN_RANGE: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents | The percentage of the memory limit used. |
JMX | jmx[{#JMXOBJ},MemoryPercentUsage] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate | Rate of messages that have been sent to the destination. |
JMX | jmx[{#JMXOBJ},EnqueueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate | Rate of messages that has been acknowledged (and removed) from the destination. |
JMX | jmx[{#JMXOBJ},DequeueCount] Preprocessing: - CHANGE_PER_SECOND |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size | Number of messages on this destination, including any that have been dispatched but not acknowledged. |
JMX | jmx[{#JMXOBJ},QueueSize] |
ActiveMQ | {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count | Number of messages that have been expired. |
JMX | jmx[{#JMXOBJ},ExpiredCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Broker {#JMXBROKERNAME}: Version has been changed | Broker {#JMXBROKERNAME} version has changed. Ack to close. |
{TEMPLATE_NAME:jmx[{#JMXOBJ},BrokerVersion].diff()}=1 and {TEMPLATE_NAME:jmx[{#JMXOBJ},BrokerVersion].strlen()}>0 |
INFO | Manual close: YES |
Broker {#JMXBROKERNAME}: Broker has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:jmx[{#JMXOBJ},UptimeMillis].last()}<10m |
INFO | Manual close: YES |
Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ}, MemoryPercentUsage].min({$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%) |
Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ}, MemoryPercentUsage].min({$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},StorePercentUsage].min({$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%) |
Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},StorePercentUsage].min({$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},TempPercentUsage].min({$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.TEMP.MAX.WARN} |
AVERAGE | Depends on: - Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%) |
Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},TempPercentUsage].min({$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.TEMP.MAX.HIGH} |
HIGH | |
Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"} | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
{TEMPLATE_NAME:jmx[{#JMXOBJ},TotalEnqueueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})}>{TEMPLATE_NAME:jmx[{#JMXOBJ},TotalEnqueueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})} |
AVERAGE | |
Broker {#JMXBROKERNAME}: Consumers count is too low (below {$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"}) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},TotalConsumerCount].max({$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})}<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
Broker {#JMXBROKERNAME}: Producers count is too low (below {$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"}) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},TotalProducerCount].max({$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})}<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} |
HIGH | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low (below {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"}) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},ConsumerCount].max({$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and {TEMPLATE_NAME:jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}].last()}>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} Recovery expression: {TEMPLATE_NAME:jmx[{#JMXOBJ},ConsumerCount].min({$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}>={$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} |
AVERAGE | Manual close: YES |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low (below {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"}) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},ProducerCount].max({$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and {TEMPLATE_NAME:jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}].last()}>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} Recovery expression: {TEMPLATE_NAME:jmx[{#JMXOBJ},ProducerCount].min({$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}>={$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} |
AVERAGE | Manual close: YES |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},MemoryPercentUsage].last()}>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}%) | - |
{TEMPLATE_NAME:jmx[{#JMXOBJ},MemoryPercentUsage].last()}>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} |
HIGH | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"} | Enqueue rate is higher than dequeue rate. It may indicate performance problems. |
{TEMPLATE_NAME:jmx[{#JMXOBJ},EnqueueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})}>{TEMPLATE_NAME:jmx[{#JMXOBJ},DequeueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})} |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size higher than {$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"} | Queue size is higher than threshold. It may indicate performance problems. |
{TEMPLATE_NAME:jmx[{#JMXOBJ},QueueSize].min({$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})}>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 |
AVERAGE | |
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count higher than {$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} | This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero. |
{TEMPLATE_NAME:jmx[{#JMXOBJ},ExpiredCount].last()}>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"} |
AVERAGE |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.