29.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 в Нидерландах в рублях на счет российской компании. Оплата с помощью банковских карт, в том числе и картой МИР, банковского перевода и электронных денег.

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

16.01.2023

Миграция виртуальных серверов с oVirt на VMware

Разрабатываем и применяем удобную схему для быстрого перевода серверов с oVirt на VMware.

04.01.2023

Сбор логов при помощи Go

Делимся опытом решения задачи сбора логов при помощи Go

19.12.2022

Развертывание Windows UEFI с использованием Foreman

Как установить ОС Microsoft в режиме EFI с помощью сервиса Foreman и без использования инфраструктуры Microsoft.

30.11.2022

WindowsPE Live-CD в инфраструктуре Jenkins/Foreman

Устройство сборки WindowsPE-дистрибутива в Linux-инфраструктуре, автоматизация этого процесса с помощью Jenkins и разворачивание систем на базе MS Windows через этот хэлпер.

29.11.2022

Архитектура мониторинга Windows-инфраструктуры компании Hostkey

Как настроить мониторинг основных параметров серверов, которые работают на ОС Windows Server

HOSTKEY Выделенные серверы в Европе, России и США Готовые выделенные серверы и серверы индивидуальных конфигураций на базе процессоров AMD, Intel, карт GPU, Бесплатной защитой от DDoS -атак и безлимитный соединением на скорости 1 Гбит/с 30
4.3 48 48
Upload