HAProxy: как отключить логи для точки статистики

Вопрос или проблема

Я включаю статистику с помощью подобной конфигурации:

global
  log /var/run/log local0 info

defaults
  log global

listen stats
  bind *:9090
  stats enable
  stats auth secret:pass
  stats refresh 5s
  stats show-legends
  stats show-node
  stats uri /stats

Они работают, но теперь я хотел бы узнать, есть ли способ предотвратить запись логов статистики. В настоящее время в моих логах есть несколько строк, например:

Connect from x.x.x.x:33970 to y.y.y.y:9090 (stats/HTTP)

Есть ли идея, как предотвратить запись запросов статистики?

Я уже пробовал в определениях listen stats без успеха:

 http-request set-log-level silent

Я использую опцию dontlog-normal в конфигурации фронтенда – http://cbonte.github.io/haproxy-dconv/2.0/configuration.html#4-option%20dontlog-normal и больше не получаю записи в логах для /stats

frontend stats
     bind *:8404
     # Включить Prometheus Exporter
     http-request use-service prometheus-exporter if { path /metrics }
     stats enable
     stats uri /stats
     stats refresh 10s
     option dontlog-normal

Ответ или решение

Для отключения логирования запросов к статистическому интерфейсу HAProxy, вам следует использовать директиву option dontlog-normal в конфигурации вашего фрейта. Это позволит предотвратить запись обычных логов для определённых запросов, включая запросы к вашему статистическому интерфейсу.

Вот пример конфигурации, который вам может помочь:

global
  log /var/run/log local0 info

defaults
  log global

frontend stats
  bind *:9090
  # Включаем аутентификацию
  stats auth secret:pass
  stats refresh 5s
  stats show-legends
  stats show-node
  stats uri /stats
  # Отключаем обычные логи для этого интерфейса
  option dontlog-normal

# Пример секции listen, если она вам нужна
listen stats
  bind *:9090
  stats enable
  stats uri /stats
  stats refresh 5s
  stats auth secret:pass
  stats show-legends
  stats show-node
  option dontlog-normal

В этом примере вы сначала создаёте секцию frontend с именем stats, где устанавливается bind и другие параметры для статистического интерфейса. Ключевой момент здесь – использование option dontlog-normal, который предотвращает запись логов о стандартных HTTP-запросах, включая запросы к /stats.

Если вы хотите, чтобы статистика продолжала работать, но не захватывала запросы к ней в логи, этот подход решит вашу проблему. В результате вы не будете видеть такие строки в логах, как:

Connect from x.x.x.x:33970 to y.y.y.y:9090 (stats/HTTP)

Таким образом, с использованием option dontlog-normal можно эффективно управлять логированием для различных частей вашей конфигурации HAProxy.

Оцените материал
Добавить комментарий

Капча загружается...