15.4. TCP를 통해 서버에 원격 로깅 구성

TCP 프로토콜을 통해 로그 메시지를 서버로 전달하도록 시스템을 구성하려면 다음 절차를 따르십시오. omfwd 플러그인은 UDP 또는 TCP를 통해 전달을 제공합니다. 기본 프로토콜은 UDP입니다. 플러그인이 내장되어 있으므로 로드할 필요가 없습니다.

사전 요구 사항

  • rsyslog 패키지는 서버에 보고해야 하는 클라이언트 시스템에 설치됩니다.
  • 원격 로깅을 위한 서버를 구성했습니다.
  • 지정된 포트는 SELinux에서 허용되며 방화벽에서 열립니다.
  • 시스템에는 SELinux 구성에 비표준 포트를 추가하기 위한 semanage 명령을 제공하는 policycoreutils-python-utils 패키지가 포함되어 있습니다.

절차

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

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

    # systemctl restart rsyslog

검증

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

  1. 클라이언트 시스템에서 테스트 메시지를 보냅니다.

    # logger test
  2. 서버 시스템에서 /var/log/ECDHE 로그를 확인합니다. 예를 들면 다음과 같습니다.

    # cat /var/log/remote/msg/hostname/root.log
    Feb 25 03:53:17 hostname root[6064]: test

    여기서 hostname 은 클라이언트 시스템의 호스트 이름입니다. 로그에 logger 명령을 입력한 사용자의 사용자 이름이 포함되어 있습니다(이 경우 root ).

추가 리소스

  • rsyslogd(8) and rsyslog.conf(5) man pages.
  • /usr/share/doc/ECDHE/html/index.html 파일에 rsyslog-doc 패키지로 설치된 문서입니다.