RabbitMQ

RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol, Message Queuing Telemetry Transport, and other protocols.

Available solutions




This template is for Zabbix version: 6.2
Also available for: 6.0 5.4 5.0

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/rabbitmq_agent?at=release/6.2

RabbitMQ cluster by Zabbix agent

Overview

For Zabbix version: 6.2 and higher. This template is developed to monitor the messaging broker RabbitMQ by Zabbix that works without any external scripts.

Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.

The template RabbitMQ Cluster — collects metrics by polling RabbitMQ management plugin with Zabbix agent.

This template was tested on:

  • RabbitMQ, version 3.5.7, 3.7.17, 3.7.18, 3.7.7, 3.8.5, 3.8.12

Setup

See Zabbix template operation for basic instructions.

Enable the RabbitMQ management plugin. See RabbitMQ documentation for the instructions.

Create a user to monitor the service:

rabbitmqctl add_user zbx_monitor <PASSWORD>
rabbitmqctl set_permissions  -p / zbx_monitor "" "" ".*"
rabbitmqctl set_user_tags zbx_monitor monitoring

A login name and password are also supported in macros functions:

  • {$RABBITMQ.API.USER}
  • {$RABBITMQ.API.PASSWORD}

If your cluster consists of several nodes, it is recommended to assign the cluster template to a separate balancing host. In the case of a single-node installation, you can assign the cluster template to one host with a node template.

If you use another API endpoint, then don't forget to change {$RABBITMQ.API.CLUSTER_HOST} macro.

Install and setup Zabbix agent.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$RABBITMQ.API.CLUSTER_HOST}

The hostname or an IP of the API endpoint for the RabbitMQ cluster.

127.0.0.1
{$RABBITMQ.API.PASSWORD}

-

zabbix
{$RABBITMQ.API.PORT}

The port of the RabbitMQ API endpoint.

15672
{$RABBITMQ.API.SCHEME}

The request scheme, which may be HTTP or HTTPS.

http
{$RABBITMQ.API.USER}

-

zbx_monitor
{$RABBITMQ.LLD.FILTER.EXCHANGE.MATCHES}

This macro is used in the discovery of exchanges. It can be overridden at host level or its linked template level.

.*
{$RABBITMQ.LLD.FILTER.EXCHANGE.NOT_MATCHES}

This macro is used in the discovery of exchanges. It can be overridden at host level or its linked template level.

CHANGE_IF_NEEDED

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Exchanges discovery

The metrics for an individual exchange.

DEPENDENT rabbitmq.exchanges.discovery

Filter:

AND

