Мониторинг ICMP-доступности хоста в Prometheus

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

1.Настройка конфигурационного файла Blackbox-экспортера на поддержку icmp-проверки
2.Настройка Prometheus-а для подключения и поддержки Blackbox-экспортера
3.Настрйка правил Prometheus для мониторинга ICMP-доступности хоста

 

1.Настройка конфигурационного файла Blackbox-экспортера на поддержку icmp-проверки

Определяем модуль с именем icmp-general.
Время проверки — до 5 секунд
Предпочитаемый IP-протокол для проверки ipv4 (чтобы не использовался ipv6)

 

2.Настройка Prometheus-а для подключения и поддержки Blackbox-экспортера

Определение конетйнера blackbox-exporter в docker-compose.yml

Конфигурационный файл blackbox-exporter-а монтируется как volume для возможности его изменения и применения новых настроек без пересборки контейнера
Значение переменных определяющих размер резервируемой и максимально доступной памяти для контейнера, а также версию/таг образа, вынесем в файл с переменными окружения .env, который читает docker-compose

В конфигурационном файле prometheusопределяем цели(хосты), доступность которых по icmp-протоколу требуется проверять
Название модуля(icmp-general) должно совпадать с именем модуля, указанным в конфигурационном файле blackbox-экспортера — blackbox.yml (см.пункт 1)
За счет переназначения меток в подразделе relabel_configs значение поле instance будет равно значению поля addess(а address -э то те имена хостов/IP-адреса, которые указаны в параметре targets)

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

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

Создаем и запускаем blackbox-exporter, проверяем корректность его запуска

Логи контейнера blackbox-exporter

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

 

3.Настройка правил Prometheus для мониторинга ICMP-доступности хоста

Добавляем два правила для мониторинга ICMP-доступности хоста
1.Хост не доступен по ICMP-протоколу вообще(т.е нет ответа в течение отведенного в проверке времени выполнения — в нашем случае 5 секунд (параметр timeout в конфигурационном файле Blackbox-экспортера))
2.Время ответа от сервера слишком долгое — более 1-й секунды
Здесь суммируется все время выполнения разименования хоста(resolve), установки соединения(setup) и непосредственно время между отправкой запроса и получением ответа(rtt)

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

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

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

При изменении конфигурационного файла blackbox-exporter-а blackbox.yml для применения новых настроек достаточно послать POST запрос на перечитывание своего конф.файл blacbox-exporter контейнеру. Если в этом файле будут ошибки,то изменения не применяются и соответствующая ошибка будет в выводе такого POST-запроса
Например, это можно сделать из любого контейнера, который находится в одной docker-сети с blackbox-exorter-контейнером и у которого установлен curl
Например, внутри контейнера с grafana выполним команду по перезагруки blackbox-exporter

 

Источник:
https://github.com/prometheus/blackbox_exporter
https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md

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

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

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