HAProxy 로깅 관리
2806 단어 로그 구성haprxoyLinux 기술 문서
기록 로그는 오류를 배열하고 분석하는 데 관건적인 역할을 하기 때문에 본고는haproxy와 관련된 로그 관리와 설정을 소개할 것이다
2 로그 형식
로그 시스템은 글로벌 프로필에 설정됩니다. 독립된log 파일을 설정하는 것을 권장합니다. 형식은 다음과 같습니다.
log [len] [ []]
로그 기능 닫기
no log
주의: 기본적으로 이 컴퓨터로 보내는 로그 서버입니다. 장치는local의 로그에 기록됩니다.
원격 로그 서버에 설정해야 한다면 원격 로그 서버는 설정해야 합니다.facility가local2이라고 가정하면log 서버는 다음과 같이 설정합니다.
로그 설정 파일,/etc/rsyslog.conf
(1) local2.* /var/log/local2.log
(2) 모듈 2개 열기
$ModLoad imudp
$UDPServerRun 514
3 로그 관리
3.1 capture 구성
frontend 프로필에 특정 헤더 정보를 로그에 기록합니다. 요청과 응답 메시지의 차이가 있습니다.
요청과 응답 메시지의 쿠키를 포착하고 로그를 기록합니다
형식:capture cookie len
요청 메시지에 지정된 첫 번째 캡처 및 로그 기록
형식:capturequest header len
예:
capture request header X-Forwarded-For len 15
응답 메시지에 지정된 첫 번째 포획 및 로그 기록
형식:capture response header len
예:
capture response headerContent-length len 9
capture response header Location len 15
3.2 forwardform 구성
기본 RS 쪽은 프록시 서버의 IP를 볼 수 있습니다. 실제 클라이언트 IP가 아니라 HA의 헤더를 설정하고 RS 쪽의 http 설정을 변경해야 합니다.
기본 옵션에는 다음과 같은 설정이 있습니다. 다음 설정은 본 기기에서 보낸 것을 제외하고는 IP를 휴대하지 않습니다. 기본 forwardfor 옵션은expect127.0.0/8의 설정이 있기 때문입니다.
형식은 다음과 같습니다.
option forwardfor [ except ] [ header ] [ if-none ]
haproxy에서 백엔드 호스트로 보내는 요청 메시지에 "X-Forwarded-For"첫 번째 부분을 추가하고 그 값은 전방 클라이언트의 주소입니다.백엔드 마스터에게 실제 클라이언트 IP 전송
[except]: 여기에서 지정한 네트워크에 요청을 할 때 이 첫 번째 부분을 추가하지 않습니다. 예를 들어haproxy 자신이 있는 네트워크와 같습니다.
[header]: 기본 "X-Forwarded-For"대신 사용자 정의 첫 번째 이름을 사용합니다.
[if-none] 첫 번째가 없으면 기본값을 사용합니다.
예:
HA에 구성되어 있으며, 여기서 sunny-x-client는 사용자 정의 이름이며, RS 로그 형식에 따라
option forwardfor except 127.0.0.0/8 header sunny-x-client
RS에 설정, 로그 형식 변경, 기본값은 X-Forwarded-For입니다. 이 이름은 헤더 설정을 변경해서 변경합니다. 예를 들어 여기는 Sunny-x-client로 변경됩니다.
LogFormat "%h %l %u %t\"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\" \"%{sunny-x-client}i\"" combined
CustomLog logs/access_log combined
3.3 http-request 구성
백엔드log에 사용자가 요청한 프로토콜과 포트 (frontend 또는backend) 를 전달하여 사용자가 접근하는 포트 번호를 쉽게 볼 수 있습니다.다음 두 가지 방법 둘 중 하나를 선택하세요.
http-request set-header X-Forwarded-Port %[dst_port]http-request add-header X-Forwared-Proto https if {ssl_fc}
set-header 설정은 존재하면 원본 정보를 덮어씁니다. X-Forwarded-Port는 형식의 사용자 정의 이름입니다. 여기는 원본 포트에 따라 설정합니다. 예를 들어 원본 포트가 443이면 443으로 추가됩니다. HA가 요청을 받으면 HA가 백엔드 RS에 접근하는 포트 번호를 백엔드 서버로 전송합니다.
add-header는 원래 어떤 형식이 있든 없든 추가합니다. X-Forwared-Proto는 형식의 이름입니다. 로그에서 호출해야 할 이름을 정의합니다. 로그에 추가된 내용은 https입니다.
RS 정의 log
LogFormat "%h %l %u%t \"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\" \"%{X-Forwared-Proto} i\"" combined