May 5, 2023

HAPROXY에 rsyslog 셋팅

HAPROXY에 rsyslog 셋팅

1. haproxy.cfg 의 수정

. . .
# 2) configure local2 events to go to the /var/log/haproxy.log
#   file. A line like the following can be added to
#   /etc/sysconfig/syslog
#
#    local2.*                       /var/log/haproxy.log
#
    #log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
. . .

log 127.0.0.1 local2 해당 내용을 주석 처리하고 다음의 내용을 추가한다.
log /dev/log local0

. . .
#    local2.*                       /var/log/haproxy.log
#
     #log         127.0.0.1 local2
     log         /dev/log local0

     chroot      /var/lib/haproxy
     pidfile     /var/run/haproxy.pid
. . .

2. dev 디렉토리의 생성

/var/lib/haproxy/dev 디렉토리를 생성한다.

sudo mkdir /var/lib/haproxy/dev

haproxy를 재시작 한다.

sudo systemctl restart haproxy.service

3. Rsyslog 셋팅

/etc/rsyslog.d/폴더에 있는 haproxy.conf파일을 수정한다.

$AddUnixListenSocket /var/lib/haproxy/dev/log

# Send HAProxy messages to a dedicated logfile
:programname, startswith, "haproxy" {
 /var/log/haproxy.log
 stop
}

4. logroate 수정

/etc/logrotate.d/haproxy 파일을 다음과 같이 작성한다.

/var/log/haproxy/*log {
   daily
   rotate 90
   create 0644 nobody nobody
   missingok
   notifempty
   compress
   sharedscripts
   postrotate
       /bin/systemctl restart rsyslog.service > /dev/null 2>/dev/null || true
   endscript
}

수정완료 후 rsyslog를 재실행한다.

sudo systemctl restart rsyslog

2022년 1월 17일 haproxy.conf

# Provides UDP syslog reception
# Collect log with UDP
$ModLoad imudp
$UDPServerAddress 127.0.0.1
$UDPServerRun 514
$template Haproxy, "%msg%\n"
#rsyslog 에는 rsyslog 가 메세지를 수신한 시각 및 데몬 이름같은 추가적인 정보가 prepend 되므로, message 만 출력하는 템플릿 지정
# 이를 haproxy-info.log 에만 적용한다.

# Creating separate log files based on the severity

# 모든 haproxy 를 남기려면 다음을 주석해재, 단 access log 가 기록되므로, 양이 많다.
local0.* /var/log/haproxy-traffic.log

# local0.=info 는 haproxy 에서 에러로 처리된 이벤트들만 기록하게 됨 (포맷 적용)
local0.=info /var/log/haproxy-info.log;Haproxy

# local0.notice 는 haproxy 가 재시작되는 경우와 같은 시스템 메세지를 기록하게됨 (포맷 미적용)
local0.notice /var/log/haproxy-admin.log

$AddUnixListenSocket /var/lib/haproxy/dev/log

# Send Haproxy message to a dedicated logfile
:programname, startswith, "haproxy" {
  /var/log/haproxy.log
  stop
  }

https://www.haproxy.com/blog/introduction-to-haproxy-logging/