OCI Logging Analytics로 Kubernetes 로그 데이터 모니터링
Kubernetes 기반 환경은 세 개의 계층으로 나눌 수 있으며, 각 계층은 비즈니스 요구사항에 따라 지속적으로 진화하는 수많은 구성요소로 구성됩니다.
- 인프라 계층: 네트워킹 리소스, 컴퓨트 인스턴스, Kubernetes 노드 호스트 등 다양한 구성요소를 포함합니다.
- Kubernetes 플랫폼 계층: kubernetes 플랫폼을 지원하는 네트워크, kubelet 서비스, DNS와 같은 다양한 Kubernetes 서비스를 포함합니다.
- 애플리케이션 계층: 다양한 기술, 데이터베이스 및 애플리케이션을 포함합니다.
구조
이 아키텍처는 Oracle Cloud Infrastructure Logging Analytics를 사용하여 Kubernetes 플랫폼 및 클라우드 네이티브 애플리케이션을 모니터링하는 방법을 보여줍니다.
다음 다이어그램은 단일 Oracle Cloud Infrastructure(OCI) 리전 내 Kubernetes 클러스터의 샘플 토폴로지입니다. 인프라 계층을 보여주고, 두 번째 다이어그램은 쿠버네티스 및 애플리케이션 계층을 강조한다.

그림 kubernetes-master-worker-nodes.png에 대한 설명
kubernetes-마스터-작업자-노드-oracle.zip
다음 다이어그램은 온프레미스 Kubernetes 클러스터에 대한 Kubernetes 모니터링 및 OCI Logging Analytics를 사용한 Oracle Cloud Infrastructure Kubernetes Engine(Kubernetes Engine 또는 OKE라고도 함)을 보여줍니다. 이 솔루션은 OCI Logging Analytics에 Kubernetes 클러스터의 다양한 로그 모음을 제공하고 수집된 로그 위에 다양한 분석을 제공합니다. 미리 정의된 구성을 수정하여 로그 수집을 사용자 정의할 수 있습니다.

