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 로그에 있습니다.
  • 저널: 이 필드는 노드 저널 로그에 있습니다.
이름적용 가능한 소스댓글

body

all

 

observedTimeUnixNano

all

 

timeUnixNano

all

 

severityText

컨테이너, 저널

 

속성

all

(선택 사항) 스트림 특정 특성을 전달할 때 우선순위

2.6.2.2. 속성

로그 항목에는 다음 표에 설명된 대로 소스 기반의 리소스, 범위 및 로그 속성 세트가 포함됩니다.

Location 열은 특성 유형을 지정합니다.

  • resource: resource 특성을 나타냅니다.
  • scope: scope 특성을 나타냅니다.
  • log: 로그 특성을 나타냅니다.

스토리지 열은 기본 openshift-logging 모드를 사용하여 특성이 LokiStack에 저장되는지 여부를 나타내며 특성이 저장된 위치를 지정합니다.

  • 스트림 레이블:

    • 특정 레이블을 기반으로 효율적으로 필터링 및 쿼리를 수행할 수 있습니다.
    • Loki Operator가 구성에 이 속성을 적용하는 경우 필요에 따라 레이블을 지정할 수 있습니다.
  • 구조화된 메타데이터:

    • 키-값 쌍의 자세한 필터링 및 스토리지를 허용합니다.
    • 사용자가 JSON 구문 분석 없이도 직접 라벨을 사용하여 간소화된 쿼리에 사용할 수 있습니다.

OTLP를 사용하면 사용자가 JSON 구문 분석을 사용하는 대신 레이블로 직접 쿼리를 필터링하여 쿼리의 속도와 효율성을 개선할 수 있습니다.

이름위치적용 가능한 소스스토리지(LokiStack)댓글

log_source

resource

all

필수 스트림 레이블

(DEPRECATED) 호환성 속성에 openshift.log.source와 동일한 정보가 포함되어 있습니다.

log_type

resource

all

필수 스트림 레이블

(DEPRECATED) 호환성 속성에 openshift.log.type과 동일한 정보가 포함되어 있습니다.

kubernetes.container_name

resource

container

스트림 레이블

(DEPRECATED) 호환성 속성에 k8s.container.name과 동일한 정보가 포함되어 있습니다.

kubernetes.host

resource

all

스트림 레이블

(DEPRECATED) 호환성 속성에 k8s.node.name과 동일한 정보가 포함되어 있습니다.

kubernetes.namespace_name

resource

container

필수 스트림 레이블

(DEPRECATED) 호환성 속성에 k8s.namespace.name과 동일한 정보가 포함되어 있습니다.

kubernetes.pod_name

resource

container

스트림 레이블

(DEPRECATED) 호환성 속성에 k8s.pod.name과 동일한 정보가 포함되어 있습니다.

openshift.cluster_id

resource

all

 

(DEPRECATED) 호환성 속성에 openshift.cluster.uid와 동일한 정보가 포함되어 있습니다.

level

log

컨테이너, 저널

 

(DEPRECATED) 호환성 속성에는 심각도 Cryostat와 동일한 정보가 포함되어 있습니다.

openshift.cluster.uid

resource

all

필수 스트림 레이블

 

openshift.log.source

resource

all

필수 스트림 레이블

 

openshift.log.type

resource

all

필수 스트림 레이블

 

openshift.labels.*

resource

all

구조화된 메타데이터

 

k8s.node.name

resource

all

스트림 레이블

 

k8s.namespace.name

resource

container

필수 스트림 레이블

 

k8s.container.name

resource

container

스트림 레이블

 

k8s.pod.labels.*

resource

container

구조화된 메타데이터

 

k8s.pod.name

resource

container

스트림 레이블

 

k8s.pod.uid

resource

container

구조화된 메타데이터

 

k8s.cronjob.name

resource

container

스트림 레이블

Pod 작성자를 기반으로 조건부 전달

k8s.daemonset.name

resource

container

스트림 레이블

Pod 작성자를 기반으로 조건부 전달

k8s.deployment.name

resource

container

스트림 레이블

Pod 작성자를 기반으로 조건부 전달

k8s.job.name

resource

container

스트림 레이블

Pod 작성자를 기반으로 조건부 전달

k8s.replicaset.name

resource

container

구조화된 메타데이터

Pod 작성자를 기반으로 조건부 전달

k8s.statefulset.name

resource

container

스트림 레이블

Pod 작성자를 기반으로 조건부 전달

log.iostream

log

container

구조화된 메타데이터

 

k8s.audit.event.level

log

audit

구조화된 메타데이터

 

k8s.audit.event.stage

log

audit

구조화된 메타데이터

 

k8s.audit.event.user_agent

log

audit

구조화된 메타데이터

 

k8s.audit.event.request.uri

log

audit

구조화된 메타데이터

 

k8s.audit.event.response.code

log

audit

구조화된 메타데이터

 

k8s.audit.event.annotation.*

log

audit

구조화된 메타데이터

 

k8s.audit.event.object_ref.resource

log

audit

구조화된 메타데이터

 

k8s.audit.event.object_ref.name

log

audit

구조화된 메타데이터

 

k8s.audit.event.object_ref.namespace

log

audit

구조화된 메타데이터

 

k8s.audit.event.object_ref.api_group

log

audit

구조화된 메타데이터

 

k8s.audit.event.object_ref.api_version

log

audit

구조화된 메타데이터

 

k8s.user.username

log

audit

구조화된 메타데이터

 

k8s.user.groups

log

audit

구조화된 메타데이터

 

process.executable.name

resource

journal

구조화된 메타데이터

 

process.executable.path

resource

journal

구조화된 메타데이터

 

process.command_line

resource

journal

구조화된 메타데이터

 

process.pid

resource

journal

구조화된 메타데이터

 

service.name

resource

journal

스트림 레이블

 

systemd.t.*

log

journal

구조화된 메타데이터

 

systemd.u.*

log

journal

구조화된 메타데이터

 
참고

호환성 특성으로 표시된 속성은 ViaQ 데이터 모델과의 이전 버전과 최소 호환성을 지원합니다. 이러한 속성은 더 이상 사용되지 않으며 지속적인 UI 기능을 보장하기 위해 호환성 계층으로 작동합니다. 이러한 속성은 Logging UI가 향후 릴리스에서 OpenTelemetry 카운터를 완전히 지원할 때까지 계속 지원됩니다.

Loki는 스토리지로 유지할 때 속성 이름을 변경합니다. 이름은 소문자로 표시되고 집합의 모든 문자(,/,-)는 밑줄(_)으로 대체됩니다. 예를 들어 k8s.namespace.namek8s_namespace_name 이 됩니다.

2.6.3. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.