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, созданная конфигурация не сможет подключиться.
Установка расширения
- Скачайте пакет расширения.
- В интерфейсе Ключ-АСТРОМ откройте раздел управления расширениями.
- Загрузите архив расширения.
- Откройте расширение
ru.ruscomtech.rabbitmq. - Добавьте конфигурацию мониторинга.
- Выберите локальный или удалённый режим выполнения.
- Для удалённого режима выберите группу EEC.
- Заполните параметры подключения.
- Выберите необходимые наборы функций.
- Сохраните и активируйте конфигурацию.
Настройка подключения
| Параметр | Описание |
|---|---|
| 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.node.mem_used
|
Использование ресурсов и состояние отдельных узлов. |
| Очереди | rabbitmq.queue.messages
|
Размер очередей, потребители и движение сообщений. |
| Виртуальные хосты | rabbitmq.vhost.messages
|
Количество сообщений и сетевой трафик виртуальных хостов. |
Сущности и топология
Расширение создаёт следующие сущности:
- 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 |
|