Ubuntu 18.04 LTS에서 Rsyslog 서버를 설정하는 방법
이 페이지에서
- 전제 조건
- Rsyslog 설치
- Rsyslog 서버 구성
- Rsyslog 클라이언트 구성
- 클라이언트 로그 보기
- 결론
로그는 Linux의 시스템 및 애플리케이션과 관련된 문제를 분석하고 해결하는 데 매우 유용합니다. 기본적으로 모든 로그 파일은 Linux 기반 운영 체제의 /var/log 디렉토리에 있습니다. cron, kernel, users, security 등 여러 유형의 로그 파일이 있으며 이러한 파일의 대부분은 Rsyslog 서비스에서 제어합니다.
기본적으로 Rsyslog는 Ubuntu 18.04 서버에 설치됩니다. 설치되어 있지 않은 경우 다음 명령을 실행하여 설치할 수 있습니다.
apt-get install rsyslog -y
Rsyslog를 설치한 후 다음 명령을 사용하여 Rsyslog의 버전을 확인할 수 있습니다.
rsyslogd -v
다음 출력이 표시되어야 합니다.
rsyslogd 8.32.0, compiled with: PLATFORM: x86_64-pc-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes systemd support: Yes Number of Bits in RainerScript integers: 64 See http://www.rsyslog.com for more information.
다음 명령을 사용하여 Rsyslog의 상태를 확인할 수도 있습니다.
systemctl status rsyslog
다음 출력이 표시되어야 합니다.
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Main PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.
Rsyslog 서버 구성
이제 Rsyslog가 설치되어 실행 중입니다. 다음으로 서버 모드에서 실행되도록 구성해야 합니다. /etc/rsyslog.conf 파일을 편집하여 이를 수행할 수 있습니다.
nano /etc/rsyslog.conf
먼저 프로토콜을 UDP나 TCP 또는 둘 다로 정의해야 합니다.
UDP와 TCP 연결을 동시에 사용하려면 아래 행을 검색하고 주석 처리를 제거하십시오.
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
그런 다음 아래와 같이 특정 서브넷, IP 또는 도메인을 정의하여 액세스를 제한합니다.
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com $AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com
다음으로 수신 syslog 메시지를 저장하는 방법을 Rsyslog 서버에 알려주는 템플릿을 만들어야 합니다. GLOBAL DIRECTIVES 섹션 바로 앞에 다음 줄을 추가합니다.
$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
완료되면 파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 구문 오류에 대한 Rsyslog 구성을 확인합니다.
rsyslogd -f /etc/rsyslog.conf -N1
다음 출력이 표시되어야 합니다.
rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
마지막으로 다음 명령을 사용하여 Rsyslog 서비스를 다시 시작합니다.
systemctl restart rsyslog
이제 다음 명령을 사용하여 Rsyslog가 TCP/UDP에서 수신 대기하는지 확인합니다.
netstat -4altunp | grep 514
다음 출력이 표시되어야 합니다.
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1332/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 1332/rsyslogd
Rsyslog 클라이언트 구성
Rsyslog 서버는 원격 호스트에서 로그를 수신하도록 설치 및 구성됩니다.
이제 syslog 메시지를 원격 Rsyslog 서버로 보내도록 Rsyslog 클라이언트를 구성해야 합니다.
클라이언트 시스템에 로그인하고 아래와 같이 Rsyslog 구성 파일을 엽니다.
nano /etc/rsyslog.conf
파일 끝에 다음 줄을 추가합니다.
##Enable sending of logs over UDP add the following line: *.* @192.168.0.101:514 ##Enable sending of logs over TCP add the following line: *.* @@192.168.0.101:514 ##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
파일을 저장하고 닫습니다. 그런 다음 Rsyslog 서버를 다시 시작하여 구성 변경 사항을 적용합니다.
systemtcl restart rsyslog
클라이언트 로그 보기
이 시점에서 Rsyslog 클라이언트는 로그를 Rsyslog 서버로 보내도록 구성됩니다.
이제 Rsyslog 서버에 로그인하고 /var/log 디렉토리를 확인하십시오. 여러 로그 파일을 포함하여 클라이언트 시스템의 호스트 이름이 포함된 항목이 표시되어야 합니다.
ls /var/log/rsyslog-client/
산출:
CRON.log kernel.log rsyslogd-2039.log rsyslogd.log sudo.log wpa_supplicant.log
결론
위 글에서는 우분투 18.04 서버에 Rsyslog 서버를 설치하고 설정하는 방법을 알아보았습니다. 또한 로그를 Rsyslog 서버로 보내도록 Rsyslog 클라이언트를 구성하는 방법도 배웠습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.