Настройка передачи событий HAProxy

Чтобы настроить передачу событий HAProxy:

  1. Проверьте синтаксис в конфигурационном файле на наличие ошибок, выполнив команду:

    haproxy -c -V -f /etc/haproxy/haproxy.cfg

    Возможные сообщения при проверке конфигурационного файла

  2. Если проверка синтаксиса прошла успешно, выполните резервное копирование исходного конфигурационного файла с помощью следующей команды:

    sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy_backup.cfg

  3. Откройте конфигурационный файл haproxy.cfg, выполнив следующую команду:

    sudo vi /etc/haproxy/haproxy.cfg

    Дальнейшие шаги инструкции предполагают, что для всех групп серверов применяются единые параметры записи в журнал. В этом случае параметры записи в журнал указываются в секции global, а в секции defaults используется строка log global.

    Если требуется более детальная настройка записи в журнал, нужно удалить строку log global из секции defaults. Так как секции frontend, backend и listen по умолчанию наследуют параметры из секции defaults, это приведет к отключению глобальной записи в журнал. В таком случае необходимо определить параметры записи в журнал в каждой секции, добавив строку следующего вида:

    log <IP_адрес_коллектора_KUMA> [len <длина_в_байтах>] [format <формат_syslog_сообщения>] [sample <диапазоны>:<размер_выборки>] <facility> [<уровень> [<минимальный_уровень>]]

  4. В секции global укажите IP-адрес коллектора KUMA:

    log <IP-адрес_коллектора>:<порт>

  5. В секции global добавьте следующую строку для добавления имени хоста в заголовок syslog:

    log-send-hostname <имя_хоста>

  6. В секции defaults добавьте строку для использования глобальных параметров записи в журнал:

    log global

  7. В секции defaults укажите формат журналирования:
    • Для балансировщиков 4 уровня (TCP):

      option tcplog

      Пример секции defaults с настроенными параметрами

    • Для балансировщиков 7 уровня (HTTP):

      option httplog

      Пример секции defaults с настроенными параметрами

  8. Если требуется включить запись в журнал HTTP-заголовков запроса, добавьте в секцию frontend или listen строку:

    capture request header <имя_заголовка> len <длина_заголовка_в_байтах>

    Каждый заголовок необходимо указывать отдельной строкой, например:

    capture request header User-agent len 50

    capture request header Host len 30

    capture request header X-Forwarded-For len 15

  9. Если требуется включить запись в журнал HTTP-заголовков ответа, добавьте в секцию frontend или listen строку:

    capture response header <имя_заголовка> len <длина_заголовка_в_байтах>

    Каждый заголовок необходимо указывать отдельной строкой, например:

    capture response header User-agent len 50

    capture response header Host len 30

    capture response header X-Forwarded-For len 15

  10. Если требуется включить запись в журнал HTTP-cookie, добавьте в секцию frontend или listen строку:

    capture cookie <имя_cookie> len <размер_cookie_в_байтах>

    В журнал записывается только первый файл cookie с указанным именем.

  11. Проверьте синтаксис в конфигурационном файле на наличие ошибок с помощью команды haproxy -c -V -f /etc/haproxy/haproxy.cfg, как описано в пункте 1.
  12. Перезагрузите конфигурацию, выполнив следующую команду:

    sudo systemctl reload haproxy

  13. Проверьте, что балансировщик нагрузки HAProxy запущен и работает правильно, выполнив следующую команду:

    sudo systemctl status haproxy

Передача событий из HAProxy будет настроена.

В начало