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/ 디렉토리에 있습니다. httpdsamba 와 같은 일부 애플리케이션은 /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 서비스가 실행 중입니다.

절차

  1. 선택 사항: rsyslog 트래픽에 다른 포트를 사용하려면 syslogd_port_t SELinux 유형을 포트에 추가합니다. 예를 들어 포트 30514 를 활성화합니다.

    # semanage port -a -t syslogd_port_t -p tcp 30514
  2. 선택 사항: rsyslog 트래픽에 다른 포트를 사용하려면 해당 포트에서 들어오는 rsyslog 트래픽을 허용하도록 firewalld 를 구성합니다. 예를 들어 포트 30514 에서 TCP 트래픽을 허용합니다.

    # firewall-cmd --zone=<zone-name> --permanent --add-port=30514/tcp
    success
    # firewall-cmd --reload
  3. /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")
  4. /etc/rsyslog.d/remotelog.conf 파일에 변경 사항을 저장합니다.
  5. /etc/rsyslog.conf 파일의 구문을 테스트합니다.

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-2.el8, config validation run...
    rsyslogd: End of config validation run. Bye.
  6. 로깅 서버에서 rsyslog 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

    # systemctl status rsyslog
  7. rsyslog 서비스를 다시 시작합니다.

    # systemctl restart rsyslog
  8. 선택 사항: 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 패키지가 포함되어 있습니다.

절차

  1. /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 설정은 디스크 스토리지를 정의합니다. 백업 파일은 이전 global workDirectory 지시문에서 지정한 작업 디렉터리에 example_fwd 접두사를 사용하여 생성됩니다.
    • action.resumeRetryCount -1 설정은 서버가 응답하지 않는 경우 연결을 다시 시도할 때 rsyslog 가 메시지를 삭제하지 않도록 합니다.
    • rsyslog 가 종료되면 queue.saveOnShutdown="on" 설정은 메모리 내 데이터를 저장합니다.
    • 마지막 줄은 수신된 모든 메시지를 로깅 서버로 전달합니다. 포트 사양은 선택 사항입니다.

      이 구성을 사용하면 rsyslog 에서 서버로 메시지를 전송하지만 원격 서버에 연결할 수 없는 경우 메시지를 메모리에 유지합니다. 디스크의 파일은 rsyslog 가 구성된 메모리 대기열 공간에서 부족하거나 시스템 성능을 향상시킬 수 있는 를 종료해야 하는 경우에만 생성됩니다.

    참고

    rsyslog는 사전 순서로 구성 파일 /etc/rsyslog.d/ 를 처리합니다.

  2. rsyslog 서비스를 다시 시작합니다.

    # systemctl restart rsyslog

검증

클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.

  1. 클라이언트 시스템에서 테스트 메시지를 전송합니다.

    # logger test
  2. 서버 시스템에서 /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 - 클라이언트의 개인 키입니다.

절차

  1. 클라이언트 시스템에서 암호화된 로그를 수신하도록 서버를 구성합니다.

    1. /etc/journal.d/ 디렉토리에 라는 새 파일을 만듭니다(예: securelogser.conf ).
    2. 통신을 암호화하려면 구성 파일에 서버의 인증서 파일 경로, 선택한 인증 방법 및 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 패키지로 설치된 설명서를 참조하십시오.

    3. /etc/octets.d/securelogser.conf 파일에 변경 사항을 저장합니다.
    4. /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.
    5. 로깅 서버에서 rsyslog 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

      # systemctl status rsyslog
    6. rsyslog 서비스를 다시 시작하십시오.

      # systemctl restart rsyslog
    7. 선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후 rsyslog 서비스가 자동으로 시작됩니다.

      # systemctl enable rsyslog
  2. 암호화된 로그를 서버에 전송하도록 클라이언트를 구성합니다.

    1. 클라이언트 시스템에서 /etc/journal.d/ 디렉토리에 라는 새 파일을 만듭니다(예: securelogcli.conf ).
    2. /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" 구성 옵션을 사용합니다.

    3. /etc/rsyslog.d/securelogcli.conf 파일에 변경 사항을 저장합니다.
    4. /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.
    5. 로깅 서버에서 rsyslog 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

      # systemctl status rsyslog
    6. rsyslog 서비스를 다시 시작하십시오.

      # systemctl restart rsyslog
    7. 선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후 rsyslog 서비스가 자동으로 시작됩니다.

      # systemctl enable rsyslog

검증

클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.

  1. 클라이언트 시스템에서 테스트 메시지를 전송합니다.

    # logger test
  2. 서버 시스템에서 /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.htmlrsyslog-doc 패키지와 함께 설치된 설명서입니다.
  • TLS에서 로깅 시스템 역할 사용.

9.1.6. UDP를 통해 원격 로깅 정보를 받기 위한 서버 설정

Rsyslog 애플리케이션을 사용하면 원격 시스템에서 로깅 정보를 수신하도록 시스템을 구성할 수 있습니다. UDP를 통해 원격 로깅을 사용하려면 서버와 클라이언트를 둘 다 구성합니다. 수신 서버는 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석합니다. 기본적으로 rsyslog 는 포트 514 에서 UDP를 사용하여 원격 시스템에서 로그 정보를 받습니다.

