오픈소스 소프트웨어 (OSS) 기반 모니터링

금융 및 의료와 같은 규제 대상 업종은 데이터가 리전 경계 내에 엄격하게 유지되도록 하면서 중요한 인프라를 모니터링해야 합니다.

오픈소스 소프트웨어 (OSS)는 현재에서 사용할 수 있는 Cloud Monitoring 및 Cloud Logging 기능을 보완하고 확장할 수 있습니다. Cloud de Confiance by S3NS이 예에서는 에서 완전한 소버린 모니터링 가능성 솔루션을 만드는 방법을 보여줍니다. Cloud de Confiance by S3NS 널리 사용되는 오픈소스 도구를 추가하여

이 아키텍처는 OpenTelemetry, Grafana Mimir, Grafana Loki (Cloud Storage 지원), Grafana, Fluent Bit를 사용하여 Google Kubernetes Engine (GKE) 및 Compute Engine의 측정항목, 로그, 시각화, 알림을 생성합니다. 모든 데이터는 소버린 리전 내에 유지되며 서드 파티 SaaS 요금을 피할 수 있습니다.

모니터링 가능성 기능의 향후 업데이트를 위해 관련 출시 노트 를 구독하는 것이 좋습니다. Cloud de Confiance by S3NS

Terraform을 사용하여 제공된 참조 구현에 따라 이 솔루션을 배포할 수 있습니다.

타겟층

이 솔루션은 소버린 Cloud de Confiance by S3NS 환경에서 워크로드를 모니터링해야 하는 기업을 위한 것입니다. 다음 이해관계자에게 서비스를 제공합니다.

  • 수동 내보내기 유지보수 없이 애플리케이션 상태를 모니터링하고 시스템 서비스 수준 계약 (SLA)을 추적하기 위해 자동화된 확장 가능한 측정항목 스토리지 및 로그 파이프라인을 프로비저닝하는 사이트 안정성 엔지니어 (SRE) 및 DevOps 리더
  • 민감한 애플리케이션 로그, 측정항목, 운영 신호가 소버린 경계 내에 유지되고 비소버린 SaaS 데이터 유출을 방지하는 규정 준수 및 보안 담당자
  • 즉각적인 클라우드 마이그레이션을 차단 해제하고 서드 파티 클라우드 모니터링으로 원활하게 전환할 수 있는 표준화된 OpenTelemetry 기반을 구축하는 엔터프라이즈 클라우드 설계자

주요 기능

  • 소버린 모니터링 가능성 및 로컬 데이터 보관: Cloud Storage 버킷을 사용하여 로컬 소버린 인프라 내에서 Compute Engine 및 GKE 로그의 애플리케이션 측정항목을 수집, 처리, 저장합니다.
  • OpenTelemetry 표준 수집: OpenTelemetry Collector를 사용하여 풀 기반 Prometheus 스크래핑 및 푸시 기반 OpenTelemetry 프로토콜 (OTLP) 측정항목 수집을 수행합니다. 이 접근 방식은 서드 파티 Cloud Monitoring과의 향후 호환성을 지원합니다.
  • 확장 가능한 Cloud Storage 지원 측정항목 스토리지: Cloud Storage를 가용성이 높고 비용 효율적인 Prometheus 측정항목 블록 백엔드로 사용하도록 Grafana Mimir 및 Grafana Loki를 구성합니다.
  • 통합 원격 분석 시각화: 실시간 애플리케이션 측정항목, Grafana Loki 로그 스트림, Compute Engine VM stdout 로그를 표시하고 Cloud Logging 데이터 소스를 통합하는 사전 구성된 Grafana 대시보드를 봅니다.
  • Compute Engine VM 로깅 파이프라인: Compute Engine VM에 Fluent Bit 및 OpenTelemetry Collector Contrib을 자동으로 설치하여 systemd-journald 및 stdout 로그를 Grafana Loki, Cloud Logging 또는 둘 다로 스트리밍합니다. VM 호스트 측정항목 및 합성 OTLP 애플리케이션 측정항목을 수집하여 mTLS를 통해 Mimir로 전달할 수도 있습니다.
  • 유연한 배포 자동화: 일관된 환경 설정 및 해체를 위해 Terraform 및 Kubernetes 패키지 관리의 코드형 인프라 (IaC) 접근 방식을 Helm과 함께 사용합니다.

아키텍처

