2.2. 로깅 6.1
context: logging-6x-6.1
ClusterLogForwarder
CR(사용자 정의 리소스)은 로그 수집 및 전달의 중앙 구성 지점입니다.
2.2.1. 입력 및 출력
입력은 전달할 로그 소스를 지정합니다. 로깅은 클러스터의 다른 부분에서 로그를 선택하는 애플리케이션
,수신자
,인프라
및 감사
와 같은 기본 입력 유형을 제공합니다. 네임스페이스 또는 Pod 레이블을 기반으로 사용자 정의 입력을 정의하여 로그 선택을 미세 조정할 수도 있습니다.
출력은 로그가 전송되는 대상을 정의합니다. 각 출력 유형에는 고유한 구성 옵션 세트가 있어 동작 및 인증 설정을 사용자 지정할 수 있습니다.
2.2.2. 수신자 입력 유형
수신자 입력 유형을 사용하면 로깅 시스템에서 외부 소스의 로그를 허용할 수 있습니다. 로그를 수신하기 위해 http
및 syslog
의 두 형식을 지원합니다.
ReceiverSpec
은 수신자 입력에 대한 구성을 정의합니다.
2.2.3. 파이프라인 및 필터
파이프라인은 입력에서 출력으로 로그 흐름을 결정합니다. 파이프라인은 하나 이상의 입력 참조, 출력 참조 및 선택적 필터 참조로 구성됩니다. 필터를 사용하여 파이프라인 내에서 로그 메시지를 변환하거나 삭제할 수 있습니다. 필터 순서는 순차적으로 적용되므로 중요하며 이전 필터로 인해 로그 메시지가 이후 단계에 도달하지 못할 수 있습니다.
2.2.4. Operator 동작
Cluster Logging Operator는 ClusterLogForwarder
리소스의 managementState
필드를 기반으로 수집기의 배포 및 구성을 관리합니다.
-
Managed
(기본값)로 설정하면 Operator에서 사양에 정의된 구성과 일치하도록 로깅 리소스를 적극적으로 관리합니다. -
Unmanaged
로 설정하면 Operator에서 작업을 수행하지 않으므로 로깅 구성 요소를 수동으로 관리할 수 있습니다.
2.2.5. 검증
로깅에는 광범위한 검증 규칙과 기본값이 포함되어 있어 원활하고 오류가 없는 구성 환경을 보장합니다. ClusterLogForwarder
리소스는 필수 필드, 필드 간 종속성 및 입력 값 형식에 대한 검증 검사를 적용합니다. 특정 필드에 기본값이 제공되어 일반적인 시나리오에서 명시적 구성의 필요성이 줄어듭니다.
2.2.6. 퀵 스타트
OpenShift Logging은 다음 두 가지 데이터 모델을 지원합니다.
- viaq (일반 가용성)
- OpenTelemetry (기술 프리뷰)
ClusterLogForwarder
에서 lokiStack.dataModel
필드를 구성하여 요구 사항에 따라 이러한 데이터 모델 중 하나를 선택할 수 있습니다. viaq는 LokiStack으로 로그를 전달할 때 기본 데이터 모델입니다.
향후 OpenShift Logging 릴리스에서는 기본 데이터 모델이 ViaQ에서 OpenTelemetry로 변경됩니다.
2.2.6.1. ViaQ로 퀵 스타트
기본 ViaQ 데이터 모델을 사용하려면 다음 단계를 따르십시오.
사전 요구 사항
- 클러스터 관리자 권한
프로세스
- OperatorHub에서 Red Hat OpenShift Logging Operator, Loki Operator 및 Cluster Observability Operator(COO)를 설치합니다.
openshift-logging
네임스페이스에서LokiStack
CR(사용자 정의 리소스)을 생성합니다.apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki namespace: openshift-logging spec: managementState: Managed size: 1x.extra-small storage: schemas: - effectiveDate: '2024-10-01' version: v13 secret: name: logging-loki-s3 type: s3 storageClassName: gp3-csi tenants: mode: openshift-logging
참고logging-loki-s3
시크릿이 사전에 생성되었는지 확인합니다. 이 보안의 내용은 사용 중인 오브젝트 스토리지에 따라 다릅니다. 자세한 내용은 시크릿 및 TLS 구성을 참조하십시오.수집기의 서비스 계정을 생성합니다.
$ oc create sa collector -n openshift-logging
수집기의 서비스 계정에서
LokiStack
CR에 데이터를 쓸 수 있도록 허용합니다.$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector
참고ClusterRole
리소스는 Cluster Logging Operator 설치 중에 자동으로 생성되며 수동으로 생성할 필요가 없습니다.수집기의 서비스 계정에서 로그를 수집할 수 있도록 허용합니다.
$ oc project openshift-logging
$ oc adm policy add-cluster-role-to-user collect-application-logs -z collector
$ oc adm policy add-cluster-role-to-user collect-audit-logs -z collector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector
참고이 예제에서는 수집기를 세 가지 역할(애플리케이션, 인프라 및 감사) 모두에 바인딩하지만 기본적으로 애플리케이션 및 인프라 로그만 수집됩니다. 감사 로그를 수집하려면 이를 포함하도록
ClusterLogForwarder
구성을 업데이트합니다. 환경에 필요한 특정 로그 유형에 따라 역할을 할당합니다.UIPlugin
CR을 생성하여 모니터링 탭의 Log 섹션을 활성화합니다.apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: logging spec: type: Logging logging: lokiStack: name: logging-loki
ClusterLogForwarder
CR을 생성하여 로그 전달을 구성합니다.apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: serviceAccount: name: collector outputs: - name: default-lokistack type: lokiStack lokiStack: authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging tls: ca: key: service-ca.crt configMapName: openshift-service-ca.crt pipelines: - name: default-logstore inputRefs: - application - infrastructure outputRefs: - default-lokistack
참고dataModel
필드는 선택 사항이며 설정되지 않은(dataModel: ""
) 기본적으로 유지됩니다. 이를 통해 Cluster Logging Operator(CLO)가 데이터 모델을 자동으로 선택할 수 있습니다. 현재 CLO는 필드가 설정되지 않은 경우 기본적으로 ViaQ 모델로 설정되지만 향후 릴리스에서는 변경될 예정입니다.dataModel: ViaQ
를 지정하면 기본 변경 사항이 있는 경우 구성이 계속 호환됩니다.
검증
- OpenShift 웹 콘솔의 Observe 탭의 Log 섹션에 로그가 표시되는지 확인합니다.
2.2.6.2. OpenTelemetry로 퀵 스타트
OTLP(OpenTelemetry Protocol) 출력 로그 전달자는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
OTLP ingestion을 구성하고 OpenTelemetry 데이터 모델을 활성화하려면 다음 단계를 따르십시오.
사전 요구 사항
- 클러스터 관리자 권한
프로세스
- OperatorHub에서 Red Hat OpenShift Logging Operator, Loki Operator 및 Cluster Observability Operator(COO)를 설치합니다.
openshift-logging
네임스페이스에서LokiStack
CR(사용자 정의 리소스)을 생성합니다.apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki namespace: openshift-logging spec: managementState: Managed size: 1x.extra-small storage: schemas: - effectiveDate: '2024-10-01' version: v13 secret: name: logging-loki-s3 type: s3 storageClassName: gp3-csi tenants: mode: openshift-logging
참고logging-loki-s3
시크릿이 사전에 생성되었는지 확인합니다. 이 보안의 내용은 사용 중인 오브젝트 스토리지에 따라 다릅니다. 자세한 내용은 "시크릿 및 TLS 구성"을 참조하십시오.수집기의 서비스 계정을 생성합니다.
$ oc create sa collector -n openshift-logging
수집기의 서비스 계정에서
LokiStack
CR에 데이터를 쓸 수 있도록 허용합니다.$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector
참고ClusterRole
리소스는 Cluster Logging Operator 설치 중에 자동으로 생성되며 수동으로 생성할 필요가 없습니다.수집기의 서비스 계정에서 로그를 수집할 수 있도록 허용합니다.
$ oc project openshift-logging
$ oc adm policy add-cluster-role-to-user collect-application-logs -z collector
$ oc adm policy add-cluster-role-to-user collect-audit-logs -z collector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector
참고이 예제에서는 수집기를 세 가지 역할(애플리케이션, 인프라 및 감사) 모두에 바인딩합니다. 기본적으로 애플리케이션 및 인프라 로그만 수집됩니다. 감사 로그를 수집하려면 이를 포함하도록
ClusterLogForwarder
구성을 업데이트합니다. 환경에 필요한 특정 로그 유형에 따라 역할을 할당합니다.UIPlugin
CR을 생성하여 모니터링 탭의 Log 섹션을 활성화합니다.apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: logging spec: type: Logging logging: lokiStack: name: logging-loki
ClusterLogForwarder
CR을 생성하여 로그 전달을 구성합니다.apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging annotations: observability.openshift.io/tech-preview-otlp-output: "enabled" 1 spec: serviceAccount: name: collector outputs: - name: loki-otlp type: lokiStack 2 lokiStack: target: name: logging-loki namespace: openshift-logging dataModel: Otel 3 authentication: token: from: serviceAccount tls: ca: key: service-ca.crt configMapName: openshift-service-ca.crt pipelines: - name: my-pipeline inputRefs: - application - infrastructure outputRefs: - loki-otlp
참고dataModel
이Otel
인 경우lokiStack.labelKeys
를 사용할 수 없습니다.dataModel
이Otel
일 때 유사한 기능을 얻으려면 "OTLP 데이터 수집용 LokiStack 구성"을 참조하십시오.
검증
-
OpenShift 웹 콘솔에서 Observe
OpenShift Logging LokiStack Writes 로 이동하여 Cryostat - structured Metadata 가 올바르게 작동하는지 확인합니다.