관측 가능성과 알림 솔루션으로 Cloud Monitoring, Logging, Trace 통합

이 문서에서는 관측 가능성과 알림을 위해 Cloud Logging, Cloud Monitoring, Cloud Trace를 타사 및 오픈소스 솔루션과 통합하는 방법을 설명하는 리소스를 제공합니다. 이 가이드는 사이트 안정성 엔지니어(SRE), 시스템 관리자, 네트워크 운영, 모니터링 전문가, 시스템의 안정성, 가용성, 성능을 담당하는 기타 실무자를 위한 참조 가이드입니다. 이 문서에서는 Google Cloud에서 솔루션을 개발하는 경험이 있다고 가정합니다.

이러한 시스템의 성능과 가용성이 저하되면 알림을 생성하여 기업 IT 시스템을 모니터링하고 진단하는 데 도움이 되는 다양한 도구를 사용할 수 있습니다. 사용자와 조직이 컴퓨팅 공간을 Google Cloud로 확장하면 다음을 수행하여 Google Cloud를 관측 가능성 및 알림 방식에 통합할 수 있습니다.

  • Google Cloud에서 데이터 추출: Cloud Monitoring 및 Logging에서 기존 도구로 데이터를 전송합니다.
  • Google Cloud에 데이터 수집: 기존 도구에서 Cloud Monitoring 및 Logging으로 데이터를 전송합니다.

Monitoring 및 Logging 데이터 추출

Google Cloud 리소스의 관측 가능성 및 이벤트 데이터를 사용하는 타사 모니터링, 알림, 알림 도구로 전송할 수 있습니다. Google Cloud 서비스는 완전한 관측 가능성 개요를 제공하는 데 도움이 되는 측정항목, 로그, trace 데이터와 같은 관측 가능성 데이터를 자동으로 생성합니다. Cloud Monitoring 및 Cloud Logging 데이터를 추출하면 데이터를 기존 안정성, 알림, 이슈 관리 프로세스에 통합할 수 있습니다.

Cloud Monitoring 관측 가능성 데이터

Cloud Monitoring은 데이터를 수집하는 서비스 유형에 따라 측정항목을 일반 그룹으로 분류합니다. Monitoring의 측정항목 유형, 리소스, 라벨, 집계에 대해 알아보려면 측정항목 이해 및 차트 작성시계열 구조를 참조하세요.

Cloud Monitoring은 Google Cloud, Amazon Web Services(AWS), 호스팅된 업타임 프로브, 애플리케이션 계측에서 측정항목, 이벤트, 메타데이터를 수집합니다. 다음 소스의 측정항목은 Cloud Monitoring에 기록됩니다.

프로그래매틱 방식으로 측정항목 추출

Monitoring API를 사용하면 Cloud Monitoring에서 수집되는 모든 측정항목을 프로그래매틱 방식으로 읽고 쓸 수 있습니다. 다음 참조 가이드는 Monitoring API에서 측정항목을 읽는 데 사용할 수 있는 아키텍처 및 코드 예시를 제공합니다.

타사 도구를 사용한 모니터링

내장된 모니터링 기능을 제공하는 DatadogSignalFX와 같은 타사 솔루션을 사용하여 Monitoring API를 직접 읽을 수 있습니다.

Cloud Logging 관측 가능성 데이터

Google Cloud 서비스, 사용자 리소스, 코드는 상태 또는 이벤트를 기록하는 로그를 자동으로 생성합니다. 로그의 수집, 저장, 내보내기 방법에 대한 자세한 내용은 Cloud Logging 기본 개념을 참조하세요.

Cloud Logging 아키텍처에는 다음 구성요소가 포함됩니다.

  • 로그 작성자: Cloud Logging에서 로그를 생성하는 리소스
  • 로그 라우터: Cloud Logging 및 내보내기
  • 로그 소비자: Cloud Logging에서 로그를 수집하는 타사 및 오픈소스 도구

로그 라우터를 통해 작성자에서 로그 소비자로 데이터를 전송하는 방법에 대한 자세한 내용은 로그 라우터 개요를 참조하세요.

프로그래매틱 방식으로 로그를 읽기 위한 애플리케이션을 빌드하는 방법에 대한 자세한 내용은 로그 뷰어로 내보내기Logging API 사용을 참조하세요.

타사 도구로 내보내기 설정

Pub/Sub, Cloud Storage, BigQuery로 로그를 내보내고 사용할 도구의 구독을 만들 수 있습니다.

Cloud Logging은 내보내기 파이프라인을 관리하고 사용자는 파이프라인을 통해 도착하는 로그만 처리하므로 Pub/Sub를 사용하여 타사 도구로 로그를 내보내는 것이 좋습니다.

특정 도구로 로그를 내보내는 방법에 대한 자세한 내용은 다음 가이드를 참조하세요.

프로그래매틱 방식으로 로그 추출