이 아키텍처는 OpenTelemetry Collector, Grafana Mimir, Grafana Loki, kube-state-metrics, Fluent Bit, cert-manager, Grafana를 사용하여 측정항목의 경우 Cloud Storage, 로그의 경우 Cloud Logging으로 Compute Engine 및 GKE 워크로드를 모니터링합니다. Virtual Private Cloud (VPC) 내의 Mimir 및 Loki는 Compute Engine VM이 측정항목과 로그를 푸시할 수 있도록 mTLS를 통해 내부 애플리케이션 부하 분산기를 사용합니다. Grafana는 리전 GKE Gateway를 사용하여 HTTPS를 통해 외부적으로 노출됩니다.

Compute Engine VM과 GKE 클러스터는 Cloud Storage에 데이터를 저장하고 Cloud Logging 및 Cloud Monitoring과 통합되는 오픈소스 모니터링 도구를 사용합니다.

구성요소

구성요소 기술 목적
원격 분석 수집기 OpenTelemetry Collector OpenTelemetry 프로토콜(OTLP) HTTP/gRPC 측정항목을 처리하고 Prometheus 엔드포인트를 스크래핑하여 Mimir로 전달하는 중앙 원격 분석 파이프라인입니다.
측정항목 데이터베이스 Grafana Mimir Cloud Storage에 영구 블록이 있는 가용성이 높은 장기 Prometheus 측정항목 스토리지 데이터베이스입니다.
로그 데이터베이스 Grafana Loki Cloud Storage에 청크 및 TSDB 색인을 유지하는 수평 확장 가능한 멀티 테넌트 로그 집계 데이터베이스입니다.
객체 스토리지 Cloud Storage Mimir 측정항목, Loki 로그, 공유 모니터링 아티팩트를 위한 전용 버킷을 프로비저닝합니다.
클러스터 상태 측정항목 kube-state-metrics Kubernetes API 서버를 리슨하고 클러스터 객체 (예: 배포, 노드, 포드)의 상태에 대한 측정항목을 생성합니다. ServiceMonitor를 사용하여 OpenTelemetry Collector에서 스크래핑합니다.
PKI 및 인증서 cert-manager 및 PKI 발급자 클러스터 내 구성요소 및 독립형 Compute Engine VM의 TLS/mTLS 인증서를 발급하기 위해 내부 루트 CA 및 ClusterIssuer를 부트스트랩합니다.
Google Kubernetes Engine 로그 수집기 Fluent Bit (DaemonSet) GKE 노드 전반에서 컨테이너 stdout 로그를 수집하고 Kubernetes 메타데이터로 보강하며 OTLP mTLS를 사용하여 GKE OTel Collector로 전달합니다.
VM 로그 수집기 Fluent Bit 및 OpenTelemetry Contrib systemd-journald를 사용하여 독립형 Compute Engine VM에서 OS 및 애플리케이션 stdout 로그를 수집하고 Cloud Logging으로 스트리밍합니다.
중앙 로깅 Cloud Logging Compute Engine VM 및 플랫폼 로그의 중앙 집중식 로깅 싱크입니다.
시각화 및 알림 Grafana Mimir, Grafana Loki, Cloud Monitoring, Cloud Logging의 데이터 소스로 사전 구성된 대시보드 시각화 레이어입니다.
푸시 데모 앱 Python (비콘 앱) 5초마다 OpenTelemetry Collector로 푸시되는 합성 OTLP 측정항목을 내보내는 데모 마이크로서비스입니다.
풀 데모 앱 Python (센서 앱) OpenTelemetry Collector에서 스크래핑한 표준 /metrics Prometheus 엔드포인트를 노출하는 데모 마이크로서비스입니다.
데모 앱 Python Compute Engine VM에서 실행되어 stdout에 구조화된 JSON 로그를 생성하는 데모 애플리케이션입니다.
배포 Terraform 및 Helm 가상 프라이빗 클라우드(VPC), GKE 클러스터, Cloud Storage 버킷, Identity and Access Management(IAM) 역할, Compute Engine VM, Helm 차트 배포를 자동화합니다.

참조 구현

Terraform을 사용하는 이 솔루션의 참조 구현은 GitHub에서 제공됩니다. 이는 데모 목적으로 빌드된 개념 증명 프로토타입이며 구현은 프로덕션 사용 사례에 대해 감사 또는 보안되지 않습니다.

기본 요건 및 배포 안내는 Grafana 및 OpenTelemetry를 사용한 소버린 모니터링 가능성 및 모니터링을 참조하세요.