13.3. 메타데이터로 로그 필터링

ClusterLogForwarder CR에서 로그를 필터링하여 입력 선택기를 사용하여 메타데이터를 기반으로 전체 로그 스트림을 선택하거나 무시할 수 있습니다. 관리자 또는 개발자는 로그 컬렉션을 포함하거나 제외하여 수집기의 메모리 및 CPU 부하를 줄일 수 있습니다.

중요

이 기능은 로깅 배포에 Vector 수집기가 설정된 경우에만 사용할 수 있습니다.

참고

입력 사양 필터링은 콘텐츠 필터링과 다릅니다. 입력 선택기는 소스 메타데이터에 따라 전체 로그 스트림을 선택하거나 무시합니다. 콘텐츠 필터는 로그 스트림을 편집하여 레코드 콘텐츠를 기반으로 레코드를 제거하고 수정합니다.

13.3.1. 네임스페이스 또는 컨테이너 이름을 포함하거나 제외하여 입력 시 애플리케이션 로그 필터링

입력 선택기를 사용하여 네임스페이스 및 컨테이너 이름을 기반으로 애플리케이션 로그를 포함하거나 제외할 수 있습니다.

사전 요구 사항

  • Red Hat OpenShift Logging Operator가 설치되어 있습니다.
  • 관리자 권한이 있습니다.
  • ClusterLogForwarder CR(사용자 정의 리소스)을 생성했습니다.

절차

  1. ClusterLogForwarder CR에 네임스페이스 및 컨테이너 이름을 포함하거나 제외하는 구성을 추가합니다.

    다음 예제에서는 네임스페이스 및 컨테이너 이름을 포함하거나 제외하도록 ClusterLogForwarder CR을 구성하는 방법을 보여줍니다.

    ClusterLogForwarder CR의 예

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    # ...
    spec:
      inputs:
        - name: mylogs
          application:
            includes:
              - namespace: "my-project" 1
                container: "my-container" 2
            excludes:
              - container: "other-container*" 3
                namespace: "other-namespace" 4
    # ...

    1
    이러한 네임스페이스에서만 로그를 수집하도록 지정합니다.
    2
    이러한 컨테이너에서만 로그를 수집하도록 지정합니다.
    3
    로그를 수집할 때 무시할 네임스페이스 패턴을 지정합니다.
    4
    로그를 수집할 때 무시할 컨테이너 세트를 지정합니다.
  2. 다음 명령을 실행하여 ClusterLogForwarder CR을 적용합니다.

    $ oc apply -f <filename>.yaml

excludes 옵션이 우선합니다.

13.3.2. 레이블 표현식 또는 일치하는 라벨 키와 값을 포함하여 입력 시 애플리케이션 로그 필터링

입력 선택기를 사용하여 라벨 표현식 또는 일치하는 라벨 키와 해당 값을 기반으로 애플리케이션 로그를 포함할 수 있습니다.

사전 요구 사항

  • Red Hat OpenShift Logging Operator가 설치되어 있습니다.
  • 관리자 권한이 있습니다.
  • ClusterLogForwarder CR(사용자 정의 리소스)을 생성했습니다.

절차

  1. ClusterLogForwarder CR의 입력 사양에 필터 구성을 추가합니다.

    다음 예제에서는 라벨 표현식 또는 일치하는 라벨 키/값에 따라 로그를 포함하도록 ClusterLogForwarder CR을 구성하는 방법을 보여줍니다.

    ClusterLogForwarder CR의 예

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    # ...
    spec:
      inputs:
        - name: mylogs
          application:
            selector:
              matchExpressions:
              - key: env 1
                operator: In 2
                values: [“prod”, “qa”] 3
              - key: zone
                operator: NotIn
                values: [“east”, “west”]
              matchLabels: 4
                app: one
                name: app1
    # ...

    1
    일치시킬 레이블 키를 지정합니다.
    2
    Operator를 지정합니다. 유효한 값에는 in,NotIn,ExistsDoesNotExist 가 있습니다.
    3
    문자열 값의 배열을 지정합니다. operator 값이 Exists 또는 DoesNotExist 이면 값 배열이 비어 있어야 합니다.
    4
    정확한 키 또는 값 매핑을 지정합니다.
  2. 다음 명령을 실행하여 ClusterLogForwarder CR을 적용합니다.

    $ oc apply -f <filename>.yaml

13.3.3. 소스로 감사 및 인프라 로그 입력 필터링

입력 선택기를 사용하여 로그를 수집할 감사인프라 소스 목록을 정의할 수 있습니다.

사전 요구 사항

  • Red Hat OpenShift Logging Operator가 설치되어 있습니다.
  • 관리자 권한이 있습니다.
  • ClusterLogForwarder CR(사용자 정의 리소스)을 생성했습니다.

절차

  1. ClusterLogForwarder CR에서 감사인프라 소스를 정의하는 구성을 추가합니다.

    다음 예제에서는 aduitinfrastructure 소스를 정의하도록 ClusterLogForwarder CR을 구성하는 방법을 보여줍니다.

    ClusterLogForwarder CR의 예

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    # ...
    spec:
      inputs:
        - name: mylogs1
          infrastructure:
            sources: 1
              - node
        - name: mylogs2
          audit:
            sources: 2
              - kubeAPI
              - openshiftAPI
              - ovn
    # ...

    1
    수집할 인프라 소스 목록을 지정합니다. 유효한 소스는 다음과 같습니다.
    • Node: 노드에서 저널 로그
    • 컨테이너: 네임스페이스에 배포된 워크로드의 로그
    2
    수집할 감사 소스 목록을 지정합니다. 유효한 소스는 다음과 같습니다.
    • kubeAPI: Kubernetes API 서버의 로그
    • openshiftAPI: OpenShift API 서버의 로그
    • auditd: 노드 auditd 서비스의 로그
    • OVN: 오픈 가상 네트워크 서비스의 로그
  2. 다음 명령을 실행하여 ClusterLogForwarder CR을 적용합니다.

    $ oc apply -f <filename>.yaml