다음 절차에 따라 UDP 프로토콜을 통해 하나 이상의 클라이언트 시스템에서 전송한 로그를 수집하고 분석하기 위해 서버를 구성합니다.

사전 요구 사항

  • rsyslog가 서버 시스템에 설치되어 있습니다.
  • 서버에서 root 로 로그인했습니다.
  • semanage 명령을 사용하여 선택적 단계를 위해 policycoreutils-python-utils 패키지가 설치됩니다.
  • firewalld 서비스가 실행 중입니다.

절차

  1. 선택 사항: 기본 포트 514 가 아닌 rsyslog 트래픽에 다른 포트를 사용하려면 다음을 수행합니다.

    1. syslogd_port_t SELinux 유형을 SELinux 정책 구성에 추가하고 portnorsyslog 에서 사용할 포트 번호로 바꿉니다.

      # semanage port -a -t syslogd_port_t -p udp portno
    2. 들어오는 rsyslog 트래픽을 허용하고 portno 를 포트 번호 및 영역으로 교체하여 rsyslog 에서 사용할 영역으로 교체하도록 firewalld 를 구성합니다.

      # firewall-cmd --zone=zone --permanent --add-port=portno/udp
      success
      # firewall-cmd --reload
    3. 방화벽 규칙을 다시 로드합니다.

      # firewall-cmd --reload
  2. /etc/rsyslog .d/ 디렉토리(예: remotelogserv. conf )에 새.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 입니다. 대신 다른 포트를 지정할 수 있습니다.

  3. /etc/rsyslog. d/ 디렉터리에 있는 /etc/rsyslog .conf 파일의 구문과 all. conf 파일을 확인합니다.

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-2.el8, config validation run...
  4. rsyslog 서비스를 다시 시작합니다.

    # systemctl restart rsyslog
  5. 선택 사항: 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입니다. 플러그인이 빌드되었으므로 로드할 필요가 없습니다.

사전 요구 사항

절차

  1. /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/ 를 처리합니다.

  2. rsyslog 서비스를 다시 시작합니다.

    # systemctl restart rsyslog
  3. 선택 사항: rsyslog 가 활성화되지 않은 경우 재부팅 후 rsyslog 서비스가 자동으로 시작되는지 확인하십시오.

    # systemctl enable rsyslog

검증

클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.

  1. 클라이언트 시스템에서 테스트 메시지를 전송합니다.

    # logger test
  2. 서버 시스템에서 /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.htmlrsyslog-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에서 허용되며 방화벽에서 열립니다.

절차

  1. 안정적인 원격 로깅을 위해 클라이언트 시스템을 구성합니다.

    1. 클라이언트 시스템에서 /etc/journal.d/ 디렉토리에 새 . conf 파일을 만듭니다(예: relpclient.conf ).

      module(load="omrelp")
      *.* action(type="omrelp" target="_target_IP_" port="_target_port_")

      다음과 같습니다.

      • target_IP 는 로깅 서버의 IP 주소입니다.
      • target_port 는 로깅 서버의 포트입니다.
    2. /etc/octets.d/relpclient.conf 파일에 변경 사항을 저장합니다.
    3. rsyslog 서비스를 다시 시작합니다.

      # systemctl restart rsyslog
    4. 선택 사항: rsyslog 가 활성화되지 않은 경우 재부팅 후 rsyslog 서비스가 자동으로 시작되는지 확인하십시오.

      # systemctl enable rsyslog
  2. 안정적인 원격 로깅을 위해 서버 시스템을 구성합니다.

    1. 서버 시스템에서 /etc/rsyslog .d/ 디렉터리에 새. conf 파일을 생성합니다(예: relpserv.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 는 로깅 서버의 포트입니다. 클라이언트 구성 파일과 동일한 값을 사용합니다.
    2. /etc/rsyslog.d/relpserv.conf 파일에 변경 사항을 저장합니다.
    3. rsyslog 서비스를 다시 시작합니다.

      # systemctl restart rsyslog
    4. 선택 사항: rsyslog 가 활성화되지 않은 경우 재부팅 후 rsyslog 서비스가 자동으로 시작되는지 확인하십시오.

      # systemctl enable rsyslog

검증

클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.

  1. 클라이언트 시스템에서 테스트 메시지를 전송합니다.

    # logger test
  2. 서버 시스템에서 지정된 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 와 같은 시스템 로그 서비스가 원격 호스트에 설치되어 있습니다.
  • 원격 시스템 로그 서비스는 이 호스트에서 들어오는 로그 항목을 수신하도록 구성됩니다.

절차

  1. netconsole-service 패키지를 설치합니다.

    # yum install netconsole-service
  2. /etc/sysconfig/netconsole 파일을 편집하고 SYSLOGADDR 매개변수를 원격 호스트의 IP 주소로 설정합니다.

    # SYSLOGADDR=192.0.2.1
  3. netconsole 서비스를 활성화하고 시작합니다.

    # systemctl enable --now netconsole

검증

  • 원격 시스템 로그 서버에 /var/log/ ECDHE 파일을 표시합니다.

9.1.12. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.