8장. JSON 로깅 활성화

JSON 문자열을 구조화된 오브젝트로 구문 분석하도록 Log Forwarding API를 구성할 수 있습니다.

8.1. JSON 로그 구문 분석

JSON 로그를 포함한 로그는 일반적으로 message 필드 내에 문자열로 표시됩니다. 따라서 사용자는 JSON 문서 내의 특정 필드를 쿼리하기가 어렵습니다. OpenShift Logging의 Log Forwarding API를 사용하면 JSON 로그를 구조화된 오브젝트로 구문 분석하고 OpenShift Logging 관리 Elasticsearch 또는 Log Forwarding API에서 지원하는 기타 타사 시스템으로 전달할 수 있습니다.

이 작동 방식을 설명하려면 다음과 같이 구조화된 JSON 로그 항목이 있다고 가정합니다.

구조화된 JSON 로그 항목 예

{"level":"info","name":"fred","home":"bedrock"}

일반적으로 ClusterLogForwarder CR(사용자 정의 리소스)은 해당 로그 항목을 message 필드에 전달합니다. message 필드에는 다음 예와 같이 JSON 로그 항목과 동등한 JSON 인용 문자열이 포함되어 있습니다.

message 필드 예

{"message":"{\"level\":\"info\",\"name\":\"fred\",\"home\":\"bedrock\"",
 "more fields..."}

JSON 로그를 구문 분석할 수 있도록 다음 예제와 같이 parse: jsonClusterLogForwarder CR의 파이프라인에 추가합니다.

parse: json을 보여주는 코드 조각 예

pipelines:
- inputRefs: [ application ]
  outputRefs: myFluentd
  parse: json

parse: json을 사용하여 JSON 로그를 구문 분석하는 경우 CR은 다음 예와 같이 structured 필드에 JSON 구조 로그 항목을 복사합니다. 원본 message 필드를 수정하지 않습니다.

구조화된 JSON 로그 항목이 포함된 structured 출력 예

{"structured": { "level": "info", "name": "fred", "home": "bedrock" },
 "more fields..."}

중요

로그 항목에 유효한 구조화된 JSON이 포함되어 있지 않으면 structured 필드가 없습니다.

특정 로깅 플랫폼에 대한 JSON 로그를 구문 분석할 수 있도록 하려면 타사 시스템으로 로그 전달을 참조하십시오.