11.5. 로깅 시스템 역할을 사용하여 원격 로깅 솔루션 적용


다음 단계에 따라 Red Hat Ansible Core 플레이북을 준비 및 적용하여 원격 로깅 솔루션을 구성합니다. 이 플레이북에서 하나 이상의 클라이언트는 systemd-journal 에서 로그를 가져와 원격 서버로 전달합니다. 서버는 remote_rsyslogremote_files 에서 원격 입력을 수신하고 원격 호스트 이름으로 이름이 지정된 디렉토리의 로컬 파일에 로그를 출력합니다.

사전 요구 사항

  • 로깅 시스템 역할을 사용하여 구성할 하나 이상의 관리형 노드에 대한 액세스 및 권한.
  • Red Hat Ansible Core가 기타 시스템을 구성하는 시스템인 제어 노드 액세스 및 사용 권한.

    제어 노드에서 다음이 있어야 합니다.

    • ansible-corerhel-system-roles 패키지가 설치됩니다.
    • 관리 노드를 나열하는 인벤토리 파일.
참고

시스템 역할은 배포 시 rsyslog 를 설치하기 때문에 rsyslog 패키지를 설치할 필요가 없습니다.

절차

  1. 필요한 역할을 정의하는 플레이북을 생성합니다.

    1. 새 YAML 파일을 생성하고 텍스트 편집기에서 엽니다. 예를 들면 다음과 같습니다.

      # vi logging-playbook.yml
    2. 파일에 다음 내용을 삽입합니다.

      ---
      - name: Deploying remote input and remote_files output
        hosts: server
        roles:
          - rhel-system-roles.logging
        vars:
          logging_inputs:
            - name: remote_udp_input
              type: remote
              udp_ports: [ 601 ]
            - name: remote_tcp_input
              type: remote
              tcp_ports: [ 601 ]
          logging_outputs:
            - name: remote_files_output
              type: remote_files
          logging_flows:
            - name: flow_0
              inputs: [remote_udp_input, remote_tcp_input]
              outputs: [remote_files_output]
      
      - name: Deploying basics input and forwards output
        hosts: clients
        roles:
          - rhel-system-roles.logging
        vars:
          logging_inputs:
            - name: basic_input
              type: basics
          logging_outputs:
            - name: forward_output0
              type: forwards
              severity: info
              target: _host1.example.com_
              udp_port: 601
            - name: forward_output1
              type: forwards
              facility: mail
              target: _host1.example.com_
              tcp_port: 601
          logging_flows:
            - name: flows0
              inputs: [basic_input]
              outputs: [forward_output0, forward_output1]
      
      [basic_input]
      [forward_output0, forward_output1]

      여기서 host1.example.com 은 로깅 서버입니다.

      참고

      필요에 맞게 플레이북의 매개변수를 수정할 수 있습니다.

      주의

      로깅 솔루션은 서버 또는 클라이언트 시스템의 SELinux 정책에 정의된 포트에서만 작동하며 방화벽에서 열립니다. 기본 SELinux 정책에는 포트 601, 514, 6514, 10514 및 20514가 포함됩니다. 다른 포트를 사용하려면 클라이언트 및 서버 시스템에서 SELinux 정책을 수정 합니다. 시스템 역할을 통한 방화벽 구성은 아직 지원되지 않습니다.

  2. 서버 및 클라이언트를 나열하는 인벤토리 파일을 생성합니다.

    1. 새 파일을 생성하고 텍스트 편집기에서 엽니다. 예를 들면 다음과 같습니다.

      # vi inventory.ini
    2. 인벤토리 파일에 다음 내용을 삽입합니다.

      [servers]
      server ansible_host=host1.example.com
      [clients]
      client ansible_host=host2.example.com

      다음과 같습니다.

      • host1.example.com 은 로깅 서버입니다.
      • host2.example.com 은 로깅 클라이언트입니다.
  3. 인벤토리에서 플레이북을 실행합니다.

    # ansible-playbook -i /path/to/file/inventory.ini /path/to/file/_logging-playbook.yml

    다음과 같습니다.

    • inventory.ini 는 인벤토리 파일입니다.
    • logging-playbook.yml 은 사용자가 생성한 플레이북입니다.

검증

  1. 클라이언트 및 서버 시스템에서 /etc/rsyslog.conf 파일의 구문을 테스트합니다.

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-6.el8, config validation run (level 1), master config /etc/rsyslog.conf
    rsyslogd: End of config validation run. Bye.
  2. 클라이언트 시스템이 서버에 메시지를 전송하는지 확인합니다.

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

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

      # cat /var/log/messages
      Aug  5 13:48:31 host2.example.com root[6778]: test

      여기서 host2.example.com 은 클라이언트 시스템의 호스트 이름입니다. 로그에는 logger 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우 루트 ).

추가 리소스

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat, Inc.