Мониторинг RabbitMQ в Zabbix

Мониторинг очередей, сообщений в очередях и серверных показателей(файловых дескрипторов, памяти, количества сокетов, дискового пространства) с помощью шаблона и скриптов
https://github.com/jasonmcintosh/rabbitmq-zabbix.git

Используется API для RabbitMQ, который становится доступным после установки RabbitMQ-плагина
Включаем плагин для WEB-интерфейса

После чего WEB-интерфейс RabbitMQ доступен по адресу
http://RabbitmQ-server:15672

1.Склонируем репозитарий, зайдем внутрь репозитария, скопируем рекурсивно каталог scripts/rabbitmq в /etc/zabbix/scripts/, скопируем файл zabbix_agentd.d/zabbix-rabbitmq.conf в
/etc/zabbix/zabbix_agentd.d/

 

2.На одном из RabbitMQ-серверов создаем zabbix-пользователя(т.к. два RabbitMQ-сервера в кластере,то эти данные автоматически реплицируются на второй сервер)

Создаем файл с настройками для аутентификации в RabbitMQ

Если не указывать фильтры(параметр FILTER),то дискавери будет обнаруживать и мониторить все очереди.
Например, в данном примере будут обнаруживаться и мониториться только очереди имеющие флаг durable и только в вирт.хостах myvhost1, myvhost2

3.Импортируем шаблон, добавляем шаблон к RabbitMQ-серверу
В шаблоне указаны макросы на кол-во сообщений в очереди для уровня важности Critical(200000) и Warning(100000)

Измените значения этих макросов для своих задач(например, у меня 1000 и 500)

В логах проверяем наличие ошибок/кода ответа

Для дебага устанавливаем уровень логирования DEBUG в файле /etc/zabbix/scripts/rabbitmq/.rab.auth
LOGLEVEL=DEBUG

Настройка ротации файла /var/log/zabbix/rabbitmq_zabbix.log
В Logrotate в файл, в котором настроена ротация zabbix-agentd.log файла, добавляем ротацию
файла rabbitmq_zabbix.log

Источник:
https://github.com/jasonmcintosh/rabbitmq-zabbix

 

Мониторинг состояния RabbitMQ-кластера и статуса health-проверки ноды

На RabbitMQ-серверах

1. Создаем скрипт

В скрипте необходимо изменить имена RabbitMQ-серверов, как они выглядят в выводе команды

Например, в данном случае

Имена rabbitmq-серверов в кластере app01 и app02
Соответственно в файле /usr/local/scripts/zabbix_sender_rabbitmq.sh эти значение указаны в переменных

Если нод в кластере больше двух, то необходимо добавить дополнительные переменные RABBITMQ_SERVER_0X и ввести их в проверку в строке проверки состояния кластера

 

2.Устанавливаем права, владельца/группу на скрипт /usr/local/scripts/zabbix_sender_rabbitmq.sh

 

3.Запускаем скрипт вручную для проверки

 

4. Скачиваем, распаковываем, импортируем шаблон, добавляем шаблон к RabbitMQ-серверам

rabbitmq_zabbix_template

В шаблоне присутствует 4 триггера

 

5.Добавляем в крон задание на ежеминутное выполнение

Через минуту проверем данные в Monitoring->Latest Data-> фильтруя по имени хоста и приложению rabbitmq

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика