15장. 로깅 시스템 역할 사용


시스템 관리자는 로깅 시스템 역할을 사용하여 Red Hat Enterprise Linux 호스트를 로깅 서버로 구성하여 많은 클라이언트 시스템에서 로그를 수집할 수 있습니다.

15.1. 로깅 RHEL 시스템 역할을 사용하여 로컬 로그 메시지 필터링

로깅 RHEL 시스템 역할의 속성 기반 필터를 사용하여 다양한 조건에 따라 로컬 로그 메시지를 필터링할 수 있습니다. 예를 들어 다음을 수행할 수 있습니다.

  • 로그 명확성: 트래픽이 많은 환경에서는 로그가 빠르게 증가할 수 있습니다. 오류와 같은 특정 메시지에 중점을 두면 문제를 보다 신속하게 식별하는 데 도움이 될 수 있습니다.
  • 최적화된 시스템 성능: 과도한 양의 로그는 일반적으로 시스템 성능 저하와 연결됩니다. 중요한 이벤트에 대해서만 선택적 로깅을 수행하면 리소스 소모를 방지할 수 있으므로 시스템이 더 효율적으로 실행될 수 있습니다.
  • 강화된 보안: 시스템 오류 및 실패한 로그인과 같은 보안 메시지를 효율적으로 필터링하면 관련 로그만 캡처할 수 있습니다. 이는 위반을 탐지하고 규정 준수 표준을 준수하는 데 중요합니다.

사전 요구 사항

절차

  1. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    ---
    - name: Deploy the logging solution
      hosts: managed-node-01.example.com
      tasks:
        - name: Filter logs based on a specific value they contain
          ansible.builtin.include_role:
            name: rhel-system-roles.logging
          vars:
            logging_inputs:
              - name: files_input
                type: basics
            logging_outputs:
              - name: files_output0
                type: files
                property: msg
                property_op: contains
                property_value: error
                path: /var/log/errors.log
              - name: files_output1
                type: files
                property: msg
                property_op: "!contains"
                property_value: error
                path: /var/log/others.log
            logging_flows:
              - name: flow0
                inputs: [files_input]
                outputs: [files_output0, files_output1]

    예제 플레이북에 지정된 설정은 다음과 같습니다.

    logging_inputs
    로깅 입력 사전 목록을 정의합니다. 유형: 기본 옵션은 systemd 저널 또는 Unix 소켓의 입력을 다룹니다.
    logging_outputs
    로깅 출력 사전 목록을 정의합니다. type: files 옵션은 일반적으로 /var/log/ 디렉터리에 있는 로컬 파일에 로그 저장을 지원합니다. 속성: msg; property: contains; 및 property_value: 오류 옵션은 오류 문자열이 포함된 모든 로그가 /var/log/errors.log 파일에 저장되도록 지정합니다. 속성: msg; 속성: !contains; 및 property_value: 오류 옵션은 다른 모든 로그가 /var/log/others.log 파일에 저장되도록 지정합니다. 오류 값을 필터링할 문자열로 교체할 수 있습니다.
    logging_flows
    logging_inputslogging_outputs 간의 관계를 지정하는 로깅 흐름 사전 목록을 정의합니다. inputs: [files_input] 옵션은 로그 처리가 시작되는 입력 목록을 지정합니다. outputs: [files_output0, files_output1] 옵션은 로그가 전송되는 출력 목록을 지정합니다.

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.logging/README.md 파일을 참조하십시오.

  2. 플레이북 구문을 확인합니다.

    $ ansible-playbook --syntax-check ~/playbook.yml

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  3. 플레이북을 실행합니다.

    $ ansible-playbook ~/playbook.yml

검증

  1. 관리 노드에서 /etc/rsyslog.conf 파일의 구문을 테스트합니다.

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-6.el8, config validation run...
    rsyslogd: End of config validation run. Bye.
  2. 관리 노드에서 오류 문자열이 포함된 메시지를 로그에 전송하는지 확인합니다.

    1. 테스트 메시지를 보냅니다.

      # logger error
    2. /var/log/errors.log 로그를 확인합니다. 예를 들면 다음과 같습니다.

      # cat /var/log/errors.log
      Aug  5 13:48:31 hostname root[6778]: error

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

추가 리소스

  • /usr/share/ansible/roles/rhel-system-roles.logging/README.md 파일
  • /usr/share/doc/rhel-system-roles/logging/ 디렉터리
  • rsyslog.conf(5)syslog Cryostat 매뉴얼 페이지
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.