Перейти к содержимому
Перейти к основному содержимому

Мониторинг HAProxy

Агент снимает метрики HAProxy со стандартного CSV-эндпоинта статистики: статус бэкендов, текущие сессии и трафик по каждой паре proxy/server. Логи HAProxy можно собирать файловым источником, но специализированного парсера для его формата нет — используйте JSON-лог на стороне HAProxy или plaintext.

Предварительные требования

  • Агент Flaree установлен на том же хосте, что и HAProxy.

  • В haproxy.cfg включён HTTP-эндпоинт статистики на loopback:

    frontend stats
    bind 127.0.0.1:8404
    stats enable
    stats uri /stats
  • После правки конфига HAProxy перезагружен (systemctl reload haproxy).

Минимальная конфигурация

Источник метрик настраивается в дашборде: Агенты → ваш агент → Источники метрик, тип haproxy-stats, параметр url — CSV-вариант эндпоинта:

{ "url": "http://127.0.0.1:8404/stats;csv" }

Поле url обязательно — без него источник не пройдёт валидацию.

Полная конфигурация

Какие метрики отдаёт источник (лейблы proxy и server из колонок pxname/svname):

МетрикаОписание
haproxy.up1, если статус строки UP, иначе 0.
haproxy.sessions_currentТекущие сессии (scur).
haproxy.bytes_in_totalПринятые байты (bin).
haproxy.bytes_out_totalОтправленные байты (bout).

Сбор логов: встроенные парсеры покрывают json, logfmt, nginx combined и apache common — формат HAProxy httplog среди них отсутствует. Честный вариант: настройте JSON-лог в HAProxy ≥ 2.6 (log-format-sd или JSON-шаблон в log-format) и подключите файл источником типа File с форматом Auto. Без JSON строки придут как plaintext: алерты по подстроке работать будут, разбор по полям — нет.

Проверка работы

  • Убедитесь, что CSV-эндпоинт отвечает с хоста агента.
  • Проверьте, что HAProxy активен и таблица статистики содержит ваши бэкенды.
  • В дашборде метрики haproxy.* появляются в списке доступных для привязки в течение пары минут.
curl -s 'http://127.0.0.1:8404/stats;csv' | head -n 3
# # pxname,svname,qcur,qmax,scur,...

systemctl status haproxy --no-pager

Troubleshooting

  • Метрики не появляются — чек-лист нет данных.
  • Эндпоинт отвечает HTML вместо CSV — забыт суффикс ;csv в url.
  • haproxy.up равен 0 при живом бэкенде — health-check самого HAProxy помечает сервер как DOWN; смотрите check-настройки в haproxy.cfg.
подсказка

Держите эндпоинт статистики на loopback. Публичный /stats раскрывает топологию бэкендов и счётчики трафика.

Связанные страницы: Nginx · сбор логов · привязка метрик.