2장. Red Hat OpenShift의 로깅 하위 시스템 이해
클러스터 관리자는 로깅 하위 시스템을 배포하여 OpenShift Container Platform 클러스터의 모든 로그(예: 노드 시스템 감사 로그, 애플리케이션 컨테이너 로그 및 인프라 로그)를 집계할 수 있습니다. 로깅 하위 시스템은 클러스터 전체에서 이러한 로그를 집계하여 기본 로그 저장소에 저장합니다. Kibana 웹 콘솔을 사용하여 로그 데이터를 시각화할 수 있습니다.
로깅 하위 시스템은 다음 유형의 로그를 집계합니다.
-
application
- 인프라 컨테이너 애플리케이션을 제외하고 클러스터에서 실행 중인 사용자 애플리케이션에 의해 생성된 컨테이너 로그입니다. -
infrastructure
- 저널 로그와 같이 클러스터 및 OpenShift Container Platform 노드에서 실행되는 인프라 구성 요소에서 생성된 로그입니다. 인프라 구성 요소는openshift*
,kube*
또는default
프로젝트에서 실행되는 Pod입니다. -
audit
- /var/log/audit/audit.log 파일에 저장되는 노드 감사 시스템(auditd)에서 생성된 로그와 Kubernetes apiserver 및 OpenShift apiserver에서 생성되는 감사 로그입니다.
내부 OpenShift Container Platform Elasticsearch 로그 저장소는 감사 로그를 위한 보안 스토리지를 제공하지 않기 때문에 감사 로그는 기본적으로 내부 Elasticsearch 인스턴스에 저장되지 않습니다. 예를 들어 Kibana에서 감사 로그를 보려면 감사 로그를 기본 내부 Elasticsearch 로그 저장소로 보내려면 로그 저장소에 감사 로그 전달에 설명된 대로 로그 전달 API를 사용해야 합니다.
2.1. OpenShift Container Platform Logging에 대한 일반 용어집
이 용어집은 OpenShift Container Platform 로깅 콘텐츠에 사용되는 일반적인 용어를 정의합니다.
- 주석
- 주석을 사용하여 메타데이터를 오브젝트에 연결할 수 있습니다.
- CLO(Cluster Logging Operator)
- Cluster Logging Operator는 애플리케이션, 인프라 및 감사 로그의 수집 및 전달을 제어하는 API 세트를 제공합니다.
- CR(사용자 정의 리소스)
-
CR은 Kubernetes API의 확장입니다. OpenShift Container Platform 로깅 및 로그 전달을 구성하려면
ClusterLogging
및ClusterLogForwarder
사용자 정의 리소스를 사용자 정의할 수 있습니다. - 이벤트 라우터
- 이벤트 라우터는 OpenShift Container Platform 이벤트를 감시하는 Pod입니다. OpenShift Container Platform 로깅을 사용하여 로그를 수집합니다.
- fluentd
- Fluentd는 각 OpenShift Container Platform 노드에 상주하는 로그 수집기입니다. 애플리케이션, 인프라 및 감사 로그를 수집하여 다른 출력으로 전달합니다.
- 가비지 컬렉션
- 가비지 컬렉션은 실행 중인 Pod에서 참조하지 않는 종료 컨테이너 및 이미지와 같은 클러스터 리소스를 정리하는 프로세스입니다.
- Elasticsearch
- Elasticsearch는 분산 검색 및 분석 엔진입니다. OpenShift Container Platform에서는 ELasticsearch를 OpenShift Container Platform 로깅의 기본 로그 저장소로 사용합니다.
- Elasticsearch Operator
- Elasticsearch Operator는 OpenShift Container Platform에서 Elasticsearch 클러스터를 실행하는 데 사용됩니다. Elasticsearch Operator는 Elasticsearch 클러스터 작업에 대한 셀프 서비스를 제공하며 OpenShift Container Platform 로깅에서 사용합니다.
- 인덱싱
- 인덱싱은 데이터를 신속하게 찾고 액세스하는 데 사용되는 데이터 구조 기술입니다. 인덱싱은 쿼리를 처리할 때 필요한 디스크 액세스 양을 최소화하여 성능을 최적화합니다.
- JSON 로깅
- OpenShift Container Platform Logging Log Forwarding API를 사용하면 JSON 로그를 구조화된 오브젝트로 구문 분석하고 OpenShift Container Platform Logging 관리 Elasticsearch 또는 Log Forwarding API에서 지원하는 기타 타사 시스템으로 전달할 수 있습니다.
- Kibana
- Kibana는 히스토그램, 선 그래프 및 원형 차트를 통해 Elasticsearch 데이터를 쿼리, 검색 및 시각화하는 브라우저 기반 콘솔 인터페이스입니다.
- Kubernetes API 서버
- Kubernetes API 서버는 API 오브젝트의 데이터를 검증하고 구성합니다.
- 라벨
- 레이블은 Pod와 같은 오브젝트 서브 세트를 구성하고 선택하는 데 사용할 수 있는 키-값 쌍입니다.
- 로깅
- OpenShift Container Platform Logging을 사용하면 클러스터 전체에서 애플리케이션, 인프라 및 감사 로그를 집계할 수 있습니다. 또한 기본 로그 저장소로 저장하고 타사 시스템으로 전달한 다음 기본 로그 저장소에서 저장된 로그를 쿼리 및 시각화할 수 있습니다.
- 로깅 수집기
- 로깅 수집기는 클러스터에서 로그를 수집하여 포맷한 후 로그 저장소 또는 타사 시스템으로 전달합니다.
- 로그 저장소
- 로그 저장소는 집계된 로그를 저장하는 데 사용됩니다. 기본 Elasticsearch 로그 저장소를 사용하거나 외부 로그 저장소로 로그를 전달할 수 있습니다. 기본 로그 저장소는 테스트를 거쳐 단기 스토리지용으로 최적화되었습니다.
- 로그 시각화 프로그램
- 로그 시각화 프로그램은 로그, 그래프, 차트 및 기타 지표와 같은 정보를 보는 데 사용할 수 있는 UI(사용자 인터페이스) 구성 요소입니다. 최신 구현은 Kibana입니다.
- node
- 노드는 OpenShift Container Platform 클러스터의 작업자 시스템입니다. 노드는 VM(가상 머신) 또는 물리적 머신입니다.
- Operator
- Operator는 OpenShift Container Platform 클러스터에서 Kubernetes 애플리케이션을 패키징, 배포 및 관리하는 기본 방법입니다. Operator는 사람의 운영 지식을 패키지하고 고객과 공유하는 소프트웨어로 인코딩합니다.
- Pod
- Pod는 Kubernetes에서 가장 작은 논리 단위입니다. Pod는 하나 이상의 컨테이너로 구성되며 작업자 노드에서 실행됩니다.
- RBAC(역할 기반 액세스 제어)
- RBAC는 클러스터 사용자 및 워크로드가 역할을 실행하는 데 필요한 리소스에만 액세스할 수 있도록 하는 핵심 보안 제어입니다.
- shard
- Elasticsearch는 Fluentd의 로그 데이터를 데이터 저장소 또는 인덱스로 구성한 다음 각 인덱스를 shards라는 여러 조각으로 세분화합니다.
- taint
- 테인트를 사용하면 Pod가 적절한 노드에 예약됩니다. 노드에 하나 이상의 테인트를 적용할 수 있습니다.
- 허용 오차
- Pod에 허용 오차를 적용할 수 있습니다. 허용 오차를 사용하면 스케줄러에서 일치하는 테인트를 사용하여 Pod를 예약할 수 있습니다.
- 웹 콘솔
- OpenShift Container Platform을 관리할 UI(사용자 인터페이스)입니다.