Мониторинг HaProxy с помощью Proto Observability
Сбор метрик HaProxy
Сбор метрик HaProxy
Конфигурация HaProxy
Для HaProxy версии 2 и новее для сбора метрик рекомендуется использовать встроенный Prometheus эндпоинт в HaProxy. Для этого в конфигурации HaProxy (haproxy.conf
) добавьте следующее:
frontend stats
bind *:8404
option http-use-htx
http-request use-service prometheus-exporter if { path /metrics }
stats enable
stats uri /stats
stats refresh 10s
Для HaProxy ниже версии 2 для сбора метрик необходимо использовать встроеныый status url. Для этого в конфигурации HaProxy (haproxy.conf
) добавьте следующее:
listen stats
bind :9000
mode http
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /haproxy_stats
Конфигурация ProtoOBP агента
Если агент запускается в виде службы на хосте
- Укажите адрес
status
эндпоинта в файле конфигурации ProtoOBP агента (/etc/protoobp-agent/conf.d/haproxy.d/conf.yaml):
-
HaProxy версии 2 и новее:
init_config: instances: - use_openmetrics: true openmetrics_endpoint: http://localhost:8404/metrics
-
HaProxy версии < 2:
init_config: instances: - url: http://localhost/admin?stats
- Перезапустите ProtoOBP агента выполнив
systemctl restart protoobp-agent
Если агент запускается в виде Docker контейнера
-
Добавьте следующие лейблы к Docker контейнеру с HaProxy: В docker-compose.yaml
labels: com.protoobp.ad.check_names: '["haproxy"]' com.protoobp.ad.init_configs: "[{}]" com.protoobp.ad.instances: '[{"url": "https://%%host%%/admin?stats"}]'
или в Dockerfile
LABEL "com.protoobp.ad.check_names"='["haproxy"]' LABEL "com.protoobp.ad.init_configs"='[{}]' LABEL "com.protoobp.ad.instances"='[{"url": "https://%%host%%/admin?stats"}]'