2.6. OpenTelemetry 데이터 모델
이 문서에서는 로깅 6.1을 사용한 Red Hat OpenShift Logging의 OpenTelemetry 지원에 대한 프로토콜 및 의미 규칙에 대해 간단히 설명합니다.
OTLP(OpenTelemetry Protocol) 출력 로그 전달자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
2.6.1. 전달 및 수집 프로토콜
Red Hat OpenShift Logging은 OTLP 사양 을 사용하여 OpenTelemetry 끝점으로 로그를 수집하고 전달합니다. OTLP 인코딩, 전송 및 Telemetry 데이터를 제공합니다. 로그 스트림을 수집하는 OTLP endpont을 제공하는 Loki 스토리지를 배포할 수도 있습니다. 이 문서에서는 다양한 OpenShift 클러스터 소스에서 수집된 로그에 대한 의미 규칙을 정의합니다.
2.6.2. 의미 체계 규칙
이 솔루션의 로그 수집기는 다음 로그 스트림을 수집합니다.
- 컨테이너 로그
- 클러스터 노드 저널 로그
- 클러스터 노드 auditd 로그
- Kubernetes 및 OpenShift API 서버 로그
- OpenShift Virtual Network(OVN) 로그
OpenTelemetry 의미 체계 특성에 의해 정의된 의미 규칙에 따라 이러한 스트림을 전달할 수 있습니다. OpenTelemetry의 의미 체계 규칙은 속성을 통해 식별되는 원격 분석을 생성하는 엔티티의 불변 표현으로 리소스를 정의합니다. 예를 들어 컨테이너에서 실행되는 프로세스에는 container_name
,cluster_id
,pod_name
,namespace
, deployment
또는 app_name
과 같은 특성이 포함됩니다. 이러한 속성은 리소스 오브젝트 아래에 그룹화되므로 반복을 줄이고 로그 전송을 원격 분석 데이터로 최적화할 수 있습니다.
리소스 속성 외에도 로그에는 각 로그 항목과 관련된 조정 라이브러리 및 로그 속성과 관련된 범위 속성이 포함될 수 있습니다. 이러한 속성은 각 로그 항목에 대해 자세히 설명하고 스토리지의 로그를 쿼리할 때 필터링 기능을 향상시킵니다.
다음 섹션에서는 일반적으로 전달되는 속성을 정의합니다.
2.6.2.1. 로그 항목 구조
모든 로그 스트림에는 다음 로그 데이터 필드가 포함됩니다.
적용 가능한 소스 열은 각 필드가 적용되는 로그 소스를 나타냅니다.
-
all
: 이 필드는 모든 로그에 있습니다. -
컨테이너
: 이 필드는 애플리케이션 및 인프라 둘 다에 Kubernetes 컨테이너 로그에 있습니다. -
audit
: 이 필드는 Kubernetes, OpenShift API 및 OVN 로그에 있습니다. -
auditd
: 이 필드는 노드 auditd 로그에 있습니다. -
저널
: 이 필드는 노드 저널 로그에 있습니다.
이름 | 적용 가능한 소스 | 댓글 |
---|---|---|
| all | |
| all | |
| all | |
| 컨테이너, 저널 | |
| all | (선택 사항) 스트림 특정 특성을 전달할 때 우선순위 |
2.6.2.2. 속성
로그 항목에는 다음 표에 설명된 대로 소스 기반의 리소스, 범위 및 로그 속성 세트가 포함됩니다.
Location 열은 특성 유형을 지정합니다.
-
resource
: resource 특성을 나타냅니다. -
scope
: scope 특성을 나타냅니다. -
log
: 로그 특성을 나타냅니다.
스토리지 열은 기본 openshift-logging
모드를 사용하여 특성이 LokiStack에 저장되는지 여부를 나타내며 특성이 저장된 위치를 지정합니다.
스트림 레이블
:- 특정 레이블을 기반으로 효율적으로 필터링 및 쿼리를 수행할 수 있습니다.
-
Loki Operator가 구성에 이 속성을 적용하는 경우
필요에 따라
레이블을 지정할 수 있습니다.
구조화된 메타데이터
:- 키-값 쌍의 자세한 필터링 및 스토리지를 허용합니다.
- 사용자가 JSON 구문 분석 없이도 직접 라벨을 사용하여 간소화된 쿼리에 사용할 수 있습니다.
OTLP를 사용하면 사용자가 JSON 구문 분석을 사용하는 대신 레이블로 직접 쿼리를 필터링하여 쿼리의 속도와 효율성을 개선할 수 있습니다.
이름 | 위치 | 적용 가능한 소스 | 스토리지(LokiStack) | 댓글 |
---|---|---|---|---|
| resource | all | 필수 스트림 레이블 |
(DEPRECATED) 호환성 속성에 |
| resource | all | 필수 스트림 레이블 |
(DEPRECATED) 호환성 속성에 |
| resource | container | 스트림 레이블 |
(DEPRECATED) 호환성 속성에 |
| resource | all | 스트림 레이블 |
(DEPRECATED) 호환성 속성에 |
| resource | container | 필수 스트림 레이블 |
(DEPRECATED) 호환성 속성에 |
| resource | container | 스트림 레이블 |
(DEPRECATED) 호환성 속성에 |
| resource | all |
(DEPRECATED) 호환성 속성에 | |
| log | 컨테이너, 저널 |
(DEPRECATED) 호환성 속성에는 | |
| resource | all | 필수 스트림 레이블 | |
| resource | all | 필수 스트림 레이블 | |
| resource | all | 필수 스트림 레이블 | |
| resource | all | 구조화된 메타데이터 | |
| resource | all | 스트림 레이블 | |
| resource | container | 필수 스트림 레이블 | |
| resource | container | 스트림 레이블 | |
| resource | container | 구조화된 메타데이터 | |
| resource | container | 스트림 레이블 | |
| resource | container | 구조화된 메타데이터 | |
| resource | container | 스트림 레이블 | Pod 작성자를 기반으로 조건부 전달 |
| resource | container | 스트림 레이블 | Pod 작성자를 기반으로 조건부 전달 |
| resource | container | 스트림 레이블 | Pod 작성자를 기반으로 조건부 전달 |
| resource | container | 스트림 레이블 | Pod 작성자를 기반으로 조건부 전달 |
| resource | container | 구조화된 메타데이터 | Pod 작성자를 기반으로 조건부 전달 |
| resource | container | 스트림 레이블 | Pod 작성자를 기반으로 조건부 전달 |
| log | container | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| log | audit | 구조화된 메타데이터 | |
| resource | journal | 구조화된 메타데이터 | |
| resource | journal | 구조화된 메타데이터 | |
| resource | journal | 구조화된 메타데이터 | |
| resource | journal | 구조화된 메타데이터 | |
| resource | journal | 스트림 레이블 | |
| log | journal | 구조화된 메타데이터 | |
| log | journal | 구조화된 메타데이터 |
호환성 특성으로 표시된 속성은 ViaQ 데이터 모델과의 이전 버전과 최소 호환성을 지원합니다. 이러한 속성은 더 이상 사용되지 않으며 지속적인 UI 기능을 보장하기 위해 호환성 계층으로 작동합니다. 이러한 속성은 Logging UI가 향후 릴리스에서 OpenTelemetry 카운터를 완전히 지원할 때까지 계속 지원됩니다.
Loki는 스토리지로 유지할 때 속성 이름을 변경합니다. 이름은 소문자로 표시되고 집합의 모든 문자(,/
,-
)는 밑줄(_
)으로 대체됩니다.
예를 들어 k8s.namespace.name
은 k8s_namespace_name
이 됩니다.