OpenShift 로깅 정보
OpenShift 로깅 소개.
초록
1장. Red Hat OpenShift Logging 개요 링크 복사링크가 클립보드에 복사되었습니다!
ClusterLogForwarder CR(사용자 정의 리소스)은 로그 수집 및 전달의 중앙 구성 지점입니다.
1.1. 입력 및 출력 링크 복사링크가 클립보드에 복사되었습니다!
입력은 전달할 로그 소스를 지정합니다. 로깅은 클러스터의 다른 부분에서 로그를 선택하는 다음과 같은 기본 제공 입력 유형을 제공합니다.
-
애플리케이션 -
수신자 -
인프라 -
audit
네임스페이스 또는 Pod 레이블을 기반으로 사용자 정의 입력을 정의하여 로그 선택을 미세 조정할 수도 있습니다.
출력은 로그가 전송되는 대상을 정의합니다. 각 출력 유형에는 고유한 구성 옵션 세트가 있어 동작 및 인증 설정을 사용자 지정할 수 있습니다.
1.2. 수신자 입력 유형 링크 복사링크가 클립보드에 복사되었습니다!
수신자 입력 유형을 사용하면 로깅 시스템에서 외부 소스의 로그를 허용할 수 있습니다. 로그를 수신하기 위해 http 및 syslog 의 두 형식을 지원합니다.
ReceiverSpec 필드는 수신자 입력에 대한 구성을 정의합니다.
1.3. 파이프라인 및 필터 링크 복사링크가 클립보드에 복사되었습니다!
파이프라인은 입력에서 출력으로 로그 흐름을 결정합니다. 파이프라인은 하나 이상의 입력 참조, 출력 참조 및 선택적 필터 참조로 구성됩니다. 필터를 사용하여 파이프라인 내에서 로그 메시지를 변환하거나 삭제할 수 있습니다. 필터 순서는 순차적으로 적용되므로 중요하며 이전 필터로 인해 로그 메시지가 이후 단계에 도달하지 못할 수 있습니다.
1.4. Operator 동작 링크 복사링크가 클립보드에 복사되었습니다!
Cluster Logging Operator는 ClusterLogForwarder 리소스의 managementState 필드를 기반으로 수집기의 배포 및 구성을 관리합니다.
-
Managed(기본값)로 설정하면 Operator에서 사양에 정의된 구성과 일치하도록 로깅 리소스를 적극적으로 관리합니다. -
Unmanaged로 설정하면 Operator에서 작업을 수행하지 않으므로 로깅 구성 요소를 수동으로 관리할 수 있습니다.
1.5. 검증 링크 복사링크가 클립보드에 복사되었습니다!
로깅에는 광범위한 검증 규칙과 기본값이 포함되어 있어 원활하고 오류가 없는 구성 환경을 보장합니다. ClusterLogForwarder 리소스는 필수 필드, 필드 간 종속성 및 입력 값 형식에 대한 검증 검사를 적용합니다. 특정 필드에 기본값이 제공되어 일반적인 시나리오에서 명시적 구성의 필요성이 줄어듭니다.
2장. 클러스터 로깅 지원 링크 복사링크가 클립보드에 복사되었습니다!
이 문서에 설명된 구성 옵션만 로깅에 지원됩니다.
다른 구성 옵션은 지원되지 않으므로 사용하지 마십시오. 구성 패러다임은 OpenShift Container Platform 릴리스마다 변경될 수 있으며 이러한 경우는 모든 구성 가능성이 제어되는 경우에만 정상적으로 처리될 수 있습니다. 이 문서에 설명된 것과 다른 구성을 사용하는 경우 Operator는 차이점을 조정하도록 설계되었으므로 변경 사항을 덮어씁니다.
OpenShift Container Platform 설명서에 설명되지 않은 구성을 수행해야 하는 경우 Red Hat OpenShift Logging Operator를 Unmanaged 로 설정해야 합니다. 관리되지 않는 로깅 인스턴스는 지원되지 않으며 Managed 로 상태를 반환할 때까지 업데이트를 받지 않습니다.
로깅은 코어 OpenShift Container Platform과 별도의 릴리스 사이클을 사용하여 설치 가능한 구성 요소로 제공됩니다. Red Hat OpenShift Container Platform 라이프 사이클 정책은 릴리스 호환성에 대해 간단히 설명합니다.
Loki는 수평으로 확장 가능한 고가용성 다중 테넌트 로그 집계 시스템으로 OpenShift Observability UI로 시각화할 수 있는 Red Hat OpenShift의 로깅을 위한 GA 로그 저장소로 제공됩니다. OpenShift Logging에서 제공하는 Loki 구성은 사용자가 수집된 로그를 사용하여 빠른 문제 해결을 수행할 수 있도록 설계된 단기 로그 저장소입니다. 이를 위해 Loki의 Red Hat OpenShift 구성에 대한 로깅은 단기 스토리지가 있으며 최근 쿼리에 최적화되어 있습니다. 장기간의 기간 동안의 스토리지 또는 쿼리의 경우 사용자는 클러스터 외부에 있는 저장소를 로그하려고 합니다.
Elasticsearch는 들어오는 로그 레코드를 수집 중에 완전히 인덱싱합니다. Loki 인덱스는 로그가 저장된 후 수집 중에 몇 가지 수정된 라벨만 사용하고 더 복잡한 구문 분석 기능을 수행합니다. 즉 Loki는 로그를 더 빠르게 수집할 수 있습니다.
Red Hat OpenShift에 대한 로깅은 애플리케이션, 인프라 및 감사 로그의 의견이 지정된 수집기 및 노멀라이저입니다. 다양한 지원되는 시스템으로 로그를 전달하는 데 사용됩니다.
로깅은 다음과 같습니다.
- 높은 수준의 로그 수집 시스템
- SIEM(Security Information and Event Monitoring) 준수
- "Bring your own"(BYO) 로그 수집기 구성
- 기록 또는 장기 로그 보존 또는 스토리지
- 보장된 로그 싱크
- 보안 스토리지 - 감사 로그는 기본적으로 저장되지 않습니다.
2.1. 지원되는 API 사용자 정의 리소스 정의 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 지원되는 로깅 API를 설명합니다.
| CRD(CustomResourceDefinition) | ApiVersion | 지원 상태 |
|---|---|---|
| LokiStack | lokistack.loki.grafana.com/v1 | 5.5에서 지원 |
| RulerConfig | rulerconfig.loki.grafana/v1 | 5.7에서 지원 |
| AlertingRule | alertingrule.loki.grafana/v1 | 5.7에서 지원 |
| RecordingRule | recordingrule.loki.grafana/v1 | 5.7에서 지원 |
| LogFileMetricExporter | LogFileMetricExporter.logging.openshift.io/v1alpha1 | 5.8 지원 |
| ClusterLogForwarder | clusterlogforwarder.observability.openshift.io/v1 | 6.0에서 지원 |
2.2. 지원되지 않는 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 구성 요소를 수정하려면 Red Hat OpenShift Logging Operator를 Unmanaged 상태로 설정해야 합니다.
- 수집기 구성 파일
- 수집기 데몬 세트
명시적으로 지원되지 않는 경우는 다음과 같습니다.
- 환경 변수를 사용하여 로깅 수집기 구성. 환경 변수를 사용하여 로그 수집기를 수정할 수 없습니다.
- 로그 수집기에서 로그를 정규화하는 방법 구성. 기본 로그 정규화를 수정할 수 없습니다.
2.3. 관리되지 않는 Operator에 대한 지원 정책 링크 복사링크가 클립보드에 복사되었습니다!
Operator의 관리 상태는 Operator가 설계 의도에 따라 클러스터의 해당 구성 요소에 대한 리소스를 적극적으로 관리하고 있는지 여부를 판별합니다. Unmanaged 상태로 설정된 Operator는 구성 변경에 응답하지 않고 업데이트되지도 않습니다.
비프로덕션 클러스터 또는 디버깅 중에는 이 기능이 유용할 수 있지만, Unmanaged 상태의 Operator는 지원되지 않으며 개별 구성 요소의 구성 및 업그레이드를 클러스터 관리자가 전적으로 통제하게 됩니다.
다음과 같은 방법으로 Operator를 Unmanaged 상태로 설정할 수 있습니다.
개별 Operator 구성
개별 Operator는 구성에
managementState매개변수가 있습니다. Operator에 따라 다양한 방식으로 이 매개변수에 액세스할 수 있습니다. 예를 들어, Red HAt OpenShift Logging Operator는 관리 대상인 사용자 정의 리소스(CR)를 수정하여 이를 수행하는 반면 Cluster Samples Operator는 클러스터 전체의 구성 리소스를 사용합니다.managementState매개변수를Unmanaged로 변경하면 Operator가 리소스를 적극적으로 관리하지 않으며 해당하는 구성 요소와 관련된 조치도 수행하지 않습니다. 클러스터가 손상되고 수동 복구가 필요할 가능성이 있으므로 이 관리 상태를 지원하지 않는 Operator도 있습니다.주의개별 Operator를
Unmanaged상태로 변경하면 특정 구성 요소 및 기능이 지원되지 않습니다. 지원을 계속하려면 보고된 문제를Managed상태에서 재현해야 합니다.Cluster Version Operator(CVO) 재정의
spec.overrides매개변수를 CVO 구성에 추가하여 관리자가 구성 요소에 대한 CVO 동작에 대한 재정의 목록을 제공할 수 있습니다. 구성 요소에 대해spec.overrides[].unmanaged매개변수를true로 설정하면 클러스터 업그레이드가 차단되고 CVO 재정의가 설정된 후 관리자에게 경고합니다.Disabling ownership via cluster version overrides prevents upgrades. Please remove overrides before continuing.
Disabling ownership via cluster version overrides prevents upgrades. Please remove overrides before continuing.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의CVO 재정의를 설정하면 전체 클러스터가 지원되지 않는 상태가 됩니다. 지원을 계속하려면 재정의를 제거한 후 보고된 문제를 재현해야 합니다.
2.4. Red Hat 지원을 위한 로깅 데이터 수집 링크 복사링크가 클립보드에 복사되었습니다!
지원 케이스를 열 때 클러스터에 대한 디버깅 정보를 Red Hat 지원에 제공하는 것이 좋습니다.
must-gather 툴 을 사용하여 프로젝트 수준 리소스, 클러스터 수준 리소스 및 각 로깅 구성 요소에 대한 진단 정보를 수집할 수 있습니다. 즉각 지원을 받을 수 있도록 OpenShift Container Platform 및 로깅 둘 다에 대한 진단 정보를 제공하십시오.
2.4.1. must-gather 툴 정보 링크 복사링크가 클립보드에 복사되었습니다!
oc adm must-gather CLI 명령은 문제를 디버깅하는 데 필요할 가능성이 높은 클러스터에서 정보를 수집합니다.
로깅의 경우 must-gather 는 다음 정보를 수집합니다.
- 프로젝트 수준의 Pod, 구성 맵, 서비스 계정, 역할, 역할 바인딩, 이벤트를 포함한 프로젝트 수준 리소스
- 클러스터 수준의 노드, 역할, 역할 바인딩을 포함한 클러스터 수준 리소스
-
로그 수집기, 로그 저장소, 로그 시각화 프로그램의 상태를 포함하여
openshift-logging및openshift-operators-redhat네임스페이스의 OpenShift Logging 리소스
oc adm must-gather를 실행하면 클러스터에 새 Pod가 생성됩니다. 해당 Pod에 대한 데이터가 수집되어 must-gather.local로 시작하는 새 디렉터리에 저장됩니다. 이 디렉터리는 현재 작업 중인 디렉터리에 생성되어 있습니다.
2.4.2. 로깅 데이터 수집 링크 복사링크가 클립보드에 복사되었습니다!
oc adm must-gather CLI 명령을 사용하여 로깅에 대한 정보를 수집할 수 있습니다.
프로세스
must-gather 로 로깅 정보를 수집하려면 다음을 수행합니다.
-
must-gather정보를 저장하려는 디렉터리로 이동합니다. 로깅 이미지에 대해
oc adm must-gather명령을 실행합니다.OKD를 사용하는 경우:
oc adm must-gather --image=quay.io/openshift/origin-cluster-logging-operator
$ oc adm must-gather --image=quay.io/openshift/origin-cluster-logging-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 그렇지 않은 경우:
oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator -o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')$ oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator -o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow must-gather툴에서 현재 디렉터리 내에must-gather.local로 시작하는 새 디렉터리를 만듭니다. 예:must-gather.local.4157245944708210408.방금 생성한
must-gather디렉터리에서 압축 파일을 만듭니다. 예를 들어 Linux 운영 체제를 사용하는 컴퓨터에서 다음 명령을 실행합니다.tar -cvaf must-gather.tar.gz must-gather.local.4157245944708210408
$ tar -cvaf must-gather.tar.gz must-gather.local.4157245944708210408Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Customer Portal에서 해당 지원 사례에 압축 파일을 첨부합니다.
3장. 로깅 시각화 링크 복사링크가 클립보드에 복사되었습니다!
로깅을 위한 시각화는 Operator 설치가 필요한 Cluster Observability Operator 의 로깅 UI 플러그인 을 배포하여 제공됩니다.
4장. 퀵 스타트 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Logging은 다음 두 가지 데이터 모델을 지원합니다.
- viaq (일반 가용성)
- OpenTelemetry (기술 프리뷰)
ClusterLogForwarder 에서 lokiStack.dataModel 필드를 구성하여 요구 사항에 따라 이러한 데이터 모델 중 하나를 선택할 수 있습니다. viaq는 LokiStack으로 로그를 전달할 때 기본 데이터 모델입니다.
향후 OpenShift Logging 릴리스에서는 기본 데이터 모델이 ViaQ에서 OpenTelemetry로 변경됩니다.
4.1. ViaQ로 퀵 스타트 링크 복사링크가 클립보드에 복사되었습니다!
기본 ViaQ 데이터 모델을 사용하려면 다음 단계를 따르십시오.
사전 요구 사항
-
cluster-admin권한이 있는 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)를 설치합니다. - 지원되는 오브젝트 저장소에 액세스할 수 있습니다. 예를 들어 AWS S3, Google Cloud Storage, Azure, Swift, Minio 또는 OpenShift Data Foundation이 있습니다.
프로세스
-
OperatorHub에서
Red Hat OpenShift Logging Operator,Loki Operator및Cluster Observability Operator(COO)를 설치합니다. openshift-logging네임스페이스에서LokiStackCR(사용자 정의 리소스)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고logging-loki-s3시크릿이 사전에 생성되었는지 확인합니다. 이 보안의 내용은 사용 중인 오브젝트 스토리지에 따라 다릅니다. 자세한 내용은 시크릿 및 TLS 구성을 참조하십시오.수집기의 서비스 계정을 생성합니다.
oc create sa collector -n openshift-logging
$ oc create sa collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 수집기의 서비스 계정에서
LokiStackCR에 데이터를 쓸 수 있도록 허용합니다.oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고ClusterRole리소스는 Cluster Logging Operator 설치 중에 자동으로 생성되며 수동으로 생성할 필요가 없습니다.로그를 수집하려면 다음 명령을 실행하여 수집기의 서비스 계정을 사용합니다.
oc adm policy add-cluster-role-to-user collect-application-logs -z collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-application-logs -z collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-cluster-role-to-user collect-audit-logs -z collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-audit-logs -z collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예제에서는 수집기를 세 가지 역할(애플리케이션, 인프라 및 감사) 모두에 바인딩하지만 기본적으로 애플리케이션 및 인프라 로그만 수집됩니다. 감사 로그를 수집하려면 이를 포함하도록
ClusterLogForwarder구성을 업데이트합니다. 환경에 필요한 특정 로그 유형에 따라 역할을 할당합니다.UIPluginCR을 생성하여 모니터링 탭의 Log 섹션을 활성화합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterLogForwarderCR을 생성하여 로그 전달을 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고dataModel필드는 선택 사항이며 설정되지 않은(dataModel: "") 기본적으로 유지됩니다. 이를 통해 Cluster Logging Operator(CLO)가 데이터 모델을 자동으로 선택할 수 있습니다. 현재 CLO는 필드가 설정되지 않은 경우 기본적으로 ViaQ 모델로 설정되지만 향후 릴리스에서는 변경될 예정입니다.dataModel: ViaQ를 지정하면 기본 변경 사항이 있는 경우 구성이 계속 호환됩니다.
검증
- OpenShift Container Platform 웹 콘솔의 모니터 탭의 로그 섹션에 로그가 표시되는지 확인합니다.
4.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네임스페이스에서LokiStackCR(사용자 정의 리소스)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고logging-loki-s3시크릿이 사전에 생성되었는지 확인합니다. 이 보안의 내용은 사용 중인 오브젝트 스토리지에 따라 다릅니다. 자세한 내용은 "시크릿 및 TLS 구성"을 참조하십시오.수집기의 서비스 계정을 생성합니다.
oc create sa collector -n openshift-logging
$ oc create sa collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 수집기의 서비스 계정에서
LokiStackCR에 데이터를 쓸 수 있도록 허용합니다.oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector
$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고ClusterRole리소스는 Cluster Logging Operator 설치 중에 자동으로 생성되며 수동으로 생성할 필요가 없습니다.수집기의 서비스 계정에서 로그를 수집할 수 있도록 허용합니다.
oc project openshift-logging
$ oc project openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-cluster-role-to-user collect-application-logs -z collector
$ oc adm policy add-cluster-role-to-user collect-application-logs -z collectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-cluster-role-to-user collect-audit-logs -z collector
$ oc adm policy add-cluster-role-to-user collect-audit-logs -z collectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예제에서는 수집기를 세 가지 역할(애플리케이션, 인프라 및 감사) 모두에 바인딩합니다. 기본적으로 애플리케이션 및 인프라 로그만 수집됩니다. 감사 로그를 수집하려면 이를 포함하도록
ClusterLogForwarder구성을 업데이트합니다. 환경에 필요한 특정 로그 유형에 따라 역할을 할당합니다.UIPluginCR을 생성하여 모니터링 탭의 Log 섹션을 활성화합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterLogForwarderCR을 생성하여 로그 전달을 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고dataModel이Otel인 경우lokiStack.labelKeys를 사용할 수 없습니다.dataModel이Otel일 때 유사한 기능을 얻으려면 "OTLP 데이터 수집용 LokiStack 구성"을 참조하십시오.
검증
- OpenShift 웹 콘솔에서 Observe → OpenShift Logging → LokiStack → Writes 로 이동하여 Cryostat - structured Metadata 가 올바르게 작동하는지 확인합니다.