Google Cloud Platform

개요

Datadog에서 모든 Google Compute Engine(GCE) 호스트를 보려면 Google Cloud Platform에 연결하세요. Datadog의 인프라스트럭처 개요에서 호스트를 확인하고 정렬할 수 있습니다. Datadog이 자동으로 GCE 호스트 태그와 추가한 GCE 라벨을 사용하여 호스트에 태그를 지정하기 때문입니다.

Datadog의 GCP 통합은 모든 Google Cloud 메트릭을 수집하도록 구축되었습니다. Datadog은 모든 하위 통합에 대한 정보 제공을 위해 문서를 지속적으로 업데이트하고 있으나 클라우드 서비스는 새로운 메트릭과 서비스를 빠르게 출시하기 때문에 통합 목록이 미처 업데이트되지 못한 경우가 있습니다.
통합설명
App Engine확장 가능한 애플리케이션을 구축하기 위한 PaaS(Platform as a Service)
Big Query엔터프라이즈 데이터 웨어하우스
BigtableNoSQL Big Data 데이터베이스 서비스
Cloud SQLMySQL 데이터베이스 서비스
Cloud APIs모든 Google Cloud Platform 서비스를 위한 프로그래밍 방식 인터페이스
Cloud Armor서비스 거부 및 웹 공격으로부터 보호하는 데 도움이 되는 네트워크 보안 서비스
Cloud Composer완전 관리형 워크플로 오케스트레이션 서비스
Cloud DataprocApache Spark 및 Apache Hadoop 클러스터를 실행하기 위한 클라우드 서비스
Cloud Dataflow스트림 및 배치 모드에서 데이터를 변환하고 강화하기 위한 완전 관리형 서비스
Cloud Filestore고성능, 완전 관리형 파일 스토리지
Cloud Firestore모바일, 웹, 서버 개발을 위한 유연하고 확장 가능한 데이터베이스
Cloud Interconnect하이브리드 연결
Cloud IoT안전한 디바이스 연결 및 관리
Cloud Load Balancing부하가 분산된 컴퓨팅 리소스 배포
Cloud Logging실시간 로그 관리 및 분석
Cloud Memorystore for Redis완전 관리형 인메모리 데이터 저장소 서비스
Cloud RouterBGP를 사용하여 VPC와 온프레미스 네트워크 간에 경로를 교환
Cloud RunHTTP를 통해 상태 스테이트리스 컨테이너를 실행하는 관리형 컴퓨팅 플랫폼
Cloud Security Command CenterSecurity Command Center는 위협 보고 서비스입니다.
Cloud Tasks분산된 작업 대기열
Cloud TPU머신 러닝 모델 학습 및 실행
Compute Engine고성능 가상 머신
Container EngineGoogle이 관리하는 Kubernetes
DatastoreNoSQL 데이터베이스
Firebase애플리케이션 개발을 위한 모바일 플랫폼
Functions이벤트 기반 마이크로서비스 구축을 위한 서버리스 플랫폼
Kubernetes Engine클러스터 관리자 및 오케스트레이션 시스템
Machine Learning머신 러닝 서비스
Private Service Connect프라이빗 VPC 연결로 관리형 서비스에 액세스
Pub/Sub실시간 메시징 서비스
Spanner수평적으로 확장 가능하고 전 세계적으로 일관된 관계형 데이터베이스 서비스
Storage통합 객체 스토리지
Vertex AI커스텀 머신 러닝(ML) 모델을 구축, 학습 및 배포합니다.
VPN관리형 네트워크 기능

설정

Datadog의 Google Cloud 통합을 설정하여 Google Cloud 서비스에서 메트릭과 로그를 수집하세요.

필수 구성 요소

  • 조직에서 도메인별로 ID를 제한하는 경우 Datadog의 고객 ID 를 정책에 허용되는 값으로 추가해야 합니다. Datadog의 고객 ID: C0147pk0i

  • 서비스 계정 가장 및 프로젝트 자동 검색은 프로젝트를 모니터링할 수 있는 특정 역할과 API를 사용하도록 설정해야 합니다. 시작하기 전에 모니터링하려는 프로젝트에 대해 다음 API가 활성화되어 있는지 확인하세요.

