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

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

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

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

Интегрируем Varnish-экспортер с контейнер, в котором запускается Varnish
Для корректного сбора метрик Varnish-экспортером с Varnish-а-контенейр,  экспортер должен успешно выполнить команду prometheus_varnish_exporter -test, которая под капотом дергает команду Varnish-а для получения статистики — varnishstat

Для Varnish использовал версии 6.2, запускаю в docker-compose через сборку образа на основе Dockerfile
https://github.com/coopTilleuls/docker-varnish

В Dockerfile добавил установку varnish-экспортера

В docker-varnish-entrypoint файл,который запускается при старте контейнера через ENTRYPOINT, добавил команду по запуску varnish-exporter-а

Исходный файл docker-varnish-entrypoint взял отсюда
https://github.com/coopTilleuls/docker-varnish/blob/master/docker-varnish-entrypoint

В docker-compose.yml добавляем сервис varnish

Также здесь пробрасывается порт, на котором слушает запросы varnish-exporter наружу на, например, туннельный IP-адрес(10.130.14.2) и на порт, например,9131, чтобы Prometheus смог подключиться к varnish-экспортеру для сбора метрик с него.

Собираем и запускаем varnish c встроенным varnish-экспортером

C хоста, на котором запущен varnish проверяем доступность метрик

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

 

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

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

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

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

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

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

 

3.Импортирование/настройка dashboard Grafana для визуализации метрик
Импортируем дашбоард отсюда
https://github.com/jonnenauha/prometheus_varnish_exporter/blob/master/dashboards/jonnenauha/dashboard.json

Я изменил его под свои задачи
Varnish-dashboard.zip

 

 

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

Добавляем несколько правил для мониторинга Varnish показателей
1.Запущен ли Varnish(varnish_is_running)
2.Количество недоступных бакендов выше допустимого значения(varnish_number_backend_down
3.Увеличение количества клиентских подключений к Varnish (varnish_high_number_client/frontend_connections)
4.Увеличение количества подключений к backend-ам Varnish-а (varnish_high_number_backend_connections)
5.Коэффициет кеширования меньше допустимого значения(varnish_cache_hit_rate)

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

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

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

 

Источник:
https://github.com/jonnenauha/prometheus_varnish_exporter
https://github.com/jonnenauha/prometheus_varnish_exporter/blob/master/dashboards/jonnenauha/dashboard.json

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

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

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