6장. 로깅 구성
Red Hat Enterprise Linux의 대부분의 서비스는 상태 메시지, 경고 및 오류를 기록합니다. rsyslogd 서비스를 사용하여 이러한 항목을 로컬 파일 또는 원격 로깅 서버에 기록할 수 있습니다.
6.1. 원격 로깅 솔루션 구성 링크 복사링크가 클립보드에 복사되었습니다!
환경에서 다양한 시스템의 로그가 로깅 서버에 중앙에 기록되도록 하기 위해 클라이언트 시스템에서 서버에 대한 특정 기준에 맞는 로그를 기록하도록 Rsyslog 애플리케이션을 구성할 수 있습니다.
6.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/ 내의 하위 디렉터리에 로그 파일을 저장합니다.
6.1.2. Rsyslog 문서 설치 링크 복사링크가 클립보드에 복사되었습니다!
Rsyslog 애플리케이션에는 https://www.rsyslog.com/doc/ 에서 제공되는 광범위한 온라인 문서가 있지만, rsyslog-doc 설명서 패키지를 로컬로 설치할 수도 있습니다.
사전 요구 사항
-
시스템에서
AppStream리포지토리를 활성화했습니다. -
sudo를 사용하여 새 패키지를 설치할 권한이 있습니다.
절차
rsyslog-doc패키지를 설치합니다.yum install rsyslog-doc
# yum install rsyslog-docCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
선택한 브라우저에서
/usr/share/doc/rsyslog/html/index.html파일을 엽니다. 예를 들면 다음과 같습니다.firefox /usr/share/doc/rsyslog/html/index.html &
$ firefox /usr/share/doc/rsyslog/html/index.html &Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.3. TCP를 통한 원격 로깅을 위한 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
Rsyslog 애플리케이션을 사용하면 로깅 서버를 실행하고 로그 파일을 로깅 서버로 보내도록 개별 시스템을 구성할 수 있습니다. TCP를 통해 원격 로깅을 사용하려면 서버와 클라이언트를 둘 다 구성합니다. 서버는 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석합니다.
Rsyslog 애플리케이션을 사용하면 로그 메시지가 네트워크를 통해 서버로 전달되는 중앙 집중식 로깅 시스템을 유지 관리할 수 있습니다. 서버를 사용할 수 없는 경우 메시지 손실을 방지하기 위해 전달 작업에 대한 작업 대기열을 구성할 수 있습니다. 이렇게 하면 전송에 실패한 메시지는 서버에 다시 연결할 때까지 로컬에 저장됩니다. 이러한 큐는 UDP 프로토콜을 사용하여 연결에 대해 구성할 수 없습니다.
omfwd 플러그인은 UDP 또는 TCP를 통해 전달을 제공합니다. 기본 프로토콜은 UDP입니다. 플러그인이 빌드되었으므로 로드할 필요가 없습니다.
기본적으로 rsyslog 는 포트 514 에서 TCP를 사용합니다.
사전 요구 사항
- rsyslog가 서버 시스템에 설치되어 있습니다.
-
서버에서
root로 로그인했습니다. -
semanage명령을 사용하여 선택적 단계를 위해policycoreutils-python-utils패키지가 설치됩니다. -
firewalld서비스가 실행 중입니다.
절차
선택 사항:
rsyslog트래픽에 다른 포트를 사용하려면syslogd_port_tSELinux 유형을 포트에 추가합니다. 예를 들어 포트30514를 활성화합니다.semanage port -a -t syslogd_port_t -p tcp 30514
# semanage port -a -t syslogd_port_t -p tcp 30514Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
rsyslog트래픽에 다른 포트를 사용하려면 해당 포트에서 들어오는rsyslog트래픽을 허용하도록firewalld를 구성합니다. 예를 들어 포트30514에서 TCP 트래픽을 허용합니다.firewall-cmd --zone=<zone-name> --permanent --add-port=30514/tcp firewall-cmd --reload
# firewall-cmd --zone=<zone-name> --permanent --add-port=30514/tcp success # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/rsyslog.d/디렉토리(예:remotelog.conf)에 새 파일을 생성하고 다음 내용을 삽입합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/etc/rsyslog.d/remotelog.conf파일에 변경 사항을 저장합니다. /etc/rsyslog.conf 파일의 구문을 테스트합니다.rsyslogd -N 1
# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run... rsyslogd: End of config validation run. Bye.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로깅 서버에서
rsyslog서비스가 실행 중이고 활성화되어 있는지 확인합니다.systemctl status rsyslog
# systemctl status rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow rsyslog서비스를 다시 시작합니다.systemctl restart rsyslog
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
rsyslog가 활성화되지 않은 경우 재부팅 후rsyslog서비스가 자동으로 시작되는지 확인하십시오.systemctl enable rsyslog
# systemctl enable rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 로그 서버가 환경의 다른 시스템에서 로그 파일을 수신하고 저장하도록 구성되어 있습니다.
6.1.4. TCP를 통해 서버에 원격 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
TCP 프로토콜을 통해 서버로 로그 메시지를 전달하도록 시스템을 구성할 수 있습니다. omfwd 플러그인은 UDP 또는 TCP를 통해 전달을 제공합니다. 기본 프로토콜은 UDP입니다. 플러그인이 빌드되었으므로 로드할 필요가 없습니다.
사전 요구 사항
-
rsyslog패키지는 서버에 보고해야 하는 클라이언트 시스템에 설치됩니다. - 원격 로깅을 위해 서버를 구성했습니다.
- 지정된 포트는 SELinux에서 허용되며 방화벽에서 열립니다.
-
시스템에는 SELinux 구성에 비표준 포트를 추가하기 위한
semanage명령을 제공하는policycoreutils-python-utils패키지가 포함되어 있습니다.
절차
/etc/rsyslog.d/디렉토리에 라는 새 파일을 만듭니다(예:10-remotelog.conf).Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
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
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
logger test
# logger testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 시스템에서
/var/log/messages로그를 확인합니다. 예를 들면 다음과 같습니다.cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서 hostname 은 클라이언트 시스템의 호스트 이름입니다. 로그에는
로거명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root).
6.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 파일에 다음 행을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고GnuTLS 드라이버를 선호하는 경우
StreamDriver.Name="gtls"구성 옵션을 사용합니다.x509/name보다 엄격한 인증 모드에 대한 자세한 내용은rsyslog-doc패키지로 설치된 설명서를 참조하십시오.-
/etc/octets.d/securelogser.conf파일에 변경 사항을 저장합니다. /etc/octets.conf파일 구문 및/etc/octets.d/ 디렉토리에 있는 모든 파일을 확인합니다.rsyslogd -N 1
# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)... rsyslogd: End of config validation run. Bye.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로깅 서버에서
rsyslog서비스가 실행 중이고 활성화되어 있는지 확인합니다.systemctl status rsyslog
# systemctl status rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow rsyslog서비스를 다시 시작하십시오.systemctl restart rsyslog
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후
rsyslog서비스가 자동으로 시작됩니다.systemctl enable rsyslog
# systemctl enable rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
암호화된 로그를 서버에 전송하도록 클라이언트를 구성합니다.
-
클라이언트 시스템에서
/etc/journal.d/디렉토리에 라는 새 파일을 만듭니다(예:securelogcli.conf). /etc/octets.d/securelogcli.conf 파일에 다음 행을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고GnuTLS 드라이버를 선호하는 경우
StreamDriver.Name="gtls"구성 옵션을 사용합니다.-
/etc/rsyslog.d/securelogcli.conf파일에 변경 사항을 저장합니다. /etc/rsyslog.conf파일 및 기타 파일의 구문을/etc/rsyslog.d/디렉터리에 확인합니다.rsyslogd -N 1
# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)... rsyslogd: End of config validation run. Bye.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로깅 서버에서
rsyslog서비스가 실행 중이고 활성화되어 있는지 확인합니다.systemctl status rsyslog
# systemctl status rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow rsyslog서비스를 다시 시작하십시오.systemctl restart rsyslog
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후
rsyslog서비스가 자동으로 시작됩니다.systemctl enable rsyslog
# systemctl enable rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
클라이언트 시스템에서
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
logger test
# logger testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 시스템에서
/var/log/messages로그를 확인합니다. 예를 들면 다음과 같습니다.cat /var/log/remote/msg/<hostname>/root.log Feb 25 03:53:17 <hostname> root[6064]: test
# cat /var/log/remote/msg/<hostname>/root.log Feb 25 03:53:17 <hostname> root[6064]: testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<hostname>은 클라이언트 시스템의 호스트 이름입니다. 로그에는 로거 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root).
6.1.6. UDP를 통해 원격 로깅 정보를 받기 위한 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
Rsyslog 애플리케이션을 사용하면 원격 시스템에서 로깅 정보를 수신하도록 시스템을 구성할 수 있습니다. UDP를 통해 원격 로깅을 사용하려면 서버와 클라이언트를 둘 다 구성합니다. 수신 서버는 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석합니다. 기본적으로 rsyslog 는 포트 514 에서 UDP를 사용하여 원격 시스템에서 로그 정보를 받습니다.
다음 절차에 따라 UDP 프로토콜을 통해 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석하기 위해 서버를 구성합니다.
사전 요구 사항
- rsyslog가 서버 시스템에 설치되어 있습니다.
-
서버에서
root로 로그인했습니다. -
semanage명령을 사용하여 선택적 단계를 위해policycoreutils-python-utils패키지가 설치됩니다. -
firewalld서비스가 실행 중입니다.
절차
선택 사항: 기본 포트
514가 아닌rsyslog트래픽에 다른 포트를 사용하려면 다음을 수행합니다.syslogd_port_tSELinux 유형을 SELinux 정책 구성에 추가하고portno를rsyslog에서 사용할 포트 번호로 바꿉니다.semanage port -a -t syslogd_port_t -p udp portno
# semanage port -a -t syslogd_port_t -p udp portnoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 들어오는
rsyslog트래픽을 허용하고portno를 포트 번호 및영역으로교체하여rsyslog에서 사용할 영역으로 교체하도록firewalld를 구성합니다.firewall-cmd --zone=zone --permanent --add-port=portno/udp firewall-cmd --reload
# firewall-cmd --zone=zone --permanent --add-port=portno/udp success # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 방화벽 규칙을 다시 로드합니다.
firewall-cmd --reload
# firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/rsyslog파일을 생성하고 다음 내용을 삽입합니다..d/ 디렉토리(예:)에 새.confremotelogserv.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
514는 기본적으로 사용하는 포트 번호rsyslog입니다. 대신 다른 포트를 지정할 수 있습니다./etc/rsyslog.conf 파일을 확인합니다.d/ 디렉터리에 있는 /etc/rsyslogall..conf파일의 구문과rsyslogd -N 1
# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run...Copy to Clipboard Copied! Toggle word wrap Toggle overflow rsyslog서비스를 다시 시작합니다.systemctl restart rsyslog
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
rsyslog가 활성화되지 않은 경우 재부팅 후rsyslog서비스가 자동으로 시작되는지 확인하십시오.systemctl enable rsyslog
# systemctl enable rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.7. UDP를 통해 서버에 원격 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
UDP 프로토콜을 통해 서버로 로그 메시지를 전달하도록 시스템을 구성할 수 있습니다. omfwd 플러그인은 UDP 또는 TCP를 통해 전달을 제공합니다. 기본 프로토콜은 UDP입니다. 플러그인이 빌드되었으므로 로드할 필요가 없습니다.
사전 요구 사항
-
rsyslog패키지는 서버에 보고해야 하는 클라이언트 시스템에 설치됩니다. - UDP를 통해 원격 로깅 정보를 받기 위한 서버 구성에 설명된 대로 원격 로깅 을 위해 서버를 구성했습니다.
절차
/etc/rsyslog.d/디렉토리에 새.conf파일을 만듭니다(예:10-remotelogcli.conf).Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
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
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
rsyslog가 활성화되지 않은 경우 재부팅 후rsyslog서비스가 자동으로 시작되는지 확인하십시오.systemctl enable rsyslog
# systemctl enable rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
logger test
# logger testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 시스템에서
/var/log/remote/msg/hostname/root.log 로그를 확인합니다.예를 들면 다음과 같습니다.cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
hostname은 클라이언트 시스템의 호스트 이름입니다. 로그에는 로거 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root).
6.1.8. Rsyslog의 로드 밸런싱 도우미 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에서 사용하는 경우 RebindInterval 설정을 수정하여 Rsyslog 로드 밸런싱을 개선할 수 있습니다.
RebindInterval 은 현재 연결이 끊어지고 다시 설정된 간격을 지정합니다. 이 설정은 TCP, UDP 및 RELP 트래픽에 적용됩니다. 로드 밸런서는 새 연결로 인식하여 메시지를 다른 물리적 대상 시스템으로 전달합니다.
RebindInterval 은 대상 시스템이 IP 주소를 변경한 경우 유용합니다. Rsyslog 애플리케이션은 연결이 설정될 때 IP 주소를 캐시하므로 메시지가 동일한 서버로 전송됩니다. IP 주소가 변경되면 Rsyslog 서비스가 다시 시작될 때까지 UDP 패킷이 손실됩니다. 연결을 다시 설정하면 IP가 DNS에서 다시 확인됩니다.
TCP, UDP 및 RELP 트래픽에 대한 RebindInterval 사용 예
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" …)
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" …)
6.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_")
module(load="omrelp") *.* action(type="omrelp" target="_target_IP_" port="_target_port_")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
target_IP는 로깅 서버의 IP 주소입니다. -
target_port는 로깅 서버의 포트입니다.
-
-
/etc/octets.d/relpclient.conf파일에 변경 사항을 저장합니다. rsyslog서비스를 다시 시작합니다.systemctl restart rsyslog
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
rsyslog가 활성화되지 않은 경우 재부팅 후rsyslog서비스가 자동으로 시작되는지 확인하십시오.systemctl enable rsyslog
# systemctl enable rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
안정적인 원격 로깅을 위해 서버 시스템을 구성합니다.
서버 시스템에서
/etc/rsyslog파일을 생성합니다(예:.d/ 디렉터리에 새.confrelpserv.conf).Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
log_path는 메시지를 저장하는 경로를 지정합니다. -
target_port는 로깅 서버의 포트입니다. 클라이언트 구성 파일과 동일한 값을 사용합니다.
-
-
/etc/rsyslog.d/relpserv.conf파일에 변경 사항을 저장합니다. rsyslog서비스를 다시 시작합니다.systemctl restart rsyslog
# systemctl restart rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
rsyslog가 활성화되지 않은 경우 재부팅 후rsyslog서비스가 자동으로 시작되는지 확인하십시오.systemctl enable rsyslog
# systemctl enable rsyslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.
클라이언트 시스템에서 테스트 메시지를 전송합니다.
logger test
# logger testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 시스템에서 지정된
log_path의 로그를 확인합니다. 예를 들면 다음과 같습니다.cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
hostname은 클라이언트 시스템의 호스트 이름입니다. 로그에는 로거 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root).
6.1.10. 지원되는 Rsyslog 모듈 링크 복사링크가 클립보드에 복사되었습니다!
Rsyslog 애플리케이션의 기능을 확장하려면 특정 모듈을 사용할 수 있습니다. 모듈은 추가 입력(Input Modules), 출력(Output Modules) 및 기타 기능을 제공합니다. 모듈은 모듈을 로드한 후 사용할 수 있는 추가 구성 지시문도 제공할 수 있습니다.
다음 명령을 입력하여 시스템에 설치된 입력 및 출력 모듈을 나열할 수 있습니다.
ls /usr/lib64/rsyslog/{i,o}m*
# ls /usr/lib64/rsyslog/{i,o}m*
패키지를 설치한 후 rsyslog -doc/usr/share/doc/rsyslog/html/configuration/modules/idx_output.html 파일에서 사용 가능한 모든 rsyslog 모듈 목록을 볼 수 있습니다.
6.1.11. 커널 메시지를 원격 호스트에 기록하도록 netconsole 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
디스크에 로깅하거나 직렬 콘솔을 사용할 수 없는 경우 netconsole 커널 모듈과 동일한 이름의 서비스를 사용하여 네트워크를 통해 커널 메시지를 원격 rsyslog 서비스에 기록할 수 있습니다.
사전 요구 사항
-
rsyslog와 같은 시스템 로그 서비스가 원격 호스트에 설치되어 있습니다. - 원격 시스템 로그 서비스는 이 호스트에서 들어오는 로그 항목을 수신하도록 구성됩니다.
절차
netconsole-service패키지를 설치합니다.yum install netconsole-service
# yum install netconsole-serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/netconsole파일을 편집하고SYSLOGADDR매개변수를 원격 호스트의 IP 주소로 설정합니다.SYSLOGADDR=192.0.2.1
# SYSLOGADDR=192.0.2.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow netconsole서비스를 활성화하고 시작합니다.systemctl enable --now netconsole
# systemctl enable --now netconsoleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
원격 시스템 로그 서버에
/var/log/ECDHE 파일을 표시합니다.