RabbitMQ

Материал из Документация Ключ-АСТРОМ
Версия от 00:03, 29 сентября 2026; Azubarev (обсуждение | вклад) (Новая страница: «= RabbitMQ = Расширение предназначено для мониторинга кластеров RabbitMQ через Management HTTP API. Собираются показатели кластера, отдельных узлов, виртуальных хостов и очередей. Расширение также создаёт связанные сущности RabbitMQ и добавляет готовую обзорную панель....»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

RabbitMQ

Расширение предназначено для мониторинга кластеров RabbitMQ через Management HTTP API.

Собираются показатели кластера, отдельных узлов, виртуальных хостов и очередей. Расширение также создаёт связанные сущности RabbitMQ и добавляет готовую обзорную панель.


Идентификатор расширения: ru.ruscomtech.rabbitmq

Возможности

  • мониторинг кластера RabbitMQ;
  • мониторинг состояния узлов;
  • контроль количества и состояния сообщений;
  • мониторинг очередей и потребителей;
  • сбор статистики публикации, доставки и повторной доставки сообщений;
  • контроль памяти, дискового пространства, файловых дескрипторов и сокетов;
  • мониторинг виртуальных хостов;
  • фильтрация собираемых очередей по регулярным выражениям;
  • резервный список адресов RabbitMQ Management API;
  • использование Credential Vault;
  • локальный или удалённый сбор данных.

Требования

  • На RabbitMQ должен быть включён плагин rabbitmq_management.
  • HTTP API должен быть доступен с сервера EEC или с хоста, на котором выполняется локальный сбор.
  • Пользователь должен иметь тег monitoring и доступ к необходимым виртуальным хостам.
  • Для аутентификации используется имя пользователя и пароль.
  • Если RabbitMQ использует HTTPS, сертификат должен быть доверенным либо необходимо указать файл внутреннего центра сертификации.

Расширение использует следующие методы Management API:

  • /api/overview;
  • /api/queues;
  • /api/nodes;
  • /api/vhosts.

Подготовка RabbitMQ

Включите Management Plugin:

rabbitmq-plugins enable rabbitmq_management

По умолчанию Management API использует следующие порты:

  • 15672 — HTTP;
  • 15671 — HTTPS, если настроен TLS.

Создание пользователя мониторинга

Пример создания отдельного пользователя:

rabbitmqctl add_user monitoring <password>
rabbitmqctl set_user_tags monitoring monitoring
rabbitmqctl set_permissions --vhost / monitoring "^$" "^$" "^$"

Для мониторинга нескольких виртуальных хостов выполните команду set_permissions для каждого из них.

Проверьте доступ к Management API:

curl -u monitoring http://rabbitmq-01.example.local:15672/api/overview

Команда запросит пароль пользователя и должна вернуть описание кластера в формате JSON.

Важно: расширение использует Basic-аутентификацию. Если в RabbitMQ установлено management.disable_basic_auth = true, созданная конфигурация не сможет подключиться.

Установка расширения

  1. Скачайте пакет расширения.
  2. В интерфейсе Ключ-АСТРОМ откройте раздел управления расширениями.
  3. Загрузите архив расширения.
  4. Откройте расширение ru.ruscomtech.rabbitmq.
  5. Добавьте конфигурацию мониторинга.
  6. Выберите локальный или удалённый режим выполнения.
  7. Для удалённого режима выберите группу EEC.
  8. Заполните параметры подключения.
  9. Выберите необходимые наборы функций.
  10. Сохраните и активируйте конфигурацию.

Настройка подключения

Параметр Описание
Cluster name Понятное уникальное имя кластера. Оно используется в измерениях метрик и идентификаторах сущностей.
Nodes Один или несколько базовых URL RabbitMQ Management API. Путь /api добавлять не нужно.
Use Credential Vault Включите, если имя пользователя и пароль должны храниться в Credential Vault.
Select vault credentials Учётная запись типа username/password с областью Extension authentication.
Username Пользователь RabbitMQ с тегом monitoring. Заполняется, если Credential Vault не используется.
Password Пароль пользователя RabbitMQ. Заполняется, если Credential Vault не используется.
Queues to monitor Список регулярных выражений для выбора очередей.
Verify Server Certificate Проверка TLS-сертификата RabbitMQ.
CA Certificate Location Путь к файлу сертификата внутреннего центра сертификации.

Пример списка узлов:

https://rabbitmq-01.example.local:15671
https://rabbitmq-02.example.local:15671
https://rabbitmq-03.example.local:15671

Расширение проверяет адреса по порядку и подключается к первому доступному. Для кластера можно также указать один адрес балансировщика нагрузки.

Файл, заданный в поле «CA Certificate Location», должен существовать на сервере, где выполняется расширение.

Фильтрация очередей

По умолчанию используется выражение:

.*

Оно включает все доступные очереди.

Пример мониторинга только очередей с префиксом orders.:

^orders\.

Пример выбора нескольких отдельных очередей:

^orders\.created$
^orders\.processed$
^payments$

При большом количестве очередей рекомендуется ограничивать список: каждая очередь создаёт отдельную сущность и набор временных рядов.

Наборы функций

Набор Назначение
Cluster Общие показатели кластера: сообщения, соединения, каналы, очереди, обменники, потребители и скорость обработки сообщений.
Node Ресурсы узлов: память, диск, файловые дескрипторы, сокеты, сетевые разделения, время работы и сборка мусора.
Queue Размер и состояние очередей, память, потребители, публикация, доставка, повторная доставка и сообщения без маршрута.
Virtual Host Сообщения и сетевой трафик виртуальных хостов.

Для базового контроля рекомендуется включить Cluster и Node. Набор Queue следует включать с учётом количества очередей.

Основные метрики

Группа Метрики Назначение
Кластер rabbitmq.cluster.messages

rabbitmq.cluster.messages_ready
rabbitmq.cluster.messages_unacknowledged
rabbitmq.cluster.connections
rabbitmq.cluster.consumers
rabbitmq.cluster.publish.count
rabbitmq.cluster.deliver_get.count

Состояние очередей и общий поток сообщений в кластере.
Узлы rabbitmq.node.mem_used

rabbitmq.node.mem_limit
rabbitmq.node.disk_free
rabbitmq.node.fd_used
rabbitmq.node.sockets_used
rabbitmq.node.partitions
rabbitmq.node.uptime

Использование ресурсов и состояние отдельных узлов.
Очереди rabbitmq.queue.messages

rabbitmq.queue.messages_ready
rabbitmq.queue.messages_unacknowledged
rabbitmq.queue.consumers
rabbitmq.queue.publish.count
rabbitmq.queue.redeliver.count
rabbitmq.queue.drop_unroutable.count

Размер очередей, потребители и движение сообщений.
Виртуальные хосты rabbitmq.vhost.messages

rabbitmq.vhost.messages_ready
rabbitmq.vhost.messages_unacknowledged
rabbitmq.vhost.recv_oct.count
rabbitmq.vhost.send_oct.count

Количество сообщений и сетевой трафик виртуальных хостов.

Сущности и топология

Расширение создаёт следующие сущности:

  • Cluster — кластер RabbitMQ;
  • Node — узел кластера;
  • Virtual Host — виртуальный хост;
  • Queue — очередь RabbitMQ.

Между сущностями создаются связи:

  • Node работает в Cluster;
  • Virtual Host относится к Cluster;
  • Queue работает на Node;
  • Queue относится к Virtual Host.

При наличии подходящего IP-адреса узел RabbitMQ связывается с соответствующим хостом Ключ-АСТРОМ.

Обзорная панель

В состав расширения входит готовая обзорная панель RabbitMQ. Она отображает:

  • количество кластеров, узлов, виртуальных хостов и очередей;
  • готовые и неподтверждённые сообщения;
  • публикацию и доставку сообщений;
  • соединения и потребителей;
  • использование памяти и дискового пространства;
  • состояние отдельных очередей.

Расширение также добавляет страницы сущностей для кластеров, узлов, виртуальных хостов и очередей.

Проверка работы

После активации конфигурации убедитесь, что:

  • проверка подключения завершается успешно;
  • выбранный адрес Management API доступен с EEC или контролируемого хоста;
  • пользователь получает ответы от /api/overview, /api/nodes, /api/vhosts и /api/queues;
  • появляются метрики rabbitmq.cluster.*;
  • создаётся сущность RabbitMQ Cluster;
  • при включённых наборах появляются Node, Virtual Host и Queue;
  • данные отображаются на обзорной панели.

Если кластерные метрики поступают, но очереди отсутствуют, проверьте права пользователя на виртуальные хосты и выражения в поле «Queues to monitor».

История изменений

Версия Изменения
2.1.5
  • Добавлен сбор данных через RabbitMQ Management HTTP API.
  • Добавлены наборы Cluster, Node, Queue и Virtual Host.
  • Добавлены резервные адреса узлов и поддержка Credential Vault.
  • Добавлены сущности RabbitMQ и связи между ними.
  • Добавлена готовая обзорная панель.