메트릭 수집

설치

사이트에서는 서비스 계정 가장 기능을 이용할 수 없습니다.

Google Cloud와 Datadog를 통합할 때 서비스 계정 가장과 자동 프로젝트 감지 기능을 사용할 수 있습니다.

이 방법을 사용하면 관련 프로젝트에 IAM 역할을 부여해 서비스 계정에서 볼 수 있는 모든 프로젝트를 모니터링할 수 있습니다. 이 역할을 개별 프로젝트에 부여하거나 조직이나 폴더 수준에서 역할을 부여하여 Datadog가 프로젝트 그룹을 모니터링하도록 구성할 수 있습니다. 이처럼 역할을 부여하면 Datadog가 자동으로 주어진 범위 내 모든 프로젝트를 자동으로 감지하고 모니터링할 수 있습니다. 향후 새 프로젝트가 추가되면 자동으로 모니터링에 추가됩니다.

1. Google Cloud 서비스 계정 생성

  1. Google Cloud 콘솔을 엽니다.
  2. IAM & Admin > Service Accounts로 이동합니다.
  3. 상단에 Create service account를 클릭합니다.
  4. 서비스 계정에 고유 이름을 부여하고 Create and continue를 클릭합니다.
  5. 서비스 계정에 다음 역할을 추가합니다.
    • Monitoring Viewer
    • Compute Viewer
    • Cloud Asset Viewer
    • Browser
  6. Continue를 클릭한 후 Done을 선택하면 서비스 계정 생성이 완료됩니다.
'서비스 계정 생성' 플로우를 보여주는 Google Cloud 콘솔 인터페이스. 'Grant this service account access to project' 아래 설명에 있는 역할 네 개가 추가됨.

2. 서비스 계정에 Datadog 보안 주체 추가

  1. Datadog에서 Integrations > Google Cloud Platform으로 이동하세요.
  2. Add GCP Account를 클릭하세요. 구성한 프로젝트가 없을 경우 자동으로 이 페이지로 넘어갑니다.
  3. 조직에 Datadog 보안 주체를 아직 생성하지 않은 경우 Generate Principal 버튼을 누르세요.
  4. 다음 섹션에서 사용할 수 있도록 Datadog 보안 주체를 복사한 후 보관해 두세요.
    '새 GCP 계정 추가' 플로우를 보여주는 Datadog 통합 인터페이스. 사용자가 Datadog 보안 주체를 생성하고 클립보드에 복사할 수 있는 텍스트 상자. 두 번째 단계인 '서비스 계정 이메일 추가'에는 사용자가 섹션 3에서 완료할 수 있는 텍스트 상자가 있음.
    다음 섹션에서 이 창을 열어두세요.
  5. Google Cloud 콘솔Service Acounts 메뉴 아래에서 첫 번째 섹션에서 생성한 서비스 계정을 찾으세요.
  6. Permissions 탭으로 이동하고 Grant Access를 클릭하세요.
    Service Accounts 아래 Permissions 탭을 보여주는 Google Cloud 콘솔 인터페이스
  7. 보안 주체를 New principals 텍스트 상자에 붙여 넣으세요.
  8. Service Account Token Creator 역할을 부여하고 Save를 클릭하세요.
    '보안 주체 추가' 상자와 '역할 할당' 인터페이스를 보여주는 Google Cloud 콘솔 인터페이스

참고: 공유 Datadog 보안 주체를 사용해 이미 액세스를 구성한 경우에는 이 단계를 완료한 후 기존 보안 주체 권한을 취소할 수 있습니다.

3. Datadog에서 통합 설정 완료

  1. Google Cloud 콘솔에서 Service Account > Details 탭으로 이동합니다. 여기에서 Google 서비스 계정과 연결된 이메일을 찾을 수 있습니다(예: <sa-name>@<project-id>.iam.gserviceaccount.com).
  2. 이 이메일을 복사하세요.
  3. Datadog 통합 구성으로 돌아가세요(이전 섹션에서 Datadog 보안 주체를 복사한 화면).
  4. Add Service Account Email 아래 상자에서 이전에 복사한 이메일을 붙여 넣으세요.
  5. Verify and Save Account를 클릭하세요.

