서버 관리 · 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
설치가 완료되면 아래의 ‘ systemctl ‘ 명령을 실행하여 ‘ rsyslog ‘ 서버를 시작하고 활성화합니다. 그런 다음 실행 중인지 확인합니다.
sudo systemctl enable --now rsyslog
sudo systemctl status rsyslog다음 출력에서 Rsyslog가 실행 중이고 활성화되어 있음을 확인할 수 있습니다.

UFW(간단한 방화벽) 설정
Rsyslog가 설치된 후 UFW(간단한 방화벽)를 설치하고 구성합니다. OpenSSH 서비스에 대해 포트 ‘22’와 Rsyslog에 대해 포트 ‘514’를 엽니다. 그런 다음 UFW 서비스를 시작하고 활성화합니다.
UFW를 설치하려면 다음 ‘ apt ‘ 명령을 실행합니다. 설치를 확인하려면 ‘ Y ‘를 입력합니다.
sudo apt 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 ‘가 활성화되어 있음을 확인할 수 있습니다.

Rsyslog가 원격 서버에서 로그 수신
이제 Rsyslog를 설치하고 UFW를 구성했으므로 원격 서버에서 로그를 수신하도록 Rsyslog를 설정할 준비가 되었습니다. 이를 위해 ‘/etc/rsyslog.conf’ 파일을 수정하고 다음을 구성해야 합니다:
- 원격 서버에서 UDP를 통해 로그를 수신하기 위해 ‘ imudp ‘ 모듈 활성화
- 선택 사항으로, TCP를 통해 로그를 수신하기 위해 ‘ imtcp ‘ 활성화
- 특정 서브넷이 원격으로 로그를 전송할 수 있도록 허용하는 ‘ AllowedSender ‘ 옵션 활성화
- Rsyslog에 대한 사용자 정의 템플릿 추가
- Rsyslog 구성 확인
- 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 ‘가 실행 중임을 확인할 수 있습니다.

또한 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
이제 기본 구성 ‘ /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 서버로 전송될 것임을 확인할 수 있습니다.

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
결론
축하합니다! Debian 12 서버에 Rsyslog 설치를 완료했습니다. 또한 Rsyslog를 통해 원격 로깅을 구성하고 syslog UDP를 통해 서버로 로그를 전송했습니다. 다음 단계로 TCP 및 UDP 입력 모듈을 모두 설정하고 Rsyslog 또는 Logstash와 같은 로그 시스템과 통합할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.