8.3. Elasticsearch 로그 저장소로 JSON 로그 전달
Elasticsearch 로그 저장소의 경우 JSON 로그 항목이 다른 스키마를 따르는 경우 ClusterLogForwarder
사용자 정의 리소스(CR)를 구성하여 각 JSON 스키마를 단일 출력 정의로 그룹화합니다. 이렇게 하면 Elasticsearch는 각 스키마에 대해 별도의 인덱스를 사용합니다.
동일한 인덱스로 다른 스키마를 전달하면 유형 충돌 및 카디널리티 문제가 발생할 수 있으므로 Elasticsearch 저장소로 데이터를 전달하기 전에 이 구성을 수행해야 합니다.
너무 많은 인덱스를 보유하는 것과 관련된 성능 문제를 방지하려면 공통 스키마로 표준화하여 가능한 스키마 수를 유지하는 것이 좋습니다.
절차
다음 조각을
ClusterLogForwarder
CR YAML 파일에 추가합니다.outputDefaults: elasticsearch: structuredTypeKey: <log record field> structuredTypeName: <name> pipelines: - inputRefs: - application outputRefs: default parse: json
-
선택 사항:
structuredTypeKey
를 사용하여 이전 항목에 설명된 대로 로그 레코드 필드 중 하나를 지정하고 Elasticsearch에 대한 JSON 로그 데이터 구성을 지정합니다. 그렇지 않으면 다음 행을 제거합니다. 선택 사항:
structuredTypeName
을 사용하여 이전 항목에 설명된<name>
을 지정하고 Elasticsearch에 대한 JSON 로그 데이터를 구성합니다. 그렇지 않으면 다음 행을 제거합니다.중요JSON 로그를 구문 분석하려면
structuredTypeKey
또는structuredTypeName
,structuredTypeKey
및structuredTypeName
모두를 설정해야 합니다.-
inputRefs
의 경우application,
infrastructure
, 또는audit
등 해당 파이프라인을 사용하여 전달해야 하는 로그 유형을 지정합니다. -
parse: json
요소를 파이프라인에 추가합니다. CR 오브젝트를 생성합니다.
$ oc create -f <file-name>.yaml
Red Hat OpenShift Logging Operator는 Fluentd Pod를 재배포합니다. Pod가 재배포되지 않으면 Fluentd Pod를 삭제하여 강제로 재배포할 수 있습니다.
$ oc delete pod --selector logging-infra=collector
추가 리소스