Мониторинг 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 агента

Если агент запускается в виде службы на хосте

  1. Укажите адрес 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
    
  1. Перезапустите ProtoOBP агента выполнив systemctl restart protoobp-agent

Если агент запускается в виде Docker контейнера

  1. Добавьте следующие лейблы к 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"}]'