1 | initial version |
To establish a customized trigger for RabbitMQ queues in Zabbix, follow these steps:
UserParameter=rabbitmq.queue.discovery[*],sudo /etc/zabbix/scripts/rabbitmq-discovery.sh queue $1
UserParameter=rabbitmq.queue.items[*],sudo /etc/zabbix/scripts/rabbitmq-items.sh queue "$1" "$2"
rabbitmq-discovery.sh
script:#!/bin/bash
queues=$(sudo rabbitmqctl list_queues -q | awk '{ print $1 }')
echo -n '{"data":['
for q in $queues; do
echo -n "{\"{#QUEUE}\":\"$q\"},"
done | sed -e 's:\},$:\}:'
echo -n ']}'
rabbitmq-items.sh
script:#!/bin/bash
queue="$1"
item="$2"
case "$item" in
messages)
sudo rabbitmqctl list_queues -p / | grep "^$queue\s" | awk '{ print $2 }'
;;
consumers)
sudo rabbitmqctl list_queues -p / | grep "^$queue\s" | awk '{ print $1 }'
;;
*)
echo "Unknown item: $item"
exit 1
;;
esac