30.11.2022

Использование брокера сообщений RabbitMQ для мониторинга с Prometheus и Grafana

server one
HOSTKEY
Арендуйте выделенные и виртуальные серверы с моментальным деплоем в надежных дата-центрах класса TIER III в Москве и Нидерландах. Принимаем оплату за услуги HOSTKEY в Нидерландах в рублях на счет российской компании. Оплата с помощью банковских карт, в том числе и картой МИР, банковского перевода и электронных денег.

Автор: Senior Devops. Ведущий специалист по инфраструктуре Hostkey Никита Зубарев

В прошлых статьях мы рассказывали об архитектуре ELK-RabbitMQ и сервисе Invapi, который тоже использует брокер сообщений для общения с бэкэндом. В любой отказоустойчивой архитектуре необходим правильный мониторинг со всеми нотификациям. Кроме того, требуется не только мониторить работу кластера RabbitMQ, но и собирать метрики, проверять количество непрочитанных сообщений. Эти данные могут своевременно определить сбой в работе consumer — пользовательском приложении, которое получает сообщения. С версии 3.8.0 RabbitMQ поставляется со встроенной поддержкой Prometheus и Grafana.

Поддержка сборщика метрик Prometheus поставляется в плагине rabbitmq_prometheus. Плагин предоставляет все показатели RabbitMQ на выделенном TCP-порту в текстовом формате Prometheus. Для активации на кластере выполняем:

rabbitmq-plugins enable rabbitmq_prometheus

Появится открытый порт:

http/promethe: 15692
us:

Проверяем метрику:

Добавляем конфигурацию для Prometheus и Alertmanager:

 - job_name: 'RABBIT MQ Prod NL'
	static_configs:
		- targets: ['rabbitnl-app01a.infra.hostkey.ru:15692','rabbitnl-app01b.infra.hostkey.ru:15692','rabbitnl-app01c.infra.hostkey.ru:15692']

Самое главное — целостность кластера и количество непрочитанных сообщений в очереди.

Если в очереди больше одного непрочитанного сообщения, отдаем алерт:

  - alert: rabbitmq_queue_messages
			expr: rabbitmq_queue_messages{job="RABBIT MQ Dev"} > 1
			for: 1m
			labels:
				severity: page
			annotations:
				summary: Critical rabbitmq_queue_messages
	 - alert: unacknowledged messages
			expr: rabbitmq_queue_messages_unacked{job="RABBIT MQ Prod NL"} > 1
			for: 1m
			labels:
				severity: page
			annotations:
				summary: Critical rabbitmq_queue_messages_unacked

Аналогично выставляем алерты на целостность кластера.

Как было рассказано в первой статье по мониторингу, в Grafana есть возможность импортирования дашборда, добавляем id 10991.

Отображаемые показатели:

  • Идентификация узла, в том числе версии RabbitMQ и Erlang/OTP.
  • Память узла и диск доступны до блокировки издателей (триггеры тревоги).
  • Доступны дескрипторы файлов узлов и сокеты TCP.
  • Готовые и ожидающие сообщения.
  • Частота входящих сообщений: опубликовано / перенаправлено в очереди / подтверждено / не подтверждено / возвращено / отброшено.
  • Оценка исходящего сообщения: доставлено с автоматическим или ручным подтверждением / подтверждено / доставлено повторно.
  • Операция опроса с автоматическим или ручным подтверждением, а также с пустыми операциями.
  • Очереди, в том числе скорость объявления и удаления.
  • Каналы, в том числе уровни открытия и закрытия.
  • Соединения, в том числе открытые и закрытые курсы.

При необходимости недостающие параметры можно добавить (как создавать шаблоны, расскажем в следующих статьях).

Таким образом, инструменты мониторинга RabbitMQ позволяют проверять общие показатели узла, а также ready и unacknowledged messages. Важным преимуществом нашего решения является многоаспектный и оперативный контроль состояния оборудования.

Арендуйте выделенные и виртуальные серверы с моментальным деплоем в надежных дата-центрах класса TIER III в Москве и Нидерландах. Принимаем оплату за услуги HOSTKEY в Нидерландах в рублях на счет российской компании. Оплата с помощью банковских карт, в том числе и картой МИР, банковского перевода и электронных денег.

Другие статьи

07.09.2026

Когда разработчики ленятся писать документацию: описываем клиентский API силами нейросетей

Ваша документация устаревает быстрее, чем вы успеваете писать код? Узнайте, как мы создали пайплайн из Python-скриптов и LLM, который автоматически обнаруживает изменения в PHP-контроллерах и обновляет документацию Invapi.

04.09.2026

Как собрать AI-контур на VPS: подписки ChatGPT и Claude, OmniRoute, LiteLLM и разработка без VPN

VPN приходится держать включённым на каждой машине, и он всё равно рвётся посреди работы. Сессия слетает, авторизацию приходится проходить заново, а иногда прилетает бан аккаунта, за который вы уже заплатили. Показываем альтернативу: один VPS со статическим IP, LiteLLM как единая точка входа ко всем моделям и OmniRoute для маршрутизации между провайдерами. Разбираем конфиги, подключение IDE и агентов.

25.08.2026

JupyterLab на GPU-сервере: полное руководство по настройке для команды в 2026 году

Пошаговое руководство по развертыванию JupyterLab на GPU-сервере. Настройка JupyterHub, драйверов NVIDIA, безопасности (Nginx/SSL), лимитов ресурсов и мониторинга.

09.08.2026

NVIDIA RTX PRO 5000 Blackwell с 72 Гб видеопамяти. Есть ли смысл переплачивать за «половинку» флагмана?

RTX PRO 5000 Blackwell на 72 Гб: золотая середина для локальных ИИ-моделей или переоцененный апгрейд? Разбираемся в нашем обзоре.

01.08.2026

Большие модели и цена миллиона токенов

Китайские модели дешевле или это ловушка? Разбираемся, как не переплачивать за токены и почему цена в прайсе — еще не вся правда о расходах на ИИ.

Upload