7.14. 특정 pod에서 애플리케이션 로그 전달
클러스터 관리자는 Kubernetes Pod 레이블을 사용하여 특정 Pod에서 로그 데이터를 수집하여 로그 수집기로 전달할 수 있습니다.
다양한 네임스페이스의 다른 pod와 함께 실행되는 pod로 구성된 애플리케이션이 있다고 가정합니다. 이러한 pod에 애플리케이션을 식별하는 레이블이 있는 경우 로그 데이터를 특정 로그 수집기로 수집하고 출력할 수 있습니다.
Pod 라벨을 지정하려면 하나 이상의 matchLabels
키-값 쌍을 사용합니다. 여러 키-값 쌍을 지정하는 경우 Pod를 모두 선택할 수 있어야 합니다.
절차
ClusterLogForwarder
CR 오브젝트를 정의하는 YAML 파일을 생성하거나 편집합니다. 파일에서 다음 예와 같이inputs[].name.application.selector.matchLabels
에서 간단한 동일성 기반 선택기를 사용하여 Pod 레이블을 지정합니다.ClusterLogForwarder
CR YAML 파일의 예apiVersion: logging.openshift.io/v1 kind: ClusterLogForwarder metadata: name: instance 1 namespace: openshift-logging 2 spec: pipelines: - inputRefs: [ myAppLogData ] 3 outputRefs: [ default ] 4 parse: json 5 inputs: 6 - name: myAppLogData application: selector: matchLabels: 7 environment: production app: nginx namespaces: 8 - app1 - app2 outputs: 9 - default ...
- 1
ClusterLogForwarder
CR의 이름은instance
여야 합니다.- 2
ClusterLogForwarder
CR의 네임스페이스는openshift-logging
이어야 합니다.- 3
inputs[].name
에서 하나 이상의 쉼표로 구분된 값을 지정합니다.- 4
outputs[]
에서 하나 이상의 쉼표로 구분된 값을 지정합니다.- 5
- 선택 사항: 구조화된 JSON 로그 항목을
structured
필드에서 JSON 오브젝트로 전달할지 여부를 지정합니다. 로그 항목에 유효한 구조화된 JSON이 포함되어야 합니다. 그렇지 않으면 OpenShift Logging이structured
필드를 제거하고 대신 기본 인덱스인app-00000x
로 로그 항목을 보냅니다. - 6
- 고유한 pod 레이블 집합이 있는 각 애플리케이션에 대해 고유한
inputs[].name
을 정의합니다. - 7
- 수집하려는 로그 데이터가 있는 Pod 라벨의 키-값 쌍을 지정합니다. 키뿐만 아니라 키와 값 모두를 지정해야 합니다. 선택하려면 Pod가 모든 키-값 쌍과 일치해야 합니다.
- 8
- 선택 사항: 하나 이상의 네임스페이스를 지정합니다.
- 9
- 로그 데이터를 전달할 출력을 하나 이상 지정합니다. 여기에 표시된
default
출력 (선택 사항)은 로그 데이터를 내부 Elasticsearch 인스턴스로 전송합니다.
-
선택 사항: 로그 데이터 수집을 특정 네임스페이스로 제한하려면 위 예제에 표시된 대로
inputs[].name.application.namespaces
를 사용합니다. 선택 사항: Pod 레이블이 다른 추가 애플리케이션에서 동일한 파이프라인으로 로그 데이터를 보낼 수 있습니다.
-
Pod 레이블의 고유한 조합마다 표시된 항목과 유사한 추가
inputs[].name
섹션을 생성합니다. -
이 애플리케이션의 Pod 레이블과 일치하도록
selectors
를 업데이트합니다. 새
inputs[].name
값을inputRefs
에 추가합니다. 예를 들면 다음과 같습니다.- inputRefs: [ myAppLogData, myOtherAppLogData ]
-
Pod 레이블의 고유한 조합마다 표시된 항목과 유사한 추가
CR 오브젝트를 생성합니다.
$ oc create -f <file-name>.yaml
추가 리소스
-
Kubernetes의
matchLabels
에 대한 자세한 내용은 세트 기반 요구 사항을 지원하는 리소스를 참조하십시오.
추가 리소스