In approximately fifteen minutes, metrics appear in Datadog.

4. 다른 프로젝트에 역할 부여(선택사항)

자동 프로젝트 감지 기능을 통해 모니터링할 프로젝트 추가 과정이 간편해졌습니다. 다른 프로젝트, 폴더, 또는 조직에 서비스 계정 액세스를 허용하면 Datadog가 관련 프로젝트를 자동으로 감지하고(폴더나 조직에 중첩된 프로젝트 포함) 통합 타일에 추가합니다.

  1. 원하는 범위로 역할을 부여할 올바른 권한이 있는지 확인해야 합니다.
    • Project IAM Admin (이상)
    • Folder Admin
    • Organization Admin
  2. Google Cloud 콘솔에서 IAM 페이지로 이동하세요.
  3. 프로젝트, 폴더, 또는 조직을 선택하세요.
  4. 리소스에서 기존 역할이 없는 보안 주체에 역할을 부여하려면 Grant Access를 클릭하고 이전에 생성한 서비스 계정 이메일을 입력하세요.
  5. 다음 역할을 부여하세요.
    • Compute Viewer
    • Monitoring Viewer
    • Cloud Asset Viewer 참고: Browser 역할은 서비스 계정 기본 프로젝트에만 필요합니다.
  6. Save를 클릭하세요.

구성

또는 해당 프로젝트의 드롭다운 메뉴에서 Limit Metric Collection 텍스트 상자에 태그를 입력해 Datadog로 불러오는 GCE 인스턴스를 제한할 수 있습니다. 이렇게 하면 정의된 태그와 일치하는 호스트만 Datadog로 가져옵니다. 불러오고 싶은 호스트가 많을 경우 와일드카드(단일 문자일 경우 ? 사용, 다수 문자일 경우 * 사용)를 사용하거나, 특정 호스트를 제외하고 싶을 경우에는 !를 사용하세요. 이 예시의 경우 크기가 c1*인 인스턴스를 모두 포함하나 스테이징 호스트를 제외합니다.

datadog:monitored,env:production,!env:staging,instance-type:c1.*

자세한 내용은 Google 설명서 레이블 생성 및 관리를 참고하세요.

로그 수집

Google Cloud DataflowDatadog 템플릿을 사용해 Google Cloud 서비스에서 Datadog로 로그를 전송하세요. 이 방법을 사용해 Datadog로 전송하기 전에 이벤트를 압축 및 일괄 처리할 수 있습니다. 이 섹션에서는 다음에 관한 지침을 제공합니다.

1. Pub/Sub 주제를 생성하고 구독을 풀하여 구성된 로그 싱크에서 로그 수신 2. 커스텀 Dataflow 작업자 서비스 계정을 생성하여 Dataflow 파이프라인 작업자에 최소 권한을 제공 3. 로그 싱크를 생성하여 Pub/Sub 주제로 로그 게재 4. Datadog 템플릿을 사용해 Dataflow 작업을 생성하여 Pub/Sub 구독에서 Datadog로 로그 스트림

로그 싱크에서 생성한 로그 필터로 GCE와 GKE 로그를 포함해 Datadog로 전송할 로그를 완전 통제할 수 있습니다. 필터 쓰기에 관한 자세한 내용은 Google의 로그 쿼리 언어 페이지를 참고하세요.

참고: Google Cloud Dataflow를 이용하려면 Dataflow API를 활성화해야 합니다. 자세한 내용은 Google Cloud 설명서 API 활성화를 참고하세요.

GCE나 GKE에서 실행 중인 애플리케이션에서 로그를 수집하려면 Datadog 에이전트를 사용할 수도 있습니다.

Pub/Sub Push 구독으로 Google Cloud 로그를 수집하는 단계는 다음과 같은 이유로 서비스 중단되었습니다.

  • Google Cloud VPC가 있을 경우 Push 구독이 VPC 외부 엔드포인트에 접근할 수 없음
  • Push 구독에서 이벤트 압축이나 일괄 처리 기능을 제공하지 않음. 로그 볼륨이 매우 적은 경우에만 사용할 수 있음