Logging API를 사용하여 로그를 읽고 로그 항목을 나열하여 특정 로그 집합의 페이지로 나눈 목록을 가져올 수 있습니다.

Monitoring에 관측 가능성 데이터 수집

Cloud Monitoring을 사용하여 온프레미스 및 타사 도구에서 관측 가능성 데이터를 수집한 다음 대시보드, 차트, 알림을 사용하여 유용한 정보를 생성할 수 있습니다.

AWS 리소스 모니터링

AWS에서 실행되는 리소스를 모니터링하려면 Cloud Monitoring AWS 계정 통합을 사용하여 Amazon CloudWatch의 측정항목을 포함한 해당 리소스에 대한 정보를 Cloud Monitoring에 직접 수집할 수 있습니다. 자세한 내용은 AWS 빠른 시작AWS 측정항목을 참조하세요.

Azure, AWS, 온프레미스 리소스 모니터링

Microsoft Azure에서 실행하는 리소스, Monitoring에서 자동으로 포함하지 않는 AWS 리소스, 온프레미스 리소스를 모니터링하려면 Blue Medora의 BindPlane 제품을 사용할 수 있습니다. BindPlane은 다양한 소스에서 측정항목 데이터를 직접 수집하는 통합 솔루션을 제공합니다. BindPlane 통합에 대한 자세한 내용은 다음 가이드를 참조하세요.

Prometheus로 모니터링

Prometheus는 Kubernetes 클러스터와 함께 사용되는 일반적인 오픈소스, 시계열 모니터링 프레임워크입니다. Prometheus 통합을 사용하여 인프라 및 커스텀 애플리케이션 측정항목을 Cloud Monitoring으로 수집할 수 있습니다. 자세한 내용은 다음 가이드를 참조하세요.

Istio를 사용한 모니터링

Istio 관측 가능성을 사용하면 Istio 측정항목을 내보낼 수 있습니다. GKE의 Istio 부가기능을 사용하여 Monitoring 어댑터를 자동으로 구성하거나 클러스터에 Istio를 수동으로 설치한 후 Monitoring 어댑터를 구성할 수 있습니다. Cloud Monitoring으로 Istio를 사용하는 방법에 대한 자세한 내용은 다음 가이드를 참조하세요.

커스텀 모니터링

애플리케이션에 커스텀 원격 분석을 추가하고 Cloud Monitoring에 측정항목을 수집하여 차트, 대시보드, 알림 정책에 사용할 수 있습니다.

라이브러리가 지원하는 언어로 작성된 앱의 경우 OpenCensus를 사용하는 것이 좋습니다. 자세한 내용은 OpenCensus를 사용한 커스텀 측정항목을 참조하세요.

앱이 GKE에서 실행 중인 경우 이 문서 앞부분에 설명된 Prometheus를 사용할 수 있습니다.

Monitoring API를 사용하여 코드에 커스텀 측정항목 계측을 추가할 수 있습니다. Monitoring API는 가장 많은 유연성과 제어 기능을 제공하지만 OpenCensus 또는 Prometheus보다 사용이 훨씬 더 복잡합니다. 자세한 내용은 Monitoring API 소개를 참조하세요.

Monitoring 데이터 시각화

Cloud Monitoring은 데이터를 시각화하기 위해 다음 옵션을 제공합니다.

Google Cloud Console의 Monitoring 페이지에서 다음 도구를 사용하여 데이터를 시각화할 수 있습니다.

  • 모니터링 개요: Google Cloud 리소스, 앱, AWS 리소스의 차트를 표시하는 사전 정의된 대시보드입니다. 이러한 대시보드의 차트 구성 및 표시 기간을 수정할 수 있습니다.
  • 커스텀 대시보드: 지정한 서비스 또는 리소스 그룹의 상태를 표시하도록 만들 수 있는 맞춤설정 가능한 대시보드입니다.
  • 측정항목 탐색기: 작업공간에서 수집되는 측정항목의 커스텀 보기를 만들 수 있는 웹 보기입니다. 측정항목 탐색기 차트를 공유하여 실시간 문제 해결 및 공동작업 사용 사례를 지원할 수 있습니다.

자세한 내용은 Qwiklab Cloud Monitoring으로 여러 프로젝트 모니터링을 참조하세요.

Logging에 관측 가능성 데이터 수집

Cloud Logging을 사용하여 온프레미스 및 타사 도구에서 로그 데이터를 수집한 다음 로그 데이터와 이벤트를 저장, 검색, 분석, 모니터링, 알림을 받을 수 있습니다.

AWS 리소스 로깅

Amazon EC2에서 실행 중인 VM의 로그를 수집하려면 VM 권한을 구성한 다음 VM에 Cloud Logging 에이전트를 설치합니다. Cloud Logging에서 AWS 로그를 사용하는 방법에 대한 자세한 내용은 AWS 빠른 시작을 참조하세요.

