본문 바로가기

Linux Distributions

HAProxy 로깅을 설정하고 rsyslog를 사용하여 로그를 원격 서버로 전송하는 방법

728x90
반응형

HAProxy 로깅을 설정하고 rsyslog를 사용하여 로그를 원격 서버로 전송하는 방법

HAProxy는 로그를 로컬 파일로 기록하고, rsyslog를 사용하여 해당 로그 파일을 원격 로그 서버로 전송합니다.

단계 1: HAProxy 로깅 설정

1. HAProxy 구성 파일(/etc/haproxy/haproxy.cfg)을 엽니다.

 

2. 로깅 설정을 추가합니다. 예시에서는 HAProxy 로그를 /var/log/haproxy.log 파일에 저장하도록 설정합니다.

# 로그 형식 정의
log-format %ci:%cp\ [%t]\ %ft\ %b/%s\ %Tw/%Tc/%Tt\ %B\ %ts\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ {%hrl}\ {%hsl}\ %{+Q}r

# 로그 목적지 설정 (로그 파일로 저장)
log /var/log/haproxy.log format custom

# 로깅 옵션 설정
option log-separate-errors       # 에러 로그를 따로 기록
option dontlognull              # 요청이 null로 들어올 때 로그 기록 안함
option http-server-close        # 서버 응답 후 연결 닫기

 

3. HAProxy를 재시작하여 설정을 적용합니다.

sudo service haproxy restart

단계 2: rsyslog 설정

1. 원격 로그 서버에 rsyslog를 설치합니다.

sudo apt update
sudo apt install rsyslog

 

2. 로그를 수신할 rsyslog 서버의 설정 파일(/etc/rsyslog.conf 또는 /etc/rsyslog.d/remote.conf)을 엽니다.

sudo vim /etc/rsyslog.d/remote.conf

 

3. 다음 라인을 추가하여 HAProxy 로그를 저장할 디렉토리를 생성하고, 해당 디렉토리에 로그를 저장하도록 설정합니다.

# 로그 저장할 디렉토리 생성
$FileCreateMode 0644
$DirCreateMode 0755
$FileOwner syslog
$FileGroup adm

# HAProxy 로그를 저장할 디렉토리 설정
$template HAProxyLog,"/var/log/haproxy/haproxy.log"
if $programname startswith 'haproxy' then -?HAProxyLog
& stop

 

4. rsyslog를 재시작하여 설정을 적용합니다.

sudo systemctl restart rsyslog

단계 3: 원격 로그 서버의 방화벽 설정

원격 로그 서버에서는 UDP 포트 514를 수신하도록 방화벽 설정을 허용해야 합니다.

 

추가 정보:

  • 로그를 원격 서버로 보내기 위해 HAProxy와 rsyslog 간에 로그를 전송하는 프로토콜로는 UDP를 사용하였습니다. 보안을 강화하려면 TCP와 TLS를 사용하여 로그를 전송할 수도 있습니다. 이 경우, rsyslog의 설정을 변경하여 TCP와 TLS를 사용하도록 구성해야 합니다.
  • 설정을 완료한 후, 원격 로그 서버에서는 /var/log/haproxy/haproxy.log 파일에 HAProxy 로그가 수신되는 것을 확인할 수 있습니다.

 

이제 위의 단계를 따라하면 HAProxy 로깅을 설정하고 rsyslog를 사용하여 로그를 원격 서버로 전송할 수 있습니다. 이를 통해 원격 로그 서버에서 HAProxy 로그를 중앙 집중화하여 모니터링하고 분석할 수 있습니다.

 

728x90
반응형