- {#EXCHANGE} MATCHES_REGEX {$RABBITMQ.LLD.FILTER.EXCHANGE.MATCHES}

- {#EXCHANGE} NOT_MATCHES_REGEX {$RABBITMQ.LLD.FILTER.EXCHANGE.NOT_MATCHES}

Health Check 3.8.10+ discovery

Specific metrics for the versions: up to and including 3.8.10.

DEPENDENT rabbitmq.healthcheck.v3810.discovery

Preprocessing:

- JSONPATH: $.management_version

- JAVASCRIPT: The text is too long. Please see the template.

Items collected

Group Name Description Type Key and additional info
RabbitMQ RabbitMQ: Connections total

The total number of connections.

DEPENDENT rabbitmq.overview.object_totals.connections

Preprocessing:

- JSONPATH: $.object_totals.connections

RabbitMQ RabbitMQ: Channels total

The total number of channels.

DEPENDENT rabbitmq.overview.object_totals.channels

Preprocessing:

- JSONPATH: $.object_totals.channels

RabbitMQ RabbitMQ: Queues total

The total number of queues.

DEPENDENT rabbitmq.overview.object_totals.queues

Preprocessing:

- JSONPATH: $.object_totals.queues

RabbitMQ RabbitMQ: Consumers total

The total number of consumers.

DEPENDENT rabbitmq.overview.object_totals.consumers

Preprocessing:

- JSONPATH: $.object_totals.consumers

RabbitMQ RabbitMQ: Exchanges total

The total number of exchanges.

DEPENDENT rabbitmq.overview.object_totals.exchanges

Preprocessing:

- JSONPATH: $.object_totals.exchanges

RabbitMQ RabbitMQ: Messages total

The total number of messages (ready, plus unacknowledged).

DEPENDENT rabbitmq.overview.queue_totals.messages

Preprocessing:

- JSONPATH: $.queue_totals.messages

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages ready for delivery

The number of messages ready for delivery.

DEPENDENT rabbitmq.overview.queue_totals.messages.ready

Preprocessing:

- JSONPATH: $.queue_totals.messages_ready

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages unacknowledged

The number of unacknowledged messages.

DEPENDENT rabbitmq.overview.queue_totals.messages.unacknowledged

Preprocessing:

- JSONPATH: $.queue_totals.messages_unacknowledged

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages acknowledged

The number of messages delivered to clients and acknowledged.

DEPENDENT rabbitmq.overview.messages.ack

Preprocessing:

- JSONPATH: $.message_stats.ack

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages acknowledged per second

The rate of messages (per second) delivered to clients and acknowledged.

DEPENDENT rabbitmq.overview.messages.ack.rate

Preprocessing:

- JSONPATH: $.message_stats.ack_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages confirmed

The count of confirmed messages.

DEPENDENT rabbitmq.overview.messages.confirm

Preprocessing:

- JSONPATH: $.message_stats.confirm

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages confirmed per second

The rate of confirmed messages per second.

DEPENDENT rabbitmq.overview.messages.confirm.rate

Preprocessing:

- JSONPATH: $.message_stats.confirm_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages delivered

The sum of messages delivered to consumers: in acknowledgement mode and in no-acknowledgement mode; delivered to consumers in response to basic.get: in acknowledgement mode and in no-acknowledgement mode.

DEPENDENT rabbitmq.overview.messages.deliver_get

Preprocessing:

- JSONPATH: $.message_stats.deliver_get

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages delivered per second

The rate of the sum of messages (per second) delivered to consumers: in acknowledgement mode and in no-acknowledgement mode; delivered to consumers in response to basic.get: in acknowledgement mode and in no-acknowledgement mode.

DEPENDENT rabbitmq.overview.messages.deliver_get.rate

Preprocessing:

- JSONPATH: $.message_stats.deliver_get_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages published

The count of published messages.

DEPENDENT rabbitmq.overview.messages.publish

Preprocessing:

- JSONPATH: $.message_stats.publish

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages published per second

The rate of published messages per second.

DEPENDENT rabbitmq.overview.messages.publish.rate

Preprocessing:

- JSONPATH: $.message_stats.publish_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages publish_in

The count of messages published from the channels into this overview.

DEPENDENT rabbitmq.overview.messages.publish_in

Preprocessing:

- JSONPATH: $.message_stats.publish_in

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages publish_in per second

The rate of messages (per second) published from the channels into this overview.

DEPENDENT rabbitmq.overview.messages.publish_in.rate

Preprocessing:

- JSONPATH: $.message_stats.publish_in_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages publish_out

The count of messages published from this overview into queues.

DEPENDENT rabbitmq.overview.messages.publish_out

Preprocessing:

- JSONPATH: $.message_stats.publish_out

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages publish_out per second

The rate of messages (per second) published from this overview into queues.

DEPENDENT rabbitmq.overview.messages.publish_out.rate

Preprocessing:

- JSONPATH: $.message_stats.publish_out_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages returned unroutable

The count of messages returned to a publisher as unroutable.

DEPENDENT rabbitmq.overview.messages.return_unroutable

Preprocessing:

- JSONPATH: $.message_stats.return_unroutable

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages returned unroutable per second

The rate of messages (per second) returned to a publisher as unroutable.

DEPENDENT rabbitmq.overview.messages.return_unroutable.rate

Preprocessing:

- JSONPATH: $.message_stats.return_unroutable_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages returned redeliver

The count of subset of messages in the deliver_get, which had the redelivered flag set.

DEPENDENT rabbitmq.overview.messages.redeliver

Preprocessing:

- JSONPATH: $.message_stats.redeliver

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Messages returned redeliver per second

The rate of subset of messages (per second) in the deliver_get, which had the redelivered flag set.

DEPENDENT rabbitmq.overview.messages.redeliver.rate

Preprocessing:

- JSONPATH: $.message_stats.redeliver_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Healthcheck: alarms in effect in the cluster{#SINGLETON}

It responds with a status code200 OK if there are no alarms in effect in the cluster. Otherwise, it responds with a status code 503 Service Unavailable.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/health/checks/alarms{#SINGLETON}"]

Preprocessing:

- REGEX: HTTP\/1\.1\b\s(\d+) \1

- JAVASCRIPT: switch(value){ case '200': return 1 case '503': return 0 default: 2}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages acknowledged

The number of messages delivered to clients and acknowledged.

DEPENDENT rabbitmq.exchange.messages.ack["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.ack

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages acknowledged per second

The rate of messages (per second) delivered to clients and acknowledged.

DEPENDENT rabbitmq.exchange.messages.ack.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.ack_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages confirmed

The count of confirmed messages.

DEPENDENT rabbitmq.exchange.messages.confirm["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.confirm

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages confirmed per second

The rate of messages confirmed per second.

DEPENDENT rabbitmq.exchange.messages.confirm.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.confirm_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages delivered

The sum of messages delivered to consumers: in acknowledgement mode and in no-acknowledgement mode; delivered to consumers in response to the basic.get: in acknowledgement mode and in no-acknowledgement mode.

DEPENDENT rabbitmq.exchange.messages.deliver_get["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.deliver_get

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages delivered per second

The rate of the sum of messages (per second) delivered to consumers: in acknowledgement mode and in no-acknowledgement mode; delivered to consumers in response to the basic.get: in acknowledgement mode and in no-acknowledgement mode.

DEPENDENT rabbitmq.exchange.messages.deliver_get.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.deliver_get_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages published

The count of published messages.

DEPENDENT rabbitmq.exchange.messages.publish["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages published per second

The rate of messages published per second.

DEPENDENT rabbitmq.exchange.messages.publish.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages publish_in

The count of messages published from the channels into this overview.

DEPENDENT rabbitmq.exchange.messages.publish_in["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish_in

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages publish_in per second

The rate of messages (per second) published from the channels into this overview.

DEPENDENT rabbitmq.exchange.messages.publish_in.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish_in_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages publish_out

The count of messages published from this overview into queues.

DEPENDENT rabbitmq.exchange.messages.publish_out["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish_out

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages publish_out per second

The rate of messages (per second) published from this overview into queues.

DEPENDENT rabbitmq.exchange.messages.publish_out.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish_out_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages returned unroutable

The count of messages returned to a publisher as unroutable.

DEPENDENT rabbitmq.exchange.messages.return_unroutable["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.return_unroutable

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages returned unroutable per second

The rate of messages (per second) returned to a publisher as unroutable.

DEPENDENT rabbitmq.exchange.messages.return_unroutable.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.return_unroutable_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Messages redelivered

The count of subset of messages in the deliver_get, which had the redelivered flag set.

DEPENDENT rabbitmq.exchange.messages.redeliver["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.redeliver

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Exchange {#VHOST}/{#EXCHANGE}/{#TYPE}: Messages redelivered per second

The rate of subset of messages (per second) in the deliver_get, which had the redelivered flag set.

DEPENDENT rabbitmq.exchange.messages.redeliver.rate["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $.message_stats.redeliver_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

Zabbix raw items RabbitMQ: Get overview

The HTTP API endpoint that returns cluster-wide metrics.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/overview"]

Preprocessing:

- REGEX: \n\s?\n(.*) \1

Zabbix raw items RabbitMQ: Get exchanges

The HTTP API endpoint that returns exchanges metrics.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/exchanges"]

Preprocessing:

- REGEX: \n\s?\n(.*) \1

Zabbix raw items RabbitMQ: Exchange [{#VHOST}][{#EXCHANGE}][{#TYPE}]: Get data

The HTTP API endpoint that returns [{#VHOST}][{#EXCHANGE}][{#TYPE}] exchanges metrics

DEPENDENT rabbitmq.get_exchanges["{#VHOST}/{#EXCHANGE}/{#TYPE}"]

Preprocessing:

- JSONPATH: $[?(@.name == "{#EXCHANGE}" && @.vhost == "{#VHOST}" && @.type =="{#TYPE}")].first()

Triggers

Name Description Expression Severity Dependencies and additional info
RabbitMQ: There are active alarms in the cluster

This is the default API endpoint path: http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html.

last(/RabbitMQ cluster by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/health/checks/alarms{#SINGLETON}"])=0 AVERAGE
RabbitMQ: Failed to fetch overview data

Zabbix has not received any data for items for the last 30 minutes.

nodata(/RabbitMQ cluster by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/overview"],30m)=1 WARNING

Manual close: YES

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.

RabbitMQ node by Zabbix agent

Overview

For Zabbix version: 6.2 and higher.

This template is developed to monitor RabbitMQ by Zabbix that works without any external scripts.

Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.

The template RabbitMQ Node — (Zabbix version >= 4.2) collects metrics by polling RabbitMQ management plugin with Zabbix agent.

It also uses Zabbix agent to collect RabbitMQ Linux process statistics, such as CPU usage, memory usage, and whether the process is running or not.

This template was tested on:

  • RabbitMQ, version 3.5.7, 3.7.17, 3.7.18, 3.7.7, 3.8.5, 3.8.12

Setup

Enable the RabbitMQ management plugin. See RabbitMQ documentation for the instructions.

Create a user to monitor the service:

rabbitmqctl add_user zbx_monitor <PASSWORD>
rabbitmqctl set_permissions  -p / zbx_monitor "" "" ".*"
rabbitmqctl set_user_tags zbx_monitor monitoring

A login name and password are also supported in macros functions:

  • {$RABBITMQ.API.USER}
  • {$RABBITMQ.API.PASSWORD}

If you use another API endpoint, then don't forget to change {$RABBITMQ.API.HOST} macro. Install and setup Zabbix agent.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$RABBITMQ.API.HOST}

The hostname or an IP of the API endpoint for the RabbitMQ.

127.0.0.1
{$RABBITMQ.API.PASSWORD}

-

zabbix
{$RABBITMQ.API.PORT}

The port of the RabbitMQ API endpoint.

15672
{$RABBITMQ.API.SCHEME}

The request scheme, which may be HTTP or HTTPS.

http
{$RABBITMQ.API.USER}

-

zbx_monitor
{$RABBITMQ.CLUSTER.NAME}

The name of the RabbitMQ cluster.

rabbit
{$RABBITMQ.LLD.FILTER.QUEUE.MATCHES}

This macro is used in the discovery of queues. It can be overridden at host level or its linked template level.

.*
{$RABBITMQ.LLD.FILTER.QUEUE.NOT_MATCHES}

This macro is used in the discovery of queues. It can be overridden at host level or its linked template level.

CHANGE_IF_NEEDED
{$RABBITMQ.MESSAGES.MAX.WARN}

The maximum number of messages in the queue for a trigger expression.

1000
{$RABBITMQ.PROCESS_NAME}

The name of the RabbitMQ server process.

beam.smp
{$RABBITMQ.RESPONSE_TIME.MAX.WARN}

The maximum response time by the RabbitMQ expressed in seconds for a trigger expression.

10

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Health Check 3.8.10+ discovery

Specific metrics for the versions: up to and including 3.8.10.

DEPENDENT rabbitmq.healthcheck.v3810.discovery

Preprocessing:

- JSONPATH: $.management_version

- JAVASCRIPT: The text is too long. Please see the template.

Health Check 3.8.9- discovery

Specific metrics for the versions: up to and including 3.8.4.

DEPENDENT rabbitmq.healthcheck.v389.discovery

Preprocessing:

- JSONPATH: $.management_version

- JAVASCRIPT: The text is too long. Please see the template.

Queues discovery

The metrics for an individual queue.

DEPENDENT rabbitmq.queues.discovery

Filter:

AND

- {#QUEUE} MATCHES_REGEX {$RABBITMQ.LLD.FILTER.QUEUE.MATCHES}

- {#QUEUE} NOT_MATCHES_REGEX {$RABBITMQ.LLD.FILTER.QUEUE.NOT_MATCHES}

- {#NODE} MATCHES_REGEX {$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}

RabbitMQ process discovery

The discovery of the RabbitMQ summary processes.

DEPENDENT rabbitmq.proc.discovery

Filter:

AND

- {#NAME} MATCHES_REGEX {$RABBITMQ.PROCESS_NAME}

Items collected

Group Name Description Type Key and additional info
RabbitMQ RabbitMQ: Get nodes

The HTTP API endpoint that returns metrics from the nodes.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/nodes/{$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}?memory=true"]

Preprocessing:

- REGEX: \n\s?\n(.*) \1

RabbitMQ RabbitMQ: Management plugin version

The version of the management plugin in use.

DEPENDENT rabbitmq.node.overview.management_version

Preprocessing:

- JSONPATH: $.management_version

- DISCARD_UNCHANGED_HEARTBEAT: 1d

RabbitMQ RabbitMQ: RabbitMQ version

The version of the RabbitMQ on the node, which processed this request.

DEPENDENT rabbitmq.node.overview.rabbitmq_version

Preprocessing:

- JSONPATH: $.rabbitmq_version

- DISCARD_UNCHANGED_HEARTBEAT: 1d

RabbitMQ RabbitMQ: Used file descriptors

The descriptors of the used file.

DEPENDENT rabbitmq.node.fd_used

Preprocessing:

- JSONPATH: $.fd_used

RabbitMQ RabbitMQ: Free disk space

The current free disk space.

DEPENDENT rabbitmq.node.disk_free

Preprocessing:

- JSONPATH: $.disk_free

RabbitMQ RabbitMQ: Memory used

The memory usage expressed in bytes.

DEPENDENT rabbitmq.node.mem_used

Preprocessing:

- JSONPATH: $.mem_used

RabbitMQ RabbitMQ: Memory limit

The memory usage with high watermark properties expressed in bytes.

DEPENDENT rabbitmq.node.mem_limit

Preprocessing:

- JSONPATH: $.mem_limit

RabbitMQ RabbitMQ: Disk free limit

The free space limit of a disk expressed in bytes.

DEPENDENT rabbitmq.node.disk_free_limit

Preprocessing:

- JSONPATH: $.disk_free_limit

RabbitMQ RabbitMQ: Runtime run queue

The average number of Erlang processes waiting to run.

DEPENDENT rabbitmq.node.run_queue

Preprocessing:

- JSONPATH: $.run_queue

RabbitMQ RabbitMQ: Sockets used

The number of file descriptors used as sockets.

DEPENDENT rabbitmq.node.sockets_used

Preprocessing:

- JSONPATH: $.sockets_used

RabbitMQ RabbitMQ: Sockets available

The file descriptors available for use as sockets.

DEPENDENT rabbitmq.node.sockets_total

Preprocessing:

- JSONPATH: $.sockets_total

RabbitMQ RabbitMQ: Number of network partitions

The number of network partitions, which this node "sees".

DEPENDENT rabbitmq.node.partitions

Preprocessing:

- JSONPATH: $.partitions

- JAVASCRIPT: return JSON.parse(value).length;

RabbitMQ RabbitMQ: Is running

It "sees" whether the node is running or not.

DEPENDENT rabbitmq.node.running

Preprocessing:

- JSONPATH: $.running

- BOOL_TO_DECIMAL

RabbitMQ RabbitMQ: Memory alarm

It checks whether the host has a memory alarm or not.

DEPENDENT rabbitmq.node.mem_alarm

Preprocessing:

- JSONPATH: $.mem_alarm

- BOOL_TO_DECIMAL

RabbitMQ RabbitMQ: Disk free alarm

It checks whether the node has a disk alarm or not.

DEPENDENT rabbitmq.node.disk_free_alarm

Preprocessing:

- JSONPATH: $.disk_free_alarm

- BOOL_TO_DECIMAL

RabbitMQ RabbitMQ: Uptime

Uptime expressed in milliseconds.

DEPENDENT rabbitmq.node.uptime

Preprocessing:

- JSONPATH: $.uptime

- MULTIPLIER: 0.001

RabbitMQ RabbitMQ: Get processes summary

The aggregated data of summary metrics for all processes.

ZABBIX_PASSIVE proc.get[,,,summary]
RabbitMQ RabbitMQ: Service ping

-

ZABBIX_PASSIVE net.tcp.service["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 10m

RabbitMQ RabbitMQ: Service response time

-

ZABBIX_PASSIVE net.tcp.service.perf["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"]
RabbitMQ RabbitMQ: Get process data

The summary metrics aggregated by a process {#NAME}.

DEPENDENT rabbitmq.proc.get[{#NAME}]

Preprocessing:

- JSONPATH: $.[?(@["name"]=="{#NAME}")].first()

⛔️ON_FAIL: CUSTOM_VALUE -> Failed to retrieve process {#NAME} data

RabbitMQ RabbitMQ: Number of running processes

The number of running processes {#NAME}.

DEPENDENT rabbitmq.proc.num[{#NAME}]

Preprocessing:

- JSONPATH: $.processes

⛔️ON_FAIL: CUSTOM_VALUE -> 0

- DISCARD_UNCHANGED_HEARTBEAT: 1h

RabbitMQ RabbitMQ: Memory usage (rss)

The summary of resident set size memory used by a process {#NAME} expressed in bytes.

DEPENDENT rabbitmq.proc.rss[{#NAME}]

Preprocessing:

- JSONPATH: $.rss

⛔️ON_FAIL: DISCARD_VALUE ->

RabbitMQ RabbitMQ: Memory usage (vsize)

The summary of virtual memory used by a process {#NAME} expressed in bytes.

DEPENDENT rabbitmq.proc.vmem[{#NAME}]

Preprocessing:

- JSONPATH: $.vsize

⛔️ON_FAIL: DISCARD_VALUE ->

RabbitMQ RabbitMQ: Memory usage, %

The percentage of real memory used by a process {#NAME}.

DEPENDENT rabbitmq.proc.pmem[{#NAME}]

Preprocessing:

- JSONPATH: $.pmem

⛔️ON_FAIL: DISCARD_VALUE ->

RabbitMQ RabbitMQ: CPU utilization

The percentage of the CPU utilization by a process {#NAME}.

ZABBIX_PASSIVE proc.cpu.util[{#NAME}]
RabbitMQ RabbitMQ: Healthcheck: local alarms in effect on this node{#SINGLETON}

It responds with a status code 200 OK if there are no local alarms in effect on the target node. Otherwise, it responds with a status code 503 Service Unavailable.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/local-alarms{#SINGLETON}"]

Preprocessing:

- REGEX: HTTP\/1\.1\b\s(\d+) \1

- JAVASCRIPT: switch(value){ case '200': return 1 case '503': return 0 default: 2}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

RabbitMQ RabbitMQ: Healthcheck: expiration date on the certificates{#SINGLETON}

It checks the expiration date on the certificates for every listener configured to use the Transport Layer Security (TLS). It responds with a status code 200 OK if all the certificates are valid (have not expired). Otherwise, it responds with a status code 503 Service Unavailable.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/certificate-expiration/1/months{#SINGLETON}"]

Preprocessing:

- REGEX: HTTP\/1\.1\b\s(\d+) \1

- JAVASCRIPT: switch(value){ case '200': return 1 case '503': return 0 default: 2}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

RabbitMQ RabbitMQ: Healthcheck: virtual hosts on this node{#SINGLETON}

It responds with It responds with a status code 200 OK if all virtual hosts are running on the target node. Otherwise it responds with a status code 503 Service Unavailable.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/virtual-hosts{#SINGLETON}"]

Preprocessing:

- REGEX: HTTP\/1\.1\b\s(\d+) \1

- JAVASCRIPT: switch(value){ case '200': return 1 case '503': return 0 default: 2}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

RabbitMQ RabbitMQ: Healthcheck: classic mirrored queues without synchronized mirrors online{#SINGLETON}

It checks if there are classic mirrored queues without synchronized mirrors online (queues that would potentially lose data if the target node is shut down). It responds with a status code 200 OK if there are no such classic mirrored queues. Otherwise, it responds with a status code 503 Service Unavailable.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-mirror-sync-critical{#SINGLETON}"]

Preprocessing:

- REGEX: HTTP\/1\.1\b\s(\d+) \1

- JAVASCRIPT: switch(value){ case '200': return 1 case '503': return 0 default: 2}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

RabbitMQ RabbitMQ: Healthcheck: queues with minimum online quorum{#SINGLETON}

It checks if there are quorum queues with minimum online quorum (queues that would lose their quorum and availability if the target node is shut down). It responds with a status code 200 OK if there are no such quorum queues. Otherwise, it responds with a status code 503 Service Unavailable.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-quorum-critical{#SINGLETON}"]

Preprocessing:

- REGEX: HTTP\/1\.1\b\s(\d+) \1

- JAVASCRIPT: switch(value){ case '200': return 1 case '503': return 0 default: 2}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

RabbitMQ RabbitMQ: Healthcheck{#SINGLETON}

It checks whether the RabbitMQ application is running; and whether the channels and queues can be listed successfully; and that no alarms are in effect.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/healthchecks/node{#SINGLETON}"]

Preprocessing:

- REGEX: \n\s?\n(.*) \1

- JSONPATH: $.status

- BOOL_TO_DECIMAL

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Get data

The HTTP API endpoint that returns [{#VHOST}][{#QUEUE}] queue metrics

DEPENDENT rabbitmq.get_exchanges["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $[?(@.name == "{#QUEUE}" && @.vhost == "{#VHOST}")].first()

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages

The count of total messages in the queue.

DEPENDENT rabbitmq.queue.messages["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.messages

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages per second

The count of total messages per second in the queue.

DEPENDENT rabbitmq.queue.messages.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.messages_details.rate

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Consumers

The number of consumers.

DEPENDENT rabbitmq.queue.consumers["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.consumers

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Memory

The bytes of memory consumed by the Erlang process associated with the queue, including stack, heap and internal structures.

DEPENDENT rabbitmq.queue.memory["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.memory

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages ready

The number of messages ready to be delivered to clients.

DEPENDENT rabbitmq.queue.messages_ready["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.messages_ready

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages ready per second

The number of messages per second ready to be delivered to clients.

DEPENDENT rabbitmq.queue.messages_ready.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.messages_ready_details.rate

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages unacknowledged

The number of messages delivered to clients but not yet acknowledged.

DEPENDENT rabbitmq.queue.messages_unacknowledged["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.messages_unacknowledged

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages unacknowledged per second

The number of messages per second delivered to clients but not yet acknowledged.

DEPENDENT rabbitmq.queue.messages_unacknowledged.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.messages_unacknowledged_details.rate

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages acknowledged

The number of messages delivered to clients and acknowledged.

DEPENDENT rabbitmq.queue.messages.ack["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.ack

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages acknowledged per second

The number of messages (per second) delivered to clients and acknowledged.

DEPENDENT rabbitmq.queue.messages.ack.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.ack_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages delivered

The count of messages delivered to consumers in acknowledgement mode.

DEPENDENT rabbitmq.queue.messages.deliver["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.deliver

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages delivered per second

The count of messages (per second) delivered to consumers in acknowledgement mode.

DEPENDENT rabbitmq.queue.messages.deliver.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.deliver_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Sum of messages delivered

The sum of messages delivered to consumers: in acknowledgement mode and in no-acknowledgement mode; delivered to consumers in response to basic.get: in acknowledgement mode and in no-acknowledgement mode.

DEPENDENT rabbitmq.queue.messages.deliver_get["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.deliver_get

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Sum of messages delivered per second

The rate of delivery per second. The sum of messages delivered (per second) to consumers: in acknowledgement mode and in no-acknowledgement mode; delivered to consumers in response to basic.get: in acknowledgement mode and in no-acknowledgement mode.

DEPENDENT rabbitmq.queue.messages.deliver_get.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.deliver_get_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages published

The count of published messages.

DEPENDENT rabbitmq.queue.messages.publish["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages published per second

The rate of published messages per second.

DEPENDENT rabbitmq.queue.messages.publish.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.publish_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages redelivered

The count of subset of messages in the deliver_get queue with the redelivered flag set.

DEPENDENT rabbitmq.queue.messages.redeliver["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.redeliver

⛔️ON_FAIL: CUSTOM_VALUE -> 0

RabbitMQ RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages redelivered per second

The rate of messages redelivered per second.

DEPENDENT rabbitmq.queue.messages.redeliver.rate["{#VHOST}/{#QUEUE}"]

Preprocessing:

- JSONPATH: $.message_stats.redeliver_details.rate

⛔️ON_FAIL: CUSTOM_VALUE -> 0

Zabbix raw items RabbitMQ: Get node overview

The HTTP API endpoint that returns cluster-wide metrics.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/overview"]

Preprocessing:

- REGEX: \n\s?\n(.*) \1

Zabbix raw items RabbitMQ: Get queues

The HTTP API endpoint that returns metrics of the queues metrics.

ZABBIX_PASSIVE web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/queues"]

Preprocessing:

- REGEX: \n\s?\n(.*) \1

Triggers

Name Description Expression Severity Dependencies and additional info
RabbitMQ: Version has changed

The RabbitMQ version has changed. Acknowledge (Ack) to close manually.

last(/RabbitMQ node by Zabbix agent/rabbitmq.node.overview.rabbitmq_version,#1)<>last(/RabbitMQ node by Zabbix agent/rabbitmq.node.overview.rabbitmq_version,#2) and length(last(/RabbitMQ node by Zabbix agent/rabbitmq.node.overview.rabbitmq_version))>0 INFO

Manual close: YES

RabbitMQ: Number of network partitions is too high

For more details see Detecting Network Partitions.

min(/RabbitMQ node by Zabbix agent/rabbitmq.node.partitions,5m)>0 WARNING
RabbitMQ: Memory alarm

For more details see Memory Alarms.

last(/RabbitMQ node by Zabbix agent/rabbitmq.node.mem_alarm)=1 AVERAGE
RabbitMQ: Free disk space alarm

For more details see Free Disk Space Alarms.

last(/RabbitMQ node by Zabbix agent/rabbitmq.node.disk_free_alarm)=1 AVERAGE
RabbitMQ: Host has been restarted

The host uptime is less than 10 minutes.

last(/RabbitMQ node by Zabbix agent/rabbitmq.node.uptime)<10m INFO

Manual close: YES

RabbitMQ: Process is not running

-

last(/RabbitMQ node by Zabbix agent/rabbitmq.proc.num[{#NAME}])=0 HIGH
RabbitMQ: Service is down

-

last(/RabbitMQ node by Zabbix agent/net.tcp.service["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"])=0 and last(/RabbitMQ node by Zabbix agent/rabbitmq.proc.num[{#NAME}])>0 AVERAGE

Manual close: YES

RabbitMQ: Failed to fetch nodes data

Zabbix has not received any data for items for the last 30 minutes.

nodata(/RabbitMQ node by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/nodes/{$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}?memory=true"],30m)=1 and last(/RabbitMQ node by Zabbix agent/rabbitmq.proc.num[{#NAME}])>0 WARNING

Manual close: YES

Depends on:

- RabbitMQ: Process is not running

RabbitMQ: Node is not running

The RabbitMQ node is not running.

max(/RabbitMQ node by Zabbix agent/rabbitmq.node.running,5m)=0 and last(/RabbitMQ node by Zabbix agent/rabbitmq.proc.num[{#NAME}])>0 AVERAGE

Depends on:

- RabbitMQ: Service is down

RabbitMQ: Service response time is too high

-

min(/RabbitMQ node by Zabbix agent/net.tcp.service.perf["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"],5m)>{$RABBITMQ.RESPONSE_TIME.MAX.WARN} and last(/RabbitMQ node by Zabbix agent/rabbitmq.proc.num[{#NAME}])>0 WARNING

Manual close: YES

Depends on:

- RabbitMQ: Service is down

RabbitMQ: There are active alarms in the node

It checks the active alarms in the nodes via API. This is the default API endpoint path: http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html.

last(/RabbitMQ node by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/local-alarms{#SINGLETON}"])=0 AVERAGE
RabbitMQ: There are valid TLS certificates expiring in the next month

It checks if there are valid TLS certificates expiring in the next month. This is the default API endpoint path: http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html.

last(/RabbitMQ node by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/certificate-expiration/1/months{#SINGLETON}"])=0 AVERAGE
RabbitMQ: There are not running virtual hosts

It checks if there are not running virtual hosts via API. This is the default API endpoint path: http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html.

last(/RabbitMQ node by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/virtual-hosts{#SINGLETON}"])=0 AVERAGE
RabbitMQ: There are queues that could potentially lose data if this node goes offline.

It checks whether there are queues that could potentially lose data if this node goes offline via API. This is the default API endpoint path: http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html.

last(/RabbitMQ node by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-mirror-sync-critical{#SINGLETON}"])=0 AVERAGE
RabbitMQ: There are queues that would lose their quorum and availability if this node is shut down.

It checks if there are queues that could potentially lose data if this node goes offline via API. This is the default API endpoint path: http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html.

last(/RabbitMQ node by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-quorum-critical{#SINGLETON}"])=0 AVERAGE
RabbitMQ: Node healthcheck failed

For more details see Health Checks.

last(/RabbitMQ node by Zabbix agent/web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/healthchecks/node{#SINGLETON}"])=0 AVERAGE
RabbitMQ: Too many messages in queue [{#VHOST}][{#QUEUE}]

-

min(/RabbitMQ node by Zabbix agent/rabbitmq.queue.messages["{#VHOST}/{#QUEUE}"],5m)>{$RABBITMQ.MESSAGES.MAX.WARN:"{#QUEUE}"} WARNING

Feedback

Please report any issues with the template at https://support.zabbix.com.

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums.

Articles and documentation

+ Propose new article

Nenašli jste integraci, kterou potřebujete?