Thank you for reading this post, don't forget to subscribe!
лог для haproxy включается следующим образом
добавляем следующий параметр:
cat /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-c 2 -r"
В конфиге rsyslog раскомментируем следующие параметры:
cat /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
local2.* /var/log/haproxy.log
в конфиг хапрокси /etc/haproxy/haproxy.cfg в раздел global добавляем:
log 127.0.0.1 local2
После чего рестартуем rsyslog и haproxy
systemctl restart haproxy
systemctl restart rsyslog
============================================
Логирование реального IP клиента в логе haproxy
схема такая клиент идёт на сервак nginx с него проксируется на haproxy с хапрокси летит дальше, и вот на сервере с haproxy в логах мне нужно увидеть реальный ip клиента
конфиг nginx:
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
cat /etc/nginx/conf.d/testru.conf server { listen 80; server_name test.ru; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-FORWARDED-PROTO https; proxy_set_header X-Real-IP $remote_addr; proxy_pass_request_headers on; proxy_pass http://10.242.144.143:9090; } } |
[/codesyntax]
конфиг хапрокси, во фронтенд добавляем строку:
capture request header X-Forwarded-For len 15
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
cat /etc/haproxy/haproxy.cfg global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats log 127.0.0.1 local2 defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend app_test bind *:9090 <strong>capture request header X-Forwarded-For len 15</strong> mode http default_backend app_test_backend backend app_test_backend mode http balance roundrobin server server1 10.242.144.150:8080 check port 8080 check inter 5000 |
[/codesyntax]
ну и в логах видим:
1 |
Jun 4 11:25:21 localhost haproxy[3334178]: 10.242.144.133:51042 [04/Jun/2020:11:25:21.673] app_test app_test_backend/server1 0/0/0/1/1 304 141 - - ---- 0/0/0/0/0 0/0 {<strong>100.234.9.8</strong>} "GET / HTTP/1.0" |
100.234.9.8 - мой реальный ip