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
반응형
'Linux Distributions' 카테고리의 다른 글
웹 서버에서 특정 디렉토리에 대한 접근을 제한하는 방법 (0) | 2024.05.06 |
---|---|
CentOS 7에 MySQL 5.7을 소스 컴파일 또는 바이너리 설치하는 방법 (0) | 2024.05.01 |
리눅스에서 환경 변수를 등록하고 해제하는 방법 (0) | 2024.04.19 |
PHP-FPM 프로세스 static, dynamic, ondemand 모드 차이점 (0) | 2024.04.19 |
CentOS 8에서 Yum Repository 서버를 구축하는 방법 (0) | 2024.04.18 |