11.2. 동일한 Pod의 컨테이너에서 JSON 로그를 별도의 인덱스로 전달
동일한 Pod 내의 다른 컨테이너의 구조화된 로그를 다른 인덱스로 전달할 수 있습니다. 이 기능을 사용하려면 다중 컨테이너 지원을 사용하여 파이프라인을 구성하고 Pod에 주석을 달아야 합니다. 로그는 app-
접두사를 사용하여 인덱스에 기록됩니다. Elasticsearch는 이를 수용하기 위해 별칭으로 구성하는 것이 좋습니다.
로그 JSON 형식은 애플리케이션에 따라 다릅니다. 인덱스를 너무 많이 생성하면 성능에 영향을 미치므로 이 기능을 사용하여 호환되지 않는 JSON 형식이 있는 로그에 대한 인덱스를 생성할 수 있습니다. 쿼리를 사용하여 다른 네임스페이스 또는 호환 가능한 JSON 형식의 애플리케이션에서 로그를 구분합니다.
사전 요구 사항
- logging subsystem for Red Hat OpenShift: 5.5
프로세스
ClusterLogForwarder
CR 오브젝트를 정의하는 YAML 파일을 생성하거나 편집합니다.apiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging spec: outputDefaults: elasticsearch: enableStructuredContainerLogs: true 1 pipelines: - inputRefs: - application name: application-logs outputRefs: - default parse: json
- 1
- 멀티 컨테이너 출력을 활성화합니다.
Pod
CR 오브젝트를 정의하는 YAML 파일을 생성하거나 편집합니다.apiVersion: v1 kind: Pod metadata: annotations: containerType.logging.openshift.io/heavy: heavy 1 containerType.logging.openshift.io/low: low spec: containers: - name: heavy 2 image: heavyimage - name: low image: lowimage
이 설정은 클러스터의 shard 수를 크게 늘릴 수 있습니다.
추가 리소스