Настройка передачи событий HAProxy
Чтобы настроить передачу событий HAProxy:
- Проверьте синтаксис в конфигурационном файле на наличие ошибок, выполнив команду:
haproxy -c -V -f /etc/haproxy/haproxy.cfg - Если проверка синтаксиса прошла успешно, выполните резервное копирование исходного конфигурационного файла с помощью следующей команды:
sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy_backup.cfg - Откройте конфигурационный файл 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> [<уровень> [<минимальный_уровень>]] - В секции
globalукажите IP-адрес коллектора KUMA:log <IP-адрес_коллектора>:<порт> - В секции
globalдобавьте следующую строку для добавления имени хоста в заголовок syslog:log-send-hostname <имя_хоста> - В секции
defaultsдобавьте строку для использования глобальных параметров записи в журнал:log global - В секции
defaultsукажите формат журналирования:- Для балансировщиков 4 уровня (TCP):
option tcplog - Для балансировщиков 7 уровня (HTTP):
option httplog
- Для балансировщиков 4 уровня (TCP):
- Если требуется включить запись в журнал HTTP-заголовков запроса, добавьте в секцию
frontendилиlistenстроку:capture request header <имя_заголовка> len <длина_заголовка_в_байтах>Каждый заголовок необходимо указывать отдельной строкой, например:
capture request header User-agent len 50capture request header Host len 30capture request header X-Forwarded-For len 15 - Если требуется включить запись в журнал HTTP-заголовков ответа, добавьте в секцию
frontendилиlistenстроку:capture response header <имя_заголовка> len <длина_заголовка_в_байтах>Каждый заголовок необходимо указывать отдельной строкой, например:
capture response header User-agent len 50capture response header Host len 30capture response header X-Forwarded-For len 15 - Если требуется включить запись в журнал HTTP-cookie, добавьте в секцию
frontendилиlistenстроку:capture cookie <имя_cookie> len <размер_cookie_в_байтах>В журнал записывается только первый файл cookie с указанным именем.
- Проверьте синтаксис в конфигурационном файле на наличие ошибок с помощью команды
haproxy -c -V -f /etc/haproxy/haproxy.cfg, как описано в пункте 1. - Перезагрузите конфигурацию, выполнив следующую команду:
sudo systemctl reload haproxy - Проверьте, что балансировщик нагрузки HAProxy запущен и работает правильно, выполнив следующую команду:
sudo systemctl status haproxy
Передача событий из HAProxy будет настроена.