Azure 및 온프레미스 리소스 로깅

Microsoft Azure 또는 온프레미스에서 실행되는 리소스에서 로그를 수집하려면 Blue Medora의 BindPlane 통합 솔루션을 사용하면 됩니다. 자세한 내용은 BlueMedora를 사용한 온프레미스 리소스 로깅 가이드를 참조하세요.

커스텀 로깅

Cloud Logging에 직접 로그를 보내려면 Logging 클라이언트 라이브러리를 사용하면 됩니다. Logging 클라이언트 라이브러리를 사용하여 로그를 수집하는 방법에 대한 자세한 내용은 Logging API 샘플을 참조하세요.

Cloud Trace에 trace 수집

Cloud Trace를 사용하면 수집하는 trace에 애플리케이션 계측, 스토리지 백엔드, 시각화 및 분석 레이어를 제공하여 앱 지연 시간을 분석할 수 있습니다. Cloud Trace는 특히 복잡한 마이크로서비스 기반 아키텍처의 경우 앱 지연 시간을 분석하는 데 사용할 수 있는 분산 추적 시스템입니다.

Zipkin으로 추적

앱이 이미 Zipkin으로 계측되어 있고 자체 추적 백엔드를 실행하지 않으려는 경우 또는 Cloud Trace의 고급 분석 도구에 액세스하려면 Cloud Trace로 추적을 수집할 수 있습니다. Zipkin 프로젝트에서 이 기능을 유지하며 Google은 공식적으로 지원하지 않습니다. 자세한 내용은 Zipkin로 Cloud Trace 사용을 참조하세요.

OpenTelemetry로 추적

기존 추적 계측이 없고 Cloud Trace를 추적 분석 도구로 사용하려면 OpenTelemetry를 사용하는 것이 좋습니다. Open Telemetry는 여러 언어를 지원하는 오픈소스 추적 및 측정항목 라이브러리입니다. Cloud Trace로 OpenTelemetry를 사용하는 방법에 대한 자세한 내용은 OpenTelemetry 문서를 참조하세요. Go를 사용하는 예시는 trace 내보내기 패키지를 참조하세요.

클라이언트 라이브러리로 추적

Google Cloud, 다른 클라우드 제공업체, 온프레미스에서 VM 또는 컨테이너를 실행할 때 앱 계측에 Cloud Trace 클라이언트 라이브러리를 사용할 수 있습니다. Google은 OpenTelemetry를 사용하도록 전환하고 있습니다. 분산 추적을 사용하려면 이 문서 앞부분에 설명된 OpenTelemetry를 사용하는 것이 좋습니다.

경고 및 알림

Google Cloud 및 외부 도구를 사용하여 외부 시스템에서 수집되는 데이터에 대한 알림을 보낼 수 있습니다.

Cloud Monitoring은 이슈 및 이벤트 알림 및 관리를 위한 기능을 제공합니다. 시스템을 모니터링하려면 Monitoring의 알림을 사용자가 획득했거나 직접 만든 도구에 통합할 수 있습니다.

Monitoring 통합을 구현하려면 다음 옵션 중 하나 이상을 사용합니다.

  • Cloud Monitoring 기본 제공 알림 통합을 사용하여 다른 시스템에 알림 보내기
  • 기본 제공 통합이 없는 시스템에는 파트너 솔루션을 사용
  • 다른 시스템에 Cloud Monitoring 알림을 전송하기 위해 웹훅으로 커스텀 통합 빌드

Monitoring에서 알림 보내기

로그 및 수집된 측정항목을 기반으로 Cloud Monitoring 알림 정책을 만들고 이메일이나 SMS와 같은 다른 채널로 알림을 보낼 수 있습니다. 다음 가이드는 Slack 및 PagerDuty의 구현 예시를 제공합니다.

알림에 대한 자세한 내용은 심층 알림 정책을 참조하세요.

타사 솔루션에서 알림 보내기

타사 솔루션을 사용하여 시스템에 Cloud Monitoring 알림을 보낼 수 있습니다. 예를 들어 다음 가이드를 참조하세요.

커스텀 통합에서 알림 보내기

웹훅을 사용해 여러 타사 모니터링 시스템으로 커스텀 통합을 만들 수 있습니다. 커스텀 통합을 설정하면 Cloud Monitoring이 제공하는 URL에 대해 JSON 페이로드를 통해 알림을 전송합니다. 다음 가이드는 커스텀 웹훅 통합의 예시를 제공합니다.

Monitoring에서 오류 알림 전송

앞에서 설명한 것처럼 Monitoring에 데이터를 수집 할 때 외부 시스템에서 알림을 오류로 작성하고 알림을 트리거하도록 Error Reporting 기능을 구성할 수 있습니다. 자세한 내용은 다음 가이드를 참조하세요.

다음 단계