트러블슈팅이나 레거시 설정 변경용으로 Push 구독 설명서를 남겨두었습니다. 대신 Datadog Dataflow 템플릿으로 구독을 Pull하여 Google Cloud 로그를 Datadog로 전송하세요.

1. Cloud Pub/Sub 주제 및 구독 생성

  1. Cloud Pub/Sub 콘솔로 이동하여 새 주제를 만듭니다. 간단하게 설정하려면 Add a default subscription 옵션을 선택하세요.

    참고: Pull 전송 유형을 사용하여 Cloud Pub/Sub 구독을 수동으로 설정할 수도 있습니다. Pub/Sub 구독을 수동으로 만드는 경우 Enable dead lettering 체크박스를 선택 해제하세요. 자세한 내용은 지원되지 않는 Pub/Sub 기능을 참고하세요.

기본 구독 추가 체크박스가 선택된 Google Cloud Console 주제 생성 페이지
  1. 해당 주제에 export-logs-to-datadog과 같은 명확한 이름을 지정하고 Create를 클릭합니다.

  2. Datadog API에서 거부된 로그 메시지를 처리하기 위해 추가 주제과 기본 구독을 생성합니다. 이 주제 이름은 outputDeadletterTopic 템플릿 파라미터 경로 설정의 일부로 Datadog Dataflow 템플릿 내에서 사용됩니다. 실패한 메시지의 문제를 검사하고 수정한 후 Pub/Sub to Pub/Sub 템플릿 작업을 실행하여 문제를 원래 export-logs-to-datadog 주제로 다시 보냅니다.

  3. Datadog에서는 나중에 Datadog Dataflow 템플릿에서 사용할 수 있도록 유효한 Datadog API 키 값을 사용하여 Secret Manager에서 비밀을 생성할 것을 권장합니다.

경고: Cloud Pub/Sub에는 Google Cloud 할당량 및 제한사항이 적용됩니다. 보유한 로그 수가 해당 제한을 초과하는 경우 Datadog에서는 로그를 여러 주제로 분할할 것을 권장합니다. 해당 제한에 도달하는 경우 모니터 알림 설정에 대한 자세한 내용은 Pub/Sub Log Forwarding 섹션 모니터링을 참고하세요.

2. 커스텀 Dataflow 작업자 서비스 계정 생성

Dataflow 파이프라인 작업자의 기본 동작은 프로젝트의 모든 리소스에 권한을 부여하는 프로젝트의 Compute Engine 기본 서비스 계정을 사용하는 것입니다. 프로덕션 환경에서 로그를 전달하는 경우 필요한 역할과 권한만 있는 커스텀 작업자 서비스 계정을 만들고 이 서비스 계정을 Dataflow 파이프라인 작업자에 할당해야 합니다.

  1. Google Cloud 콘솔의 Service Accounts 페이지로 이동하여 프로젝트를 선택합니다.
  2. CREATE SERVICE ACCOUNT를 클릭하고 서비스 계정에 설명이 포함된 이름을 지정합니다. 그런 다음CREATE AND CONTINUE를 클릭합니다.
  3. 필수 권한 테이블에 역할을 추가하고 DONE을 클릭합니다.
필수 권한
역할경로설명
Dataflow Adminroles/dataflow.admin이 서비스 계정이 Dataflow 관리 작업을 수행하도록 허용합니다.
Dataflow Workerroles/dataflow.worker이 서비스 계정이 Dataflow 작업을 실행하도록 허용합니다.
Pub/Sub Viewerroles/pubsub.viewer이 서비스 계정이 Google Cloud 로그를 통해 Pub/Sub 구독 메시지를 볼 수 있도록 허용합니다.
Pub/Sub Subscriberroles/pubsub.subscriber이 서비스 계정이 Google Cloud 로그를 통해 Pub/Sub 구독의 메시지를 사용하도록 허용합니다.
Pub/Sub Publisherroles/pubsub.publisher이 서비스 계정이 실패한 메시지를 별도의 구독에 게시하도록 허용합니다. 이를 통해 로그를 분석하거나 다시 보낼 수 있습니다.
Secret Manager Secret Accessorroles/secretmanager.secretAccessor이 서비스 계정이 Secret Manager의 Datadog API 키에 액세스하도록 허용합니다.
Storage Object Adminroles/storage.objectAdmin이 서비스 계정이 파일 준비용으로 지정된 Cloud Storage 버킷을 읽고 쓸 수 있도록 허용합니다.

참고: Dataflow 파이프라인 작업자에 커스텀 서비스 계정을 만들지 않는 경우 기본 Compute Engine 서비스 계정에 위의 필수 권한이 ​​있는지 확인하세요.

3. Google Cloud Pub/Sub 주제에서 로그 내보내기

  1. Google Cloud 콘솔에서 Logs Explorer 페이지로 이동합니다.

  2. Log Router 탭에서 Create Sink를 선택합니다.

  3. 싱크의 이름을 제공합니다.

  4. _Cloud Pub/Sub_를 대상으로 선택하고 해당 목적으로 생성된 Cloud Pub/Sub 주제를 선택합니다. 참고: Cloud Pub/Sub 주제는 다른 프로젝트에 있을 수 있습니다.

    Google Cloud Pub/Sub 로그를 Pub Sub로 내보내기
  5. 선택적 포함 또는 제외 필터를 사용하여 싱크에 포함하려는 로그를 선택하세요. 검색어를 사용하여 로그를 필터링하거나 샘플 함수를 사용할 수 있습니다. 예를 들어 ERROR에서 severity 레벨이 있는 로그 중 10%만 포함하려면 severity="ERROR" AND sample(insertId, 0.01)를 사용하여 포함 필터를 만듭니다.

    심각도=ERROR 및 샘플(insertId, 0.1) 쿼리가 포함된 Google Cloud 로깅 싱크의 포함 필터
  6. Create Sink를 클릭합니다.

참고: Google Cloud Logging에서 서로 다른 싱크를 사용하여 동일한 Cloud Pub/Sub 주제로 여러 내보내기를 만들 수 있습니다.

4. Dataflow 작업 생성 및 실행하기

  1. Google Cloud 콘솔의 Create job from template 페이지로 이동합니다.

  2. 작업 이름을 지정하고 Dataflow 리전 엔드포인트를 선택합니다.

  3. Dataflow template 드롭다운에서 Pub/Sub to Datadog을 선택하면 Required parameters 섹션이 나타납니다. a. Pub/Sub input subscription 드롭다운에서 입력 구독을 선택합니다. b. Datadog Logs API URL 필드에 다읍을 입력합니다:

    https://
    

    참고: 위의 URL을 복사하기 전에 페이지 오른쪽에 있는 Datadog 사이트 선택기가 Datadog 사이트로 설정되어 있는지 확인하세요.

    c. Output deadletter Pub/Sub topic 드롭다운에서 메시지 오류를 수신하기 위해 생성된 주제를 선택합니다. d. Temporary location 필드에 저장소 버킷의 임시 파일 경로를 지정합니다.

Datadog Dataflow 템플릿의 필수 파라미터
  1. 1단계에서 언급한 대로 Datadog API 키 값을 사용하여 Secret Manager에서 비밀을 생성한 경우 Google Cloud Secret Manager ID 필드에서 해당 비밀의 리소스 이름을 입력하세요.
Datadog Dataflow 템플릿의 선택적 파라미터(Google Cloud Secret Manager ID 및 전달된 API 키의 소스 필드가 모두 강조 표시됨).

사용 가능한 다른 옵션 사용에 대한 자세한 내용은 Dataflow 템플릿의 템플릿 파라미터를 참고하세요.

  • apiKeyKMSEncryptionKey와 함께 apiKeySource=KMSCloud KMS 키 ID로 설정하고 apiKey를 암호화된 API 키로 설정
  • 권장하지 않음: apiKeyapiKeySource=PLAINTEXT가 플레인 텍스트 API 키로 설정된 경우
  1. 커스텀 작업자 서비스 계정을 만든 경우 Service account email 드롭다운에서 해당 계정을 선택합니다.
서비스 계정 이메일 드롭다운이 강조표시된 Datadog Dataflow 템플릿의 선택적 파라미터
  1. RUN JOB을 클릭합니다.

참고: 공유 VPC가 있는 경우 NetworkSubnetwork 파라미터 지정과 관련한 지침은 Dataflow 설명서 네트워크 및 서브네트워크 지정 페이지를 참고하세요.

검증

Cloud Pub/Sub 주제에 전달된 새로운 로깅 이벤트가 Datadog Log Explorer에 표시됩니다.

참고: Google Cloud Pricing Calculator를 사용하여 잠재적 비용을 계산할 수 있습니다.

Cloud Pub/Sub 로그 전달 모니터링

Google Cloud Pub/Sub 통합은 로그 전달 상태를 모니터링하는 데 유용한 메트릭을 제공합니다.

  • 전달 보류 중인 메시지 수: gcp.pubsub.subscription.num_undelivered_messages
  • 구독에서 가장 오래된 확인되지 않은 메시지의 기간: gcp.pubsub.subscription.oldest_unacked_message_age

메트릭 모니터와 함께 위 메트릭을 사용해 입력 및 데드레터 구독 메시지와 관련한 경고를 받습니다.

Dataflow 파이프라인 모니터링

Datadog의 Google Cloud Dataflow 통합을 사용하여 Dataflow 파이프라인의 모든 측면을 모니터링하세요. Dataflow 워크로드를 실행하는 GCE 인스턴스 및 Pub/Sub 처리량에 대한 정보와 같은 상황별 데이터가 풍부한 기본 대시보드에서 모든 주요 Dataflow 메트릭을 확인할 수 있습니다.

사전 설정된 권장 모니터를 사용하여 파이프라인의 백로그 시간 증가와 관련한 알림을 설정할 수도 있습니다. 자세한 내용은 Datadog 블로그에서 Datadog으로 Dataflow 파이프라인 모니터링하기를 읽어보세요.

수집한 데이터

메트릭

메트릭에 대해서는 개별 Google Cloud 통합 페이지를 참조하세요.

누적 메트릭

누적 메트릭은 각 메트릭 이름에 대한 .delta 메트릭과 함께 Datadog으로 가져옵니다. 누적 메트릭은 시간이 지남에 따라 값이 지속적으로 증가하는 메트릭입니다. 예를 들어 sent bytes 메트릭은 누적될 수 있습니다. 각 값은 해당 시점에 서비스에서 보낸 총 바이트 수를 기록합니다. 델타 값은 이전 측정 이후의 변화를 나타냅니다.

예시:

gcp.gke.container.restart_count는 CUMULATIVE 메트릭입니다. 이 메트릭을 누적 메트릭으로 가져오는 동안 Datadog은 델타 값(CUMULATIVE 메트릭의 일부로 방출된 집계 값과 반대)을 포함하는 gcp.gke.container.restart_count.delta 메트릭을 추가합니다. 자세한 내용은 Google Cloud 메트릭 종류를 참고하세요.

이벤트

Google Cloud Platform에서 생성된 모든 서비스 이벤트는 Datadog Events Explorer로 전달됩니다.

서비스 점검

Google Cloud Platform 통합에는 서비스 검사가 포함되지 않습니다.

태그

태그는 다양한 Google Cloud Platform 및 Google Compute Engine 설정 옵션에 따라 자동으로 할당됩니다. project_id 태그가 모든 메트릭에 추가됩니다. 추가 태그는 가능한 경우 Google Cloud Platform에서 수집되며 메트릭 유형에 따라 다릅니다.

또한 Datadog은 다음을 태그로 수집합니다.

  • <key>:<value> 라벨이 있는 모든 호스트.
  • Google Pub/Sub, GCE, Cloud SQL, Cloud Storage의 커스텀 라벨.

트러블슈팅

사용자 정의 gcp.logging 메트릭에 대한 메타데이터가 잘못되었나요?

Datadog의 기본 로깅 메트릭 이외의 메트릭과 같은 비표준 gcp.logging 메트릭의 경우 적용된 메타데이터가 Google Cloud Logging과 일치하지 않을 수 있습니다.

이러한 경우 메트릭 요약 페이지로 이동하여 문제의 메트릭을 검색 및 선택한 후 메타데이터 옆에 있는 연필 아이콘을 클릭하여 메타데이터를 수동으로 설정해야 합니다.

도움이 필요하신가요? Datadog 지원팀에 문의하세요.

참고 자료