서버 관리 · 5 min read · Sep 13, 2025

Debian 12에서 Rsyslog로 원격 로깅 설정하는 방법

Rsyslog는 운영 체제와 애플리케이션의 로그 메시지를 수집, 필터링, 저장 및 전달하는 데 사용되는 오픈 소스 로깅 시스템 데몬입니다. TCP, UDP 및 RELP(신뢰할 수 있는 이벤트 로깅 프로토콜)를 포함한 여러 프로토콜을 지원하는 강력하고 유연한 로깅 시스템입니다. Rsyslog를 사용하여 서버, 애플리케이션 및 데이터베이스의 로그를 중앙 집중화할 수 있습니다.

이 가이드는 Debian 12 서버에 rsyslog를 설치하고 원격 로깅을 설정하는 방법을 보여줍니다. 또한 로그를 원격으로 Rsyslog 서버로 전송하는 Linux 서버를 설정합니다.

전제 조건

이 가이드를 시작하려면 다음이 필요합니다:

  • Debian 12 서버
  • 관리자 권한이 있는 비루트 사용자
  • 테스트를 위한 Linux 머신

Rsyslog 설치

시작하기 전에 Debian 서버에 Rsyslog를 설치해야 합니다. 이 단계에서는 APT를 통해 Rsyslog를 설치한 다음 Rsyslog 서비스를 시작하고 활성화합니다.

먼저, 아래 명령을 실행하여 Debian 패키지 인덱스를 업데이트하고 시스템에 Rsyslog를 설치합니다. 설치를 확인하려면 ‘ Y ‘를 입력합니다.

sudo apt update  
sudo apt install rsyslog

install rsyslog

설치가 완료되면 아래의 ‘ systemctl ‘ 명령을 실행하여 ‘ rsyslog ‘ 서버를 시작하고 활성화합니다. 그런 다음 실행 중인지 확인합니다.

sudo systemctl enable --now rsyslog  
sudo systemctl status rsyslog

다음 출력에서 Rsyslog가 실행 중이고 활성화되어 있음을 확인할 수 있습니다.

check rsyslog

UFW(간단한 방화벽) 설정

Rsyslog가 설치된 후 UFW(간단한 방화벽)를 설치하고 구성합니다. OpenSSH 서비스에 대해 포트 ‘22’와 Rsyslog에 대해 포트 ‘514’를 엽니다. 그런 다음 UFW 서비스를 시작하고 활성화합니다.

UFW를 설치하려면 다음 ‘ apt ‘ 명령을 실행합니다. 설치를 확인하려면 ‘ Y ‘를 입력합니다.

sudo apt install ufw

install ufw

설치가 완료되면 아래의 ‘ufw’ 명령을 실행하여 ‘ OpenSSH ‘ 프로필을 활성화하고 포트 ‘514’에 대한 액세스를 허용합니다. ‘ OpenSSH ‘ 프로필은 SSH 액세스를 허용하고 포트 ‘ 514 ‘는 syslog 포트입니다.

sudo ufw allow OpenSSH  
sudo ufw allow 514

이제 아래 명령으로 UFW를 시작하고 활성화합니다. ‘ y ‘를 입력하여 확인하면 ‘ 방화벽이 활성화되었으며 시스템 시작 시 활성화됩니다 ‘와 같은 출력을 받게 됩니다.

sudo ufw enable

마지막으로 아래 명령으로 UFW 상태를 확인합니다.

sudo ufw status

아래 출력에서 UFW가 활성 상태이며 OpenSSH 프로필과 포트 ‘ 514 ‘가 활성화되어 있음을 확인할 수 있습니다.

setup ufw

Rsyslog가 원격 서버에서 로그 수신

이제 Rsyslog를 설치하고 UFW를 구성했으므로 원격 서버에서 로그를 수신하도록 Rsyslog를 설정할 준비가 되었습니다. 이를 위해 ‘/etc/rsyslog.conf’ 파일을 수정하고 다음을 구성해야 합니다:

  1. 원격 서버에서 UDP를 통해 로그를 수신하기 위해 ‘ imudp ‘ 모듈 활성화
  2. 선택 사항으로, TCP를 통해 로그를 수신하기 위해 ‘ imtcp ‘ 활성화
  3. 특정 서브넷이 원격으로 로그를 전송할 수 있도록 허용하는 ‘ AllowedSender ‘ 옵션 활성화
  4. Rsyslog에 대한 사용자 정의 템플릿 추가
  5. Rsyslog 구성 확인
  6. Rsyslog 서비스를 시작, 활성화 및 확인

시작해 보겠습니다.

먼저, 아래의 ‘ nano ‘ 편집기를 사용하여 ‘ /etc/rsyslog.conf ‘ 파일을 편집합니다.

sudo nano /etc/rsyslog.conf

다음 줄의 주석을 제거하여 ‘ imudp ‘ 모듈을 활성화하고 syslog가 Rsyslog 서버에 로그를 기록하도록 활성화합니다.

# provides UDP syslog reception  
module(load="imudp")  
input(type="imudp" port="514")

추가로, TCP를 통해 syslog를 활성화해야 하는 경우 다음과 같이 ‘ imtcp ‘ 모듈을 활성화합니다:

# provides TCP syslog reception  
module(load="imtcp")  
input(type="imtcp" port="50514")

이제 ‘ AllowedSender ‘ 옵션을 추가하고 Syslog 메시지를 Rsyslog 서버로 전송할 수 있는 네트워크 서브넷을 입력합니다.

# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd  
$AllowedSender UDP, 192.168.10.0/24, [::1]/128, *.howtoforge.local, db.howtoforge.local

원격 서버에서 로그 파일을 설정하기 위한 템플릿을 설정하기 위해 다음 구성을 입력합니다. 이 예제에서는 원격 서버의 로그 파일이 ‘ /var/log/servers/server-ip ‘ 디렉토리에 저장됩니다.

#Custom template to generate the log filename dynamically based on the client's IP address.  
$template RemInputLogs, "/var/log/servers/%FROMHOST-IP%/%PROGRAMNAME%.log"  
*.?RemInputLogs

작업이 완료되면 파일을 저장하고 편집기를 종료합니다.

다음으로, 아래의 ‘ rsyslogd ‘ 명령을 실행하여 Rsyslog 구성을 확인하고 올바른 구성이 되었는지 확인합니다.

rsyslogd -f /etc/rsyslog.conf -N1

오류가 발생하지 않으면 아래의 ‘ systemctl ‘ 명령을 실행하여 ‘ rsyslog ‘ 서비스를 재시작하고 변경 사항을 적용합니다.

sudo systemctl restart rsyslog

마지막으로 ‘ rsyslog ‘ 서비스 상태를 확인하여 실행 중인지 확인합니다.

sudo systemctl status rsyslog

아래 출력에서 ‘ rsyslog ‘가 실행 중임을 확인할 수 있습니다.

check rsyslog service

또한 Rsyslog가 실행 중인지 확인하기 위해 서버의 포트 ‘ 514 ‘를 확인합니다.

ss -tulpn | grep 514

아래에서 UDP 포트 ‘ 514 ‘가 Rsyslog에 의해 사용되고 있음을 확인할 수 있습니다.

Rsyslog 서버로 로그 전송

이제 Debian 서버에서 Rsyslog로 원격 로깅을 구성했으므로 ‘ 192.168.10.41 ‘에서 ‘ 192.168.10.10 ‘ 서버로 로그를 전송해 보겠습니다. 이를 위해 다음이 필요합니다:

  • 머신에 Rsyslog 패키지 설치
  • Rsyslog 구성을 편집하고 어떤 로그가 원격 Rsyslog 서버로 전송될지를 정의
  • 선택 사항으로, Rsyslog에 대한 디스크 큐 버퍼 설정

아래의 ‘ apt ‘ 명령으로 ‘rsyslog’ 패키지를 설치합니다. 설치를 확인하려면 ‘ Y ‘를 입력합니다.

sudo apt install rsyslog

install rsyslog client

이제 기본 구성 ‘ /etc/rsyslog.conf ‘ 파일을 ‘ nano ‘ 편집기로 엽니다.

sudo nano /etc/rsyslog.conf

다음 구성을 추가하여 로그를 Rsyslog 서버 ‘ 192.168.10.10 ‘로 전송합니다. 이 경우, kernel, cron, 및 authentication 로그를 Rsyslog 서버로 전송합니다.

# Send logs to a remote syslog server over UDP  
auth,[email protected]:514  
[email protected]:514  
[email protected]:514

이제 Rsyslog에 대한 큐 버퍼를 설정하기 위해 다음을 추가합니다.

# Define Disk Queue Buffer in case the server goes down  
$ActionQueueFileName queue # define a file name for disk assistance.  
$ActionQueueMaxDiskSpace 1g # The maximum size that all queue files together will use on disk.  
$ActionQueueSaveOnShutdown on # specifies that data should be saved at shutdown  
$ActionQueueType LinkedList # holds enqueued messages in memory which makes the process very fast.  
$ActionResumeRetryCount -1 # prevents rsyslog from dropping messages when retrying to connect if the server is not responding,

파일을 저장하고 편집기를 종료합니다.

다음으로, 아래의 ‘ rsyslogd ‘ 명령을 실행하여 Rsyslog 구성을 확인하고 검증합니다.

rsyslogd -f /etc/rsyslog.conf -N1

오류가 발생하지 않으면 아래의 ‘ systemctl ‘ 명령을 실행하여 Rsyslog를 재시작하고 실행 중인지 확인합니다.

sudo systemctl restart rsyslogd  
sudo systemctl status rsyslogd

아래에서 Rsyslog 서비스가 실행 중이며 로그가 ‘ 192.168.10.10 ‘의 Rsyslog 서버로 전송될 것임을 확인할 수 있습니다.

check rsyslog service

Rsyslog 서버에서 로그 파일 확인

Rsyslog가 작동하는지 확인하려면 템플릿에서 구성한 로그 디렉토리를 확인해야 합니다. 이 예제에서는 원격 서버의 로그 파일이 ‘ /var/log/servers ‘ 디렉토리에 저장됩니다.

아래 명령으로 로그 디렉토리 ‘ /var/log/servers ‘를 확인합니다. 이는 각 서버의 디렉토리를 보여줍니다.

ls /var/log/servers

이제 ‘ /var/log/servers/server-ip ‘ 디렉토리에 저장된 서버의 로그 디렉토리를 확인합니다. Rsyslog 서버에서 여러 로그 파일이 사용 가능함을 확인할 수 있습니다.

이제 ‘ cat ‘ 또는 ‘ tail ‘ 명령을 사용하여 로그 파일의 세부 정보를 확인할 수 있습니다.

cat /var/log/servers/logfile.log  
tail -f /var/log/servers/logfile.log

check log

결론

축하합니다! Debian 12 서버에 Rsyslog 설치를 완료했습니다. 또한 Rsyslog를 통해 원격 로깅을 구성하고 syslog UDP를 통해 서버로 로그를 전송했습니다. 다음 단계로 TCP 및 UDP 입력 모듈을 모두 설정하고 Rsyslog 또는 Logstash와 같은 로그 시스템과 통합할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.