그림 k8s-oke-monitoring.png에 대한 설명
구조에는 다음과 같은 구성 요소가 있습니다.
- Tenancy
테넌시는 Oracle Cloud Infrastructure에 등록할 때 Oracle이 Oracle Cloud 내에서 설정하는 격리된 보안 분할영역입니다. 테넌시 내 Oracle Cloud에서 리소스를 생성, 구성 및 관리할 수 있습니다. 테넌시는 회사 또는 조직과 동의어입니다. 일반적으로 회사는 단일 테넌시를 가지며 해당 테넌시 내의 조직 구조를 반영합니다. 단일 테넌시는 대개 단일 구독과 연관되며, 단일 구독에는 일반적으로 하나의 테넌시만 포함됩니다.
- 지역
Oracle Cloud Infrastructure 리전은 가용성 도메인이라고 하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).
- 구획
구획은 Oracle Cloud Infrastructure 테넌시 내의 지역 간 논리적 파티션입니다. 구획을 사용하여 Oracle Cloud 리소스에 대한 사용 할당량을 구성, 제어 및 설정할 수 있습니다. 지정된 구획에서 액세스를 제어하고 리소스에 대한 권한을 설정하는 정책을 정의합니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 Oracle Cloud Infrastructure 지역에서 설정한 맞춤형 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN을 통해 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있습니다. 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷 생성 후 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
- 로드 밸런서
Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드에 있는 여러 서버로 트래픽을 자동으로 배포합니다.
- 서비스 게이트웨이
서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.
- 로깅 분석
Oracle Cloud Infrastructure(OCI) Logging Analytics는 온프레미스, OCI 또는 타사 클라우드에서 실행되는 모든 IT 구성요소의 로그에 대한 수집, 인덱싱, 강화, 쿼리, 시각화 및 경고를 제공하는 27개 이상의 리전에서 사용할 수 있는 전담 관리 SaaS 리전 서비스입니다.
- 로깅 분석 소스
Logging Analytics 소스는 분석 및 모니터링을 위해 로그가 제대로 수집 및 인덱스화되도록 구문 분석, 추출, 레이블 지정, 데이터 마스킹 및 기타 보강에 대한 사양을 제공하는 구성 리소스입니다. 이 아키텍처는 Kubernetes 서비스, 애플리케이션 및 객체에 대해 30개 이상의 사전 정의된 소스를 사용합니다. 이러한 소스는 더욱 심층적인 분석 기능을 제공하기 위해 지속적으로 향상됩니다.
- Kubernetes 시스템 Pod
Kubernetes 시스템 포드는 Kubernetes에서 생성하고 관리할 수 있는 배포 가능한 소형 컴퓨팅 단위입니다. 파드는 공유 스토리지 및 네트워크 리소스와 컨테이너 실행을 위한 규칙이 있는 하나 이상의 컨테이너입니다.
- 사용자 POD
Kubernetes 클러스터에서 실행된 애플리케이션입니다.
STDOUT/STDERR
를 쓰는 애플리케이션 포드의 모든 로그는 일반적으로/var/log/containers/
에서 사용할 수 있습니다. 사용자 정의 로그 처리기가 있는 응용 프로그램은 로그 경로를 다르게 지정할 수 있지만 일반적으로 볼륨을 통해 노드에서 사용할 수 있습니다. - 제어 플레인 서비스 및 Pod
Kubernetes 플랫폼 제어 플레인 서비스 및 포드. 제어 플레인에서는 Kubernetes 클러스터의 워커 노드와 파드를 관리합니다. 워커 노드는 컨테이너화된 응용 프로그램을 실행합니다. 모든 클러스터에는 작업자 노드가 하나 이상 있습니다. 워커 노드는 애플리케이션 워크로드의 컴포넌트인 파드를 호스팅합니다.
- 노드 OS 서비스
Kubernetes가 설치된 인스턴스에서 실행되는 Linux 서비스입니다. 로그는 OS 서비스에서 수집됩니다.
- 로그 및 객체 수집기 Pod
로그 및 객체 수집기 포드는 복제 세트, FluentD 및 데몬 세트로 구성됩니다.
- FluentD 수집기
FluentD는 데이터 소스와 백엔드 시스템 간에 통합 로깅 계층을 제공하는 오픈 소스 데이터 수집기입니다. 이를 통해 건물 데이터 처리 파이프라인에 대한 통합 데이터 수집 및 소비가 가능합니다. 이 아키텍처는 데몬 세트로 실행되는 컨테이너화된 FluentD 컨테이너와 kubernetes 클러스터에서 설정된 replicat를 사용합니다. 로깅 분석 Fluentd 출력 플러그인을 사용하여 OCI Logging Analytics에 로그를 업로드합니다.
- Logging Analytics FluentD 플러그인
테넌시의 OCI Logging Analytics 서비스에 접속하여 FluentD 수집기에서 수집한 로그를 업로드하거나 수집하는 FluentD 출력 플러그인입니다.
- Kubernetes 객체
Kubernetes 객체는 Kubernetes 시스템의 영구 엔티티입니다. Kubernetes는 이러한 엔티티를 사용하여 클러스터의 상태를 나타냅니다. 이 아키텍처에서는 다음과 같은 Kubernetes 객체 상태가 기록 분석 및 문제 해결을 위한 로그로 수집됩니다.
- Kubernetes 데몬 세트
Kubernetes
DaemonSet
는 Kubernetes에서 실행되는 워크로드 유형이며 모든(또는 일부) 노드가 Pod의 복사본을 실행하도록 보장합니다. 노드가 클러스터에 추가되면 Pod가 추가됩니다. 클러스터에서 노드가 제거되면, 이러한 파드는 가비지 수집된다. - Kubernetes 복제본 집합
Kubernetes
ReplicaSet
는 Kubernetes에서 실행되는 워크로드의 한 유형입니다. 그것은 주어진 시간에 실행되는 복제 파드의 안정적인 세트를 유지합니다. 따라서, 그것은 종종 동일한 파드의 지정된 수의 가용성을 보장하기 위해 사용된다.
- FluentD 수집기
- Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine(OCI Kubernetes Engine 또는 OKE)는 컨테이너화된 애플리케이션을 클라우드에 배포하는 데 사용할 수 있는 확장 가능한 고가용성 완전 관리형 서비스입니다. 애플리케이션에 필요한 컴퓨트 리소스를 지정하면 Kubernetes Engine이 기존 테넌시의 Oracle Cloud Infrastructure에서 프로비저닝합니다. OKE는 Kubernetes를 사용하여 호스트 클러스터 전반에서 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화합니다.
- 서비스 커넥터
Service Connector Hub는 클라우드 메시지 버스 플랫폼입니다. Oracle Cloud Infrastructure의 서비스 간에 데이터를 이동하는 데 사용할 수 있습니다. 데이터는 서비스 커넥터를 사용하여 이동합니다. 서비스 커넥터는 이동할 데이터, 데이터에 대해 수행할 작업 및 지정된 작업이 완료될 때 데이터를 전달해야 하는 대상 서비스가 포함된 소스 서비스를 지정합니다. 이 아키텍처에서는 하나의 서비스 커넥터가 프로비저닝되어 네트워크 및 로드 밸런서 로그를 수집합니다.
- OCI 서비스
Oracle Cloud Infrastructure(OCI) 서비스는 고가용성의 일관된 고성능 환경에서 다양한 애플리케이션을 구축하고 실행할 수 있게 해주는 클라우드 서비스 플랫폼입니다.
- 서비스 및 감사 로그
서비스 및 감사 로그는 OCI 로깅 서비스에서 캡처됩니다. OCI 로깅은 확장성이 뛰어난 완전 관리형 서비스로, 서비스 커넥터를 통해 VCN 및 로드 밸런서 서비스 로그에 액세스하는 데 사용됩니다.
기본적으로 Kubernetes 시스템 서비스 로그 및 Kubernetes 객체 데이터가 수집됩니다.
Oracle Cloud Infrastructure Kubernetes Engine에는 각기 다른 책임이 있으며 클러스터의 하나 이상의 노드에서 배포 또는 DaemonSets
으로 실행되는 서비스가 내장되어 있습니다.
Kubernetes 시스템 서비스 | Linux 시스템 서비스 | Kubernetes 제어 플레인 | Kubernetes 객체(기본값: 15분마다) | 사용자정의 애플리케이션 로그 |
---|---|---|---|---|
|
|
|
|
|
주:
Kubernetes 제어 플레인 로그는 OCI Kubernetes Engine(OKE라고도 함)에 의해 노출되지 않으므로 미리 정의된 수집의 일부로 포함되지 않습니다. 비OKE Kubernetes 클러스터에서 제어 플레인 로그를 사용으로 설정할 수 있습니다.
권장사항
다음 권장 사항을 시작점으로 사용합니다. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.
- 로그 그룹
여러 로그 그룹을 정의하여 여러 팀에 쓰기 액세스 권한을 제공하고 중요한 데이터를 공유하지 않도록 합니다. 로그 그룹은 Oracle E-Business Suite, Database, OCI 인프라, 호스트 로그를 기반으로 할 수 있습니다.
- Cost Management
Oracle Cloud Infrastructure(OCI) Logging Analytics 서비스는 활성 및 아카이브 스토리지의 데이터 볼륨에 따라 요금이 청구됩니다. 일상적인 문제를 해결하고 변형 감지, 패턴 감지 및 기타 ML 기능의 이점을 누리려면 90일의 활성 스토리지 기간을 사용하고 90일보다 오래된 로그를 아카이브 스토리지로 이동하는 것이 좋습니다. 저장된 아카이브의 로그는 요청 시 신속하게 회수할 수 있습니다.
- FluentD 다중 근로자
시간에 민감한 로그에 대해 다중 작업자 모드로 FluentD를 구성합니다.
- 사용자정의 애플리케이션 로그
이 솔루션은 Kubernetes 클러스터에서 실행되는 애플리케이션에서 생성된 모든 로그를 자동으로 캡처합니다. 기본적으로 이러한 로그는
Kubernetes Generic Container Logs
로그 소스에 매핑됩니다. 필수 필드를 추출하고 문제 레이블을 로그에 연결하려면 Oracle Cloud Infrastructure Logging Analytics에서 애플리케이션 로그 특정 구문분석기, 소스 및 보강을 생성해야 합니다. - 인증
이 아키텍처는 인스턴스 주체 및 Oracle Cloud Infrastructure
config
파일 기반 인증을 지원합니다. Oracle Cloud Infrastructure Kubernetes Engine(OKE)에는 인스턴스 주체 기반 인증이 권장됩니다.
고려사항
이 참조 아키텍처를 배치할 때는 다음 사항을 고려하십시오.
- 성능
질의 성능은 필터, 그룹화 기준 등의 작업 수 및 시간범위를 기반으로 합니다. 더 나은 쿼리 성능을 위해 수집 시 특정 레이블 및 필드로 로그를 보강하는 것이 좋습니다. 이는 IT 운영에 대한 지속적인 개선의 일부입니다.
- 보안 및 역할 기반 액세스 제어(RBAC)
모든 PII 데이터를 필터링하고 지리적 위치 보강을 사용으로 설정하도록 로그 소스 정의를 사용자정의합니다.
- 가용성
Oracle Cloud Infrastructure Logging Analytics는 고가용성 완전 관리형 SaaS 서비스입니다.
배치
Oracle Cloud Infrastructure Logging Analytics DaemonSets
및 ReplicaSets
배포를 위한 Kubernetes 매니페스트 및 helm 차트는 GitHub에서 확인할 수 있습니다.
- GitHub로 이동합니다.
- 저장소를 복제하거나 로컬 컴퓨터에 다운로드합니다.
README
문서의 지침을 따릅니다.
추가 탐색
- Oracle Cloud에 컨테이너화된 애플리케이션을 배포하기 위한 Kubernetes 클러스터 설정(솔루션 플레이북)
- Oracle Cloud Infrastructure를 위한 잘 설계된 프레임워크
- Oracle Cloud Infrastructure Logging Analytics YouTube 채널
- Oracle Cloud Infrastructure Logging Analytics 설명서
- OCI Logging Analytics 실습 랩을 통해 샘플 로그 분석
- Oracle Cloud Infrastructure Logging Analytics 블로그