7.3. 외부 Elasticsearch 인스턴스로 로그 전달
선택적으로 내부 OpenShift Container Platform Elasticsearch 인스턴스에 추가하거나 대신 외부 Elasticsearch 인스턴스에 로그를 전달할 수 있습니다. OpenShift Container Platform에서 로그 데이터를 수신하도록 외부 로그 집계기를 구성해야 합니다.
외부 Elasticsearch 인스턴스에 대한 로그 전달을 구성하려면 해당 인스턴스에 대한 출력과 출력을 사용하는 파이프라인이 있는 ClusterLogForwarder
사용자 정의 리소스(CR)를 생성합니다. 외부 Elasticsearch 출력은 HTTP(비보안) 또는 HTTPS(보안 HTTP) 연결을 사용할 수 있습니다.
외부 및 내부 Elasticsearch 인스턴스 모두에 로그를 전달하려면 외부 인스턴스에 대한 출력 및 파이프라인과 default
출력을 사용하여 내부 인스턴스로 로그를 전달하는 파이프라인을 생성합니다. default
출력을 생성할 필요가 없습니다. default
출력을 구성하는 경우 default
출력이 Red Hat OpenShift Logging Operator용으로 예약되므로 오류 메시지가 나타납니다.
내부 OpenShift Container Platform Elasticsearch 인스턴스에만 로그를 전달하려는 경우 ClusterLogForwarder
CR을 생성할 필요가 없습니다.
사전 요구 사항
- 지정된 프로토콜 또는 형식을 사용하여 로깅 데이터를 수신하도록 구성된 로깅 서버가 있어야 합니다.
절차
다음과 유사한
ClusterLogForwarder
CR YAML 파일을 생성합니다.apiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance 1 namespace: openshift-logging 2 spec: outputs: - name: elasticsearch-insecure 3 type: "elasticsearch" 4 url: http://elasticsearch.insecure.com:9200 5 - name: elasticsearch-secure type: "elasticsearch" url: https://elasticsearch.secure.com:9200 secret: name: es-secret 6 pipelines: - name: application-logs 7 inputRefs: 8 - application - audit outputRefs: - elasticsearch-secure 9 - default 10 parse: json 11 labels: myLabel: "myValue" 12 - name: infrastructure-audit-logs 13 inputRefs: - infrastructure outputRefs: - elasticsearch-insecure labels: logs: "audit-infra"
- 1
ClusterLogForwarder
CR의 이름은instance
여야 합니다.- 2
ClusterLogForwarder
CR의 네임스페이스는openshift-logging
이어야 합니다.- 3
- 출력 이름을 지정합니다.
- 4
elasticsearch
유형을 지정합니다.- 5
- 외부 Elasticsearch 인스턴스의 URL과 포트를 유효한 절대 URL로 지정합니다.
http
(비보안) 또는https
(보안 HTTP) 프로토콜을 사용할 수 있습니다. CIDR 주석을 사용하는 클러스터 전체 프록시가 활성화된 경우 출력은 IP 주소가 아닌 서버 이름 또는 FQDN이어야 합니다. - 6
https
접두사를 사용하는 경우 TLS 통신을 위해 끝점에서 요구하는 시크릿 이름을 지정해야 합니다. 시크릿은openshift-logging
프로젝트에 있어야 하며 각각의 인증서를 가리키는 tls.crt, tls.key 및 ca-bundle.crt 키가 있어야 합니다.- 7
- 선택 사항: 파이프라인의 이름을 지정합니다.
- 8
application,
infrastructure
, 또는audit
등 해당 파이프라인을 사용하여 전달해야 하는 로그 유형을 지정합니다.- 9
- 로그 전달을 위해 해당 파이프라인과 함께 사용할 출력을 지정합니다.
- 10
- 선택 사항: 로그를 내부 Elasticsearch 인스턴스로 보내려면
기본
출력을 지정합니다. - 11
- 선택 사항: 구조화된 필드의 JSON 오브젝트로
구조화된
JSON 로그 항목을 전달합니다. 로그 항목에 유효한 구조화된 JSON이 포함되어야 합니다. 그렇지 않으면 OpenShift Logging이structured
필드를 제거하고 대신 기본 인덱스인app-00000x
로 로그 항목을 보냅니다. - 12
- 선택 사항: 문자열. 로그에 추가할 하나 이상의 레이블입니다.
- 13
- 선택 사항: 지원되는 유형의 다른 외부 로그 집계기로 로그를 전달하도록 다중 출력을 구성합니다.
- 선택 사항: 파이프라인을 설명하는 이름입니다.
-
inputRefs
는application,
infrastructure
또는audit
등 해당 파이프라인을 사용하여 전달할 로그 유형입니다. -
outputRefs
는 사용할 출력의 이름입니다. - 선택 사항: 문자열. 로그에 추가할 하나 이상의 레이블입니다.
CR 오브젝트를 생성합니다.
$ oc create -f <file-name>.yaml
Red Hat OpenShift Logging Operator는 Fluentd Pod를 재배포합니다. Pod가 재배포되지 않으면 Fluentd Pod를 삭제하여 강제로 재배포할 수 있습니다.
$ oc delete pod --selector logging-infra=fluentd