Мониторинг Beanstalkd в Prometheus

Алгоритм действий состоит из следующих шагов:

1.Запуск Beanstalkd-экспортера для сбора метрик с Beanstalkd и отдачи их Prometheus-у
2.Настройка Prometheus-а для сбора метрик с Beanstalkd-экспортера
3.Импортирование/настройка dashboard Grafana для визуализации метрик
4.Настрйка правил Prometheus для мониторинга Beanstalkd показателей

 

1.Запуск Beanstalkd-экспортера для сбора метрик с Beanstalkd и отдачи их Prometheus-у

Скачиваем репозитарий,который содержит Dockerfile для сборки образа, из которого запускается контейнер

Если не используется docker-compose

Параметры,которые используются для запуска beanstalkd

– адрес и порт, на котором будут доступны метрики с beanstalkd-экспортера — забиндим порт(8080) на всех интерфейсах(0.0.0.0),чтобы можно было пробросить этот порт(8080) на хост на порт,например, 9127 (по дефолту используется «:8080»)

— количество параллельных воркеров используемых для получения статистики с очередей(tubes). Это значение я установил равным количество очередей(в данном случае — 13) (по дефолту используется 1)

— количество миллисекунд между проверками очередей( по умолчанию 5000). Я уменьшил дефолтное значение в 10 раз для того,чтобы проверка занимала меньше времени.

Также здесь пробрасывается порт,на котором слушает запросы beanstalkd-exporter наружу на, например, туннельный IP-адрес(10.102.90.1) и на порт, например,9127, чтобы Prometheus смог подключиться к с beanstalkd-экспортеру для сбора метрик с него. Порт внутри контейнера, на котором запущен beanstalkd-экспортер — 8080

Если используется docker-compose

Проверка синтаксиса docker-compose-файла

Создание и запуск beanstalkd-exporter контейнера

Проверяем наличие запущенного beanstalkd-exporter контейнера, который будет собирать метрики с beanstalkd-сервера

С хоста, на котором запущен beanstalkd-контейнер проверяем доступность метрик с beanstalkd-экспортера

Список показателей достаточно длинный, поэтому просто вывел их количество

С мониторинг хоста

Получаем такой же успешный ответ

 

2.Настройка Prometheus-а для сбора метрик с Beanstalkd-экспортера

Добавляем beanstalkd-экпортер в service discovery файл

Подключаем этот service discovery файл в Prometheus

Проверка синтаксиса конфиг.файла Prometheus и файлов с правилами

Перечитываем конф.файл Prometheus

После чего проверяем в Prometheus наличие новой цели для мониторинга

 

3.Импортирование/настройка dashboard Grafana для визуализации метрик
Готовый dashboard на сайте Grafana на момент настройки я не нашел, поэтому создал свой dashboard
Beanstalkd-dashboard.zip

 

4.Настройка правил Prometheus для мониторинга Beanstalkd показателей

Добавляем несколько правил для мониторинга Beanstalkd показателей

1.Количество воркеров(потребителей) меньше необходимого значения (beanstalkd_workers_count)
2.Количество сообщений/задач в очереди READY больше определенного значения (beanstalkd_jobs_ready_count)
3.Количество сообщений/задач в очереди RESERVED больше определенного значения (beanstalkd_jobs_reserved_count)
4.Количество сообщений/задач в очереди DELAYED больше определенного значения (beanstalkd_jobs_delayed_count)
5.Количество сообщений/задач в очереди URGENT больше определенного значения (beanstalkd_jobs_urgent_count)
6.Количество сообщений/задач в очереди BURIED больше определенного значения (beanstalkd_jobs_buried_count)

Проверка синтаксиса конфиг.файла Prometheus и файлов с правилами

Перечитываем конф.файл Prometheus

После чего в Prometheus→Alerts появляются добавленные правила

 

Источник:
https://github.com/messagebird/beanstalkd_exporter

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

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

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