9장. 로깅 구성
Red Hat Enterprise Linux의 대부분의 서비스는 상태 메시지, 경고 및 오류를 기록합니다. rsyslogd
서비스를 사용하여 이러한 항목을 로컬 파일 또는 원격 로깅 서버에 기록할 수 있습니다.
9.1. 원격 로깅 솔루션 구성
환경에서 다양한 시스템의 로그가 로깅 서버에 중앙에 기록되도록 하기 위해 클라이언트 시스템에서 서버에 대한 특정 기준에 맞는 로그를 기록하도록 Rsyslog 애플리케이션을 구성할 수 있습니다.
9.1.1. Rsyslog 로깅 서비스
systemd-journald
서비스와 함께 Rsyslog 애플리케이션은 Red Hat Enterprise Linux에서 로컬 및 원격 로깅 지원을 제공합니다. rsyslogd
데몬은 journal에서 systemd-journald
서비스에서 수신한 syslog
메시지를 지속적으로 읽습니다. rsyslogd
는 이러한 syslog
이벤트를 필터링 및 처리하고 rsyslog
로그 파일에 기록하거나 구성에 따라 다른 서비스에 전달합니다.
rsyslogd
데몬은 또한 확장된 필터링, 메시지의 암호화 보호 릴레이, 입력 및 출력 모듈, TCP 및 UDP 프로토콜을 사용하여 운송을 지원합니다.
rsyslog의 기본 구성 파일인 /etc/rsyslog.conf
에서 메시지를 처리하는 rsyslog
d
에 따라 규칙을 지정할 수 있습니다. 일반적으로 소스 및 주제(유효성) 및 긴급성(우선 순위)에 따라 메시지를 분류한 다음, 메시지가 이러한 기준에 맞는 경우 수행해야 하는 작업을 할당할 수 있습니다.
/etc/rsyslog.conf
에서 rsyslogd
가 유지 관리하는 로그 파일 목록을 볼 수도 있습니다. 대부분의 로그 파일은 /var/log/
디렉토리에 있습니다. httpd
및 samba
와 같은 일부 애플리케이션은 /var/log/
내의 하위 디렉터리에 로그 파일을 저장합니다.
추가 리소스
-
rsyslogd(8)
및rsyslog.conf(5)
도움말 페이지. -
/usr/share/doc/rsyslog/html/index.html
파일의rsyslog-doc
패키지와 함께 설치된 설명서입니다.
9.1.2. Rsyslog 문서 설치
Rsyslog 애플리케이션에는 https://www.rsyslog.com/doc/ 에서 제공되는 광범위한 온라인 문서가 있지만, rsyslog-doc
설명서 패키지를 로컬로 설치할 수도 있습니다.
사전 요구 사항
-
시스템에서
AppStream
리포지토리를 활성화했습니다. -
sudo
를 사용하여 새 패키지를 설치할 권한이 있습니다.
절차
rsyslog-doc
패키지를 설치합니다.# yum install rsyslog-doc
검증
선택한 브라우저에서
/usr/share/doc/rsyslog/html/index.html
파일을 엽니다. 예를 들면 다음과 같습니다.$ firefox /usr/share/doc/rsyslog/html/index.html &
9.1.3. TCP를 통한 원격 로깅을 위한 서버 구성
Rsyslog 애플리케이션을 사용하면 로깅 서버를 실행하고 로그 파일을 로깅 서버로 보내도록 개별 시스템을 구성할 수 있습니다. TCP를 통해 원격 로깅을 사용하려면 서버와 클라이언트를 둘 다 구성합니다. 서버는 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석합니다.
Rsyslog 애플리케이션을 사용하면 로그 메시지가 네트워크를 통해 서버로 전달되는 중앙 집중식 로깅 시스템을 유지 관리할 수 있습니다. 서버를 사용할 수 없는 경우 메시지 손실을 방지하기 위해 전달 작업에 대한 작업 대기열을 구성할 수 있습니다. 이렇게 하면 전송에 실패한 메시지는 서버에 다시 연결할 때까지 로컬에 저장됩니다. 이러한 큐는 UDP 프로토콜을 사용하여 연결에 대해 구성할 수 없습니다.
omfwd
플러그인은 UDP 또는 TCP를 통해 전달을 제공합니다. 기본 프로토콜은 UDP입니다. 플러그인이 빌드되었으므로 로드할 필요가 없습니다.
기본적으로 rsyslog
는 포트 514
에서 TCP를 사용합니다.
사전 요구 사항
- rsyslog가 서버 시스템에 설치되어 있습니다.
-
서버에서
root
로 로그인했습니다. -
semanage
명령을 사용하여 선택적 단계를 위해policycoreutils-python-utils
패키지가 설치됩니다. -
firewalld
서비스가 실행 중입니다.
절차
선택 사항:
rsyslog
트래픽에 다른 포트를 사용하려면syslogd_port_t
SELinux 유형을 포트에 추가합니다. 예를 들어 포트30514
를 활성화합니다.# semanage port -a -t syslogd_port_t -p tcp 30514
선택 사항:
rsyslog
트래픽에 다른 포트를 사용하려면 해당 포트에서 들어오는rsyslog
트래픽을 허용하도록firewalld
를 구성합니다. 예를 들어 포트30514
에서 TCP 트래픽을 허용합니다.# firewall-cmd --zone=<zone-name> --permanent --add-port=30514/tcp success # firewall-cmd --reload
/etc/rsyslog.d/
디렉토리(예:remotelog.conf
)에 새 파일을 생성하고 다음 내용을 삽입합니다.# Define templates before the rules that use them # Per-Host templates for remote systems template(name="TmplAuthpriv" type="list") { constant(value="/var/log/remote/auth/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") } template(name="TmplMsg" type="list") { constant(value="/var/log/remote/msg/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") } # Provides TCP syslog reception module(load="imtcp") # Adding this ruleset to process remote messages ruleset(name="remote1"){ authpriv.* action(type="omfile" DynaFile="TmplAuthpriv") *.info;mail.none;authpriv.none;cron.none action(type="omfile" DynaFile="TmplMsg") } input(type="imtcp" port="30514" ruleset="remote1")
-
/etc/rsyslog.d/remotelog.conf
파일에 변경 사항을 저장합니다. /etc/rsyslog.conf 파일의 구문을 테스트합니다.
# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run... rsyslogd: End of config validation run. Bye.
로깅 서버에서
rsyslog
서비스가 실행 중이고 활성화되어 있는지 확인합니다.# systemctl status rsyslog
rsyslog
서비스를 다시 시작합니다.# systemctl restart rsyslog
선택 사항:
rsyslog
가 활성화되지 않은 경우 재부팅 후rsyslog
서비스가 자동으로 시작되는지 확인하십시오.# systemctl enable rsyslog
이제 로그 서버가 환경의 다른 시스템에서 로그 파일을 수신하고 저장하도록 구성되어 있습니다.
추가 리소스
-
rsyslogd(8)
,rsyslog.conf(5)
,semanage(8)
및firewall-cmd(1)
도움말 페이지. -
/usr/share/doc/rsyslog/html/index.html
파일의rsyslog-doc
패키지와 함께 설치된 설명서입니다.
9.1.4. TCP를 통해 서버에 원격 로깅 구성
TCP 프로토콜을 통해 서버로 로그 메시지를 전달하도록 시스템을 구성할 수 있습니다. omfwd
플러그인은 UDP 또는 TCP를 통해 전달을 제공합니다. 기본 프로토콜은 UDP입니다. 플러그인이 빌드되었으므로 로드할 필요가 없습니다.
사전 요구 사항
-
rsyslog
패키지는 서버에 보고해야 하는 클라이언트 시스템에 설치됩니다. - 원격 로깅을 위해 서버를 구성했습니다.
- 지정된 포트는 SELinux에서 허용되며 방화벽에서 열립니다.
-
시스템에는 SELinux 구성에 비표준 포트를 추가하기 위한
semanage
명령을 제공하는policycoreutils-python-utils
패키지가 포함되어 있습니다.
절차
/etc/rsyslog.d/
디렉토리에 라는 새 파일을 만듭니다(예:10-remotelog.conf
).*.* action(type="omfwd" queue.type="linkedlist" queue.filename="example_fwd" action.resumeRetryCount="-1" queue.saveOnShutdown="on" target="example.com" port="30514" protocol="tcp" )
다음과 같습니다.
-
queue.type="linkedlist"
설정은 LinkedList in-memory 큐를 활성화합니다. -
queue.filename
설정은 디스크 스토리지를 정의합니다. 백업 파일은 이전 globalworkDirectory
지시문에서 지정한 작업 디렉터리에example_fwd
접두사를 사용하여 생성됩니다. -
action.resumeRetryCount -1
설정은 서버가 응답하지 않는 경우 연결을 다시 시도할 때rsyslog
가 메시지를 삭제하지 않도록 합니다. -
rsyslog
가 종료되면queue.saveOnShutdown="on"
설정은 메모리 내 데이터를 저장합니다. 마지막 줄은 수신된 모든 메시지를 로깅 서버로 전달합니다. 포트 사양은 선택 사항입니다.
이 구성을 사용하면
rsyslog
에서 서버로 메시지를 전송하지만 원격 서버에 연결할 수 없는 경우 메시지를 메모리에 유지합니다. 디스크의 파일은rsyslog
가 구성된 메모리 대기열 공간에서 부족하거나 시스템 성능을 향상시킬 수 있는 를 종료해야 하는 경우에만 생성됩니다.
참고rsyslog는 사전 순서로 구성 파일
/etc/rsyslog.d/
를 처리합니다.-
rsyslog
서비스를 다시 시작합니다.# systemctl restart rsyslog
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
# logger test
서버 시스템에서
/var/log/messages
로그를 확인합니다. 예를 들면 다음과 같습니다.# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
여기서 hostname 은 클라이언트 시스템의 호스트 이름입니다. 로그에는
로거
명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root
).
추가 리소스
-
rsyslogd(8)
및rsyslog.conf(5)
도움말 페이지. -
/usr/share/doc/rsyslog/html/index.html
파일의rsyslog-doc
패키지와 함께 설치된 설명서입니다.
9.1.5. TLS 암호화 원격 로깅 구성
기본적으로 Rsyslog는 일반 텍스트 형식으로 원격 블로그 통신을 보냅니다. 시나리오에 이 통신 채널을 보호해야 하는 경우 TLS를 사용하여 암호화할 수 있습니다.
TLS를 통해 암호화된 전송을 사용하려면 서버와 클라이언트 모두를 구성합니다. 서버는 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석합니다.
ossl
네트워크 스트림 드라이버(OpenSSL) 또는 gtls
스트림 드라이버(GnuTLS)를 사용할 수 있습니다.
더 높은 보안이 있는 별도의 시스템이 있는 경우(예: 네트워크에 연결되지 않거나 엄격한 권한이 있는 시스템)를 인증 기관(CA)으로 별도의 시스템을 사용하십시오.
글로벌 ,모듈
및 입력
수준의 서버 측과
및 글로벌
작업
수준의 클라이언트 측의 스트림 드라이버를 사용하여 연결 설정을 사용자 지정할 수 있습니다. 보다 구체적인 구성은 보다 일반적인 구성을 덮어씁니다. 예를 들어 대부분의 연결에서 ossl
을 사용하고 특정 연결에 대해서만 gtls
를 사용할 수 있습니다.
사전 요구 사항
-
클라이언트와 서버 시스템에 모두
root
액세스 권한이 있습니다. 다음 패키지는 서버 및 클라이언트 시스템에 설치됩니다.
-
rsyslog
패키지입니다. -
ossl
네트워크 스트림 드라이버의 경우rsyslog-openssl
패키지입니다. -
gtls
네트워크 스트림 드라이버의 경우rsyslog-gnutls
패키지입니다. -
certtool
명령을 사용하여 인증서를 생성하는 경우gnutls-utils
패키지를 사용합니다.
-
로깅 서버에서 다음 인증서는
/etc/pki/ca-trust/source/anchors/
디렉터리에 있으며update-ca-trust
명령을 사용하여 시스템 구성을 업데이트합니다.-
ca-cert.pem
- 로깅 서버 및 클라이언트의 키와 인증서를 확인할 수 있는 CA 인증서입니다. -
server-cert.pem
- 로깅 서버의 공개 키입니다. -
server-key.pem
- 로깅 서버의 개인 키입니다.
-
로깅 클라이언트에서 다음 인증서는
/etc/pki/ca-trust/source/anchors/
디렉터리에 있으며,update-ca-trust
를 사용하여 시스템 설정을 업데이트합니다.-
ca-cert.pem
- 로깅 서버 및 클라이언트의 키와 인증서를 확인할 수 있는 CA 인증서입니다. -
client-cert.pem
- 클라이언트의 공개 키입니다. -
client-key.pem
- 클라이언트의 개인 키입니다.
-
절차
클라이언트 시스템에서 암호화된 로그를 수신하도록 서버를 구성합니다.
-
/etc/journal.d/
디렉토리에 라는 새 파일을 만듭니다(예:securelogser.conf
). 통신을 암호화하려면 구성 파일에 서버의 인증서 파일 경로, 선택한 인증 방법 및 TLS 암호화를 지원하는 스트림 드라이버가 포함되어야 합니다.
/etc/octets.d/securelogser.conf 파일에 다음 행을 추가합니다.
# Set certificate files global( DefaultNetstreamDriverCAFile="/etc/pki/ca-trust/source/anchors/ca-cert.pem" DefaultNetstreamDriverCertFile="/etc/pki/ca-trust/source/anchors/server-cert.pem" DefaultNetstreamDriverKeyFile="/etc/pki/ca-trust/source/anchors/server-key.pem" ) # TCP listener module( load="imtcp" PermittedPeer=["client1.example.com", "client2.example.com"] StreamDriver.AuthMode="x509/name" StreamDriver.Mode="1" StreamDriver.Name="ossl" ) # Start up listener at port 514 input( type="imtcp" port="514" )
참고GnuTLS 드라이버를 선호하는 경우
StreamDriver.Name="gtls"
구성 옵션을 사용합니다.x509/name
보다 엄격한 인증 모드에 대한 자세한 내용은rsyslog-doc
패키지로 설치된 설명서를 참조하십시오.-
/etc/octets.d/securelogser.conf
파일에 변경 사항을 저장합니다. /etc/octets.conf
파일 구문 및/etc/octets.d/ 디렉토리에 있는 모든 파일을 확인합니다.
# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)... rsyslogd: End of config validation run. Bye.
로깅 서버에서
rsyslog
서비스가 실행 중이고 활성화되어 있는지 확인합니다.# systemctl status rsyslog
rsyslog
서비스를 다시 시작하십시오.# systemctl restart rsyslog
선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후
rsyslog
서비스가 자동으로 시작됩니다.# systemctl enable rsyslog
-
암호화된 로그를 서버에 전송하도록 클라이언트를 구성합니다.
-
클라이언트 시스템에서
/etc/journal.d/
디렉토리에 라는 새 파일을 만듭니다(예:securelogcli.conf
). /etc/octets.d/securelogcli.conf 파일에 다음 행을 추가합니다.
# Set certificate files global( DefaultNetstreamDriverCAFile="/etc/pki/ca-trust/source/anchors/ca-cert.pem" DefaultNetstreamDriverCertFile="/etc/pki/ca-trust/source/anchors/client-cert.pem" DefaultNetstreamDriverKeyFile="/etc/pki/ca-trust/source/anchors/client-key.pem" ) # Set up the action for all messages *.* action( type="omfwd" StreamDriver="ossl" StreamDriverMode="1" StreamDriverPermittedPeers="server.example.com" StreamDriverAuthMode="x509/name" target="server.example.com" port="514" protocol="tcp" )
참고GnuTLS 드라이버를 선호하는 경우
StreamDriver.Name="gtls"
구성 옵션을 사용합니다.-
/etc/rsyslog.d/securelogcli.conf
파일에 변경 사항을 저장합니다. /etc/rsyslog.conf
파일 및 기타 파일의 구문을/etc/rsyslog.d/
디렉터리에 확인합니다.# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)... rsyslogd: End of config validation run. Bye.
로깅 서버에서
rsyslog
서비스가 실행 중이고 활성화되어 있는지 확인합니다.# systemctl status rsyslog
rsyslog
서비스를 다시 시작하십시오.# systemctl restart rsyslog
선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후
rsyslog
서비스가 자동으로 시작됩니다.# systemctl enable rsyslog
-
클라이언트 시스템에서
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
# logger test
서버 시스템에서
/var/log/messages
로그를 확인합니다. 예를 들면 다음과 같습니다.# cat /var/log/remote/msg/<hostname>/root.log Feb 25 03:53:17 <hostname> root[6064]: test
여기서
<hostname
>은 클라이언트 시스템의 호스트 이름입니다. 로그에는 로거 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root
).
추가 리소스
-
certtool(1)
,openssl(1)
,update-ca-trust(8)
,rsyslogd(8)
,rsyslog.conf(5)
매뉴얼 페이지. -
/usr/share/doc/rsyslog/html/index.html
의rsyslog-doc
패키지와 함께 설치된 설명서입니다. - TLS에서 로깅 시스템 역할 사용.
9.1.6. UDP를 통해 원격 로깅 정보를 받기 위한 서버 설정
Rsyslog 애플리케이션을 사용하면 원격 시스템에서 로깅 정보를 수신하도록 시스템을 구성할 수 있습니다. UDP를 통해 원격 로깅을 사용하려면 서버와 클라이언트를 둘 다 구성합니다. 수신 서버는 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석합니다. 기본적으로 rsyslog
는 포트 514
에서 UDP를 사용하여 원격 시스템에서 로그 정보를 받습니다.
다음 절차에 따라 UDP 프로토콜을 통해 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석하기 위해 서버를 구성합니다.
사전 요구 사항
- rsyslog가 서버 시스템에 설치되어 있습니다.
-
서버에서
root
로 로그인했습니다. -
semanage
명령을 사용하여 선택적 단계를 위해policycoreutils-python-utils
패키지가 설치됩니다. -
firewalld
서비스가 실행 중입니다.
절차
선택 사항: 기본 포트
514
가 아닌rsyslog
트래픽에 다른 포트를 사용하려면 다음을 수행합니다.syslogd_port_t
SELinux 유형을 SELinux 정책 구성에 추가하고portno
를rsyslog
에서 사용할 포트 번호로 바꿉니다.# semanage port -a -t syslogd_port_t -p udp portno
들어오는
rsyslog
트래픽을 허용하고portno
를 포트 번호 및영역으로
교체하여rsyslog
에서 사용할 영역으로 교체하도록firewalld
를 구성합니다.# firewall-cmd --zone=zone --permanent --add-port=portno/udp success # firewall-cmd --reload
방화벽 규칙을 다시 로드합니다.
# firewall-cmd --reload
/etc/rsyslog
파일을 생성하고 다음 내용을 삽입합니다..d/ 디렉토리(예:
)에 새.confremotelogserv.
conf# Define templates before the rules that use them # Per-Host templates for remote systems template(name="TmplAuthpriv" type="list") { constant(value="/var/log/remote/auth/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") } template(name="TmplMsg" type="list") { constant(value="/var/log/remote/msg/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") } # Provides UDP syslog reception module(load="imudp") # This ruleset processes remote messages ruleset(name="remote1"){ authpriv.* action(type="omfile" DynaFile="TmplAuthpriv") *.info;mail.none;authpriv.none;cron.none action(type="omfile" DynaFile="TmplMsg") } input(type="imudp" port="514" ruleset="remote1")
여기서
514
는 기본적으로 사용하는 포트 번호rsyslog
입니다. 대신 다른 포트를 지정할 수 있습니다./etc/rsyslog.
conf 파일을 확인합니다.d/ 디렉터리에 있는 /etc/rsyslog
all..conf
파일의 구문과# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run...
rsyslog
서비스를 다시 시작합니다.# systemctl restart rsyslog
선택 사항:
rsyslog
가 활성화되지 않은 경우 재부팅 후rsyslog
서비스가 자동으로 시작되는지 확인하십시오.# systemctl enable rsyslog
추가 리소스
-
rsyslogd(8)
,rsyslog.conf(5)
,semanage(8)
및firewall-cmd(1)
도움말 페이지. -
/usr/share/doc/rsyslog/html/index.html
파일의rsyslog-doc
패키지와 함께 설치된 설명서입니다.
9.1.7. UDP를 통해 서버에 원격 로깅 구성
UDP 프로토콜을 통해 서버로 로그 메시지를 전달하도록 시스템을 구성할 수 있습니다. omfwd
플러그인은 UDP 또는 TCP를 통해 전달을 제공합니다. 기본 프로토콜은 UDP입니다. 플러그인이 빌드되었으므로 로드할 필요가 없습니다.
사전 요구 사항
-
rsyslog
패키지는 서버에 보고해야 하는 클라이언트 시스템에 설치됩니다. - UDP를 통해 원격 로깅 정보를 받기 위한 서버 구성에 설명된 대로 원격 로깅 을 위해 서버를 구성했습니다.
절차
/etc/rsyslog.d/
디렉토리에 새.conf
파일을 만듭니다(예:10-remotelogcli.conf
).*.* action(type="omfwd" queue.type="linkedlist" queue.filename="example_fwd" action.resumeRetryCount="-1" queue.saveOnShutdown="on" target="example.com" port="portno" protocol="udp" )
다음과 같습니다.
-
queue.type="linkedlist"
설정은 LinkedList in-memory 큐를 활성화합니다. -
queue.filename
설정은 디스크 스토리지를 정의합니다. 백업 파일은 이전 글로벌workDirectory
지시문으로 지정된 작업 디렉터리에example_fwd
접두사를 사용하여 생성됩니다. -
action.resumeRetryCount -1
설정은 서버가 응답하지 않는 경우 연결을 재시도할 때rsyslog
가 메시지를 삭제하지 않도록 합니다. -
rsyslog
가 종료되면활성화된 queue.saveOnShutdown="on"
설정은 메모리 내 데이터를 저장합니다. -
portno
값은rsyslog
에서 사용할 포트 번호입니다. 기본값은514
입니다. 마지막 행은 수신된 모든 메시지를 로깅 서버로 전달하고 포트 사양은 선택 사항입니다.
이 구성을 사용하면
rsyslog
에서 서버로 메시지를 전송하지만 원격 서버에 연결할 수 없는 경우 메시지를 메모리에 유지합니다. 디스크의 파일은rsyslog
가 구성된 메모리 대기열 공간에서 부족하거나 시스템 성능을 향상시킬 수 있는 를 종료해야 하는 경우에만 생성됩니다.
참고rsyslog는 사전 순서로 구성 파일
/etc/rsyslog.d/
를 처리합니다.-
rsyslog
서비스를 다시 시작합니다.# systemctl restart rsyslog
선택 사항:
rsyslog
가 활성화되지 않은 경우 재부팅 후rsyslog
서비스가 자동으로 시작되는지 확인하십시오.# systemctl enable rsyslog
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
# logger test
서버 시스템에서
/var/log/remote/msg/hostname/root.log 로그를 확인합니다.
예를 들면 다음과 같습니다.# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
여기서
hostname
은 클라이언트 시스템의 호스트 이름입니다. 로그에는 로거 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root
).
추가 리소스
-
rsyslogd(8)
및rsyslog.conf(5)
도움말 페이지. -
/usr/share/doc/rsyslog/html/index.html
의rsyslog-doc
패키지와 함께 설치된 설명서입니다.
9.1.8. Rsyslog의 로드 밸런싱 도우미
RebindInterval
설정은 현재 연결이 끊어지고 다시 설정된 간격을 지정합니다. 이 설정은 TCP, UDP 및 RELP 트래픽에 적용됩니다. 로드 밸런서는 새 연결로 인식하여 메시지를 다른 물리적 대상 시스템으로 전달합니다.
RebindInterval
설정은 대상 시스템이 IP 주소를 변경한 시나리오에서 유용합니다. Rsyslog 애플리케이션은 연결이 설정될 때 IP 주소를 캐시하므로 메시지가 동일한 서버로 전송됩니다. IP 주소가 변경되면 Rsyslog 서비스가 다시 시작될 때까지 UDP 패킷이 손실됩니다. 연결을 다시 설정하면 DNS에서 IP를 다시 확인합니다.
action(type=”omfwd” protocol=”tcp” RebindInterval=”250” target=”example.com” port=”514” …) action(type=”omfwd” protocol=”udp” RebindInterval=”250” target=”example.com” port=”514” …) action(type=”omrelp” RebindInterval=”250” target=”example.com” port=”6514” …)
9.1.9. 신뢰할 수 있는 원격 로깅 구성
RELP(Reliable Event Logging Protocol)를 사용하면 메시지 손실 위험이 훨씬 감소하여 TCP를 통해 syslog
메시지를 보내고 받을 수 있습니다. RELP는 메시지 손실이 허용되지 않는 환경에서 유용하게 이벤트 메시지를 안정적으로 전송합니다. RELP를 사용하려면 서버에서 실행되고 로그를 수신하는 imrelp
입력 모듈을 구성하고 클라이언트에서 실행되고 로깅 서버에 로그를 전송하는 omrelp
출력 모듈을 구성합니다.
사전 요구 사항
-
서버 및 클라이언트 시스템에
rsyslog
,librelp
및 rsyslog-relp
패키지를 설치했습니다. - 지정된 포트는 SELinux에서 허용되며 방화벽에서 열립니다.
절차
안정적인 원격 로깅을 위해 클라이언트 시스템을 구성합니다.
클라이언트 시스템에서
/etc/journal.d/ 디렉토리에 새
파일을 만듭니다(예:.
confrelpclient.conf
).module(load="omrelp") *.* action(type="omrelp" target="_target_IP_" port="_target_port_")
다음과 같습니다.
-
target_IP
는 로깅 서버의 IP 주소입니다. -
target_port
는 로깅 서버의 포트입니다.
-
-
/etc/octets.d/relpclient.conf
파일에 변경 사항을 저장합니다. rsyslog
서비스를 다시 시작합니다.# systemctl restart rsyslog
선택 사항:
rsyslog
가 활성화되지 않은 경우 재부팅 후rsyslog
서비스가 자동으로 시작되는지 확인하십시오.# systemctl enable rsyslog
안정적인 원격 로깅을 위해 서버 시스템을 구성합니다.
서버 시스템에서
/etc/rsyslog
파일을 생성합니다(예:.d/ 디렉터리에 새.
confrelpserv.conf
).ruleset(name="relp"){ *.* action(type="omfile" file="_log_path_") } module(load="imrelp") input(type="imrelp" port="_target_port_" ruleset="relp")
다음과 같습니다.
-
log_path
는 메시지를 저장하는 경로를 지정합니다. -
target_port
는 로깅 서버의 포트입니다. 클라이언트 구성 파일과 동일한 값을 사용합니다.
-
-
/etc/rsyslog.d/relpserv.conf
파일에 변경 사항을 저장합니다. rsyslog
서비스를 다시 시작합니다.# systemctl restart rsyslog
선택 사항:
rsyslog
가 활성화되지 않은 경우 재부팅 후rsyslog
서비스가 자동으로 시작되는지 확인하십시오.# systemctl enable rsyslog
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
# logger test
서버 시스템에서 지정된
log_path
의 로그를 확인합니다. 예를 들면 다음과 같습니다.# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
여기서
hostname
은 클라이언트 시스템의 호스트 이름입니다. 로그에는 로거 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root
).
추가 리소스
-
rsyslogd(8)
및rsyslog.conf(5)
도움말 페이지. -
/usr/share/doc/rsyslog/html/index.html
파일의rsyslog-doc
패키지와 함께 설치된 설명서입니다.
9.1.10. 지원되는 Rsyslog 모듈
Rsyslog 애플리케이션의 기능을 확장하려면 특정 모듈을 사용할 수 있습니다. 모듈은 추가 입력(Input Modules), 출력(Output Modules) 및 기타 기능을 제공합니다. 모듈은 모듈을 로드한 후 사용할 수 있는 추가 구성 지시문도 제공할 수 있습니다.
다음 명령을 입력하여 시스템에 설치된 입력 및 출력 모듈을 나열할 수 있습니다.
# ls /usr/lib64/rsyslog/{i,o}m*
패키지를 설치한 후 rsyslog
-doc/usr/share/doc/rsyslog/html/configuration/modules/idx_output.html
파일에서 사용 가능한 모든 rsyslog 모듈 목록을 볼 수 있습니다.
9.1.11. 커널 메시지를 원격 호스트에 기록하도록 netconsole 서비스 구성
디스크에 로깅하거나 직렬 콘솔을 사용할 수 없는 경우 netconsole
커널 모듈과 동일한 이름의 서비스를 사용하여 네트워크를 통해 커널 메시지를 원격 rsyslog
서비스에 기록할 수 있습니다.
사전 요구 사항
-
rsyslog
와 같은 시스템 로그 서비스가 원격 호스트에 설치되어 있습니다. - 원격 시스템 로그 서비스는 이 호스트에서 들어오는 로그 항목을 수신하도록 구성됩니다.
절차
netconsole-service
패키지를 설치합니다.# yum install netconsole-service
/etc/sysconfig/netconsole
파일을 편집하고SYSLOGADDR
매개변수를 원격 호스트의 IP 주소로 설정합니다.# SYSLOGADDR=192.0.2.1
netconsole
서비스를 활성화하고 시작합니다.# systemctl enable --now netconsole
검증
-
원격 시스템 로그 서버에
/var/log/
ECDHE 파일을 표시합니다.
추가 리소스
9.1.12. 추가 리소스
-
/usr/share/doc/rsyslog/html/index.html
파일의rsyslog-doc
패키지로 설치된 문서 -
rsyslog.conf(5)
및rsyslogd(8)
도움말 페이지 - journald 없이 또는 minimized journald 사용 Knowledgebase 문서를 사용하여 시스템 로깅 구성
- 성능 및 완화 기술 자료에서 RHEL 기본 로깅 설정의 부정적인 영향
- 로깅 시스템 역할 사용 장