Google Cloud Platform

概要

Google Cloud Platform に接続して、すべての Google Compute Engine (GCE) ホストを Datadog に表示できます。GCE ホストタグと追加した GCE ラベルがホストに自動的にタグ付けされるため、Datadog のインフラストラクチャー概要にホストを表示し、分類することができます。

Datadog の GCP インテグレーションは、すべての Google Cloud メトリクスを収集するように構築されています。Datadog では継続的にドキュメントを更新してすべてのサブインテグレーションを表示できるように努めていますが、新しいメトリクスやサービスがクラウドサービスから次々にリリースされるため、インテグレーション一覧が追い付かないことがあります。
Datadog クリップボード説明
App Engineスケーラブルなアプリケーションを構築できる PaaS (サービスとしてのプラットフォーム)
Big Query企業向けデータウェアハウス
BigtableNoSQL ビッグデータデータベースサービス
Cloud SQLMySQL データベースサービス
Cloud APIsすべての Google Cloud Platform サービス向けのプログラムインターフェイス
Cloud ArmorDoS 攻撃や Web 攻撃から保護するネットワークセキュリティサービス
Cloud Composerフルマネージド型のワークフローオーケストレーションサービス
Cloud DataprocApache Spark と Apache Hadoop のクラスターを実行するためのクラウドサービス
Cloud Dataflowストリームおよびバッチモードでデータを変換し、リッチ化するためのフルマネージドサービス
Cloud Filestore高パフォーマンスのフルマネージド型ファイルストレージ
Cloud Firestoreモバイル、Web、およびサーバー開発向けの柔軟でスケーラブルなデータベース
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機械学習サービス
Pub/Subリアルタイムメッセージングサービス
Spanner水平方向に拡張可能でグローバルな一貫性を持つリレーショナルデータベースサービス
Storage統合型オブジェクトストレージ
Vertex AIカスタムの機械学習 (ML) モデルの構築、トレーニング、デプロイを行います。
VPNマネージド型のネットワーク機能

計画と使用

メトリクスの収集

インフラストラクチャーリスト

サービスアカウントの権限委譲は サイトでは利用できません。

Datadog と Google Cloud のインテグレーションには、サービスアカウントの権限委譲とプロジェクトの自動検出を使用することができます。

この方法では、関連するプロジェクトに IAM ロールを割り当てることで、サービスアカウントから見えるすべてのプロジェクトを監視することができます。これらのロールを個別にプロジェクトに割り当てることも、組織レベルやフォルダレベルでこれらのロールを割り当てて、プロジェクトのグループを監視するように Datadog を構成することもできます。このようにロールを割り当てることで、Datadog は、将来グループに追加される可能性のある新しいプロジェクトを含め、指定されたスコープ内のすべてのプロジェクトを自動的に検出して監視することができます。

前提条件
  • 組織がドメインによってアイデンティティを制限している場合、ポリシーに Datadog の顧客アイデンティティを許可値として追加する必要があります。Datadog の顧客アイデンティティ: C0147pk0i

  • サービスアカウントの権限委譲とプロジェクトの自動検出は、プロジェクトを監視するために特定のロールと API が有効になっている必要があります。開始する前に、以下の API が監視するプロジェクトで有効になっていることを確認してください。

  • Cloud Resource Manager API

  • Google Cloud Billing API

  • Cloud Monitoring API

  • Compute Engine API

  • Cloud Asset API

  • IAM API

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
  1. ContinueDone の順にクリックすると、サービスアカウントの作成が完了します。
'Create service account' を表示している Google Cloud コンソールのインターフェイス。'Grant this service account access to project' の下に、説明にある 4 つのロールが追加されています。
2. サービスアカウントに Datadog プリンシパルを追加する
  1. Datadog で Integrations > Google Cloud Platform に移動します。
  2. Add GCP Account をクリックします。プロジェクトが構成されていない場合は、自動的にこのページにリダイレクトされます。
  3. 組織の Datadog プリンシパルを生成していない場合は、Generate Principal ボタンをクリックします。
  4. Datadog プリンシパルをコピーして、次のセクションで使用します。
    'Add New GCP Account' フローを表示している Datadog インターフェイス。最初のステップ 'Add Datadog Principal to Google' では、ユーザーが Datadog プリンシパルを生成してクリップボードにコピーするためのテキストボックスがあります。2 番目のステップである 'Add Service Account Email' には、ユーザーがセクション 3 で入力するテキストボックスがあります。
    このウィンドウは次のセクションまで開いておいてください。
  5. Google Cloud コンソールService Acounts メニューから、最初のセクションで作成したサービスアカウントを探します。
  6. Permissions タブに移動し、Grant Access をクリックします。
    Google Cloud コンソールのインターフェイスで、Service Accounts の下に Permissions タブが表示されています。
  7. Datadog プリンシパルを New principals テキストボックスに貼り付けます。
  8. Service Account Token Creator のロールを割り当て、Save をクリックします。
    'Add principals' ボックスと 'Assign roles' インターフェイスが表示されている 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 をクリックします。

約 15 分後、Datadog にメトリクスが表示されます。

4. 他のプロジェクトにロールを割り当てる (オプション)

プロジェクトの自動検出により、監視対象のプロジェクトを追加するプロセスが簡素化されます。サービスアカウントに他のプロジェクト、フォルダ、または組織へのアクセスを許可すると、Datadog はこれらのプロジェクト (およびフォルダや組織にネストされたプロジェクト) を検出し、インテグレーションタイルに自動的に追加します。

  1. 必要なスコープでロールを割り当てるための適切な権限があることを確認します。
  • プロジェクト IAM 管理者 (またはそれ以上)
  • フォルダ管理者
  • 組織管理者
  1. Google Cloud コンソールで、IAM ページに移動します。
  2. プロジェクト、フォルダ、または組織を選択します。
  3. リソース上で他のロールをまだ持っていないプリンシパルにロールを付与するには、Grant Access をクリックし、先ほど作成したサービスアカウントのメールアドレスを入力します。
  4. 以下のロールを割り当てます。
  • Compute Viewer
  • Monitoring Viewer
  • Cloud Asset Viewer : Browser ロールは、サービスアカウントのデフォルトプロジェクトでのみ必要です。
  1. Save をクリックします。

構成

オプションで、プロジェクトのドロップダウンメニューの下にある Limit Metric Collection テキストボックスにタグを入力することで、Datadog に取り込まれる GCE インスタンスを制限することができます。定義されたタグの 1 つに一致するホストのみが Datadog にインポートされます。ワイルドカード (? は 1 文字、* は複数文字) を使って多くのホストに一致させたり、! を使って特定のホストを除外することができます。この例では 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 トピックに公開します 4Datadog テンプレートを使用して Dataflow ジョブを作成し、Pub/Sub サブスクリプションから Datadog にログをストリーミングします

GCE や GKE ログを含め、ログシンクで作成したロギングフィルターを通して、どのログを Datadog に送信するかを完全に制御することができます。フィルターの書き方については Google の Logging のクエリ言語のページを参照してください。

: Google Cloud Dataflow を使用するには、Dataflow API を有効にする必要があります。詳細は Google Cloud ドキュメントの API の有効化を参照してください。

GCE または GKE で実行されているアプリケーションからログを収集するには、Datadog Agent を使用することもできます。

Pub/Sub Push サブスクリプションによる Google Cloud ログの収集は、以下の理由により非推奨になるプロセス中です。

  • Google Cloud VPC がある場合、Push サブスクリプションは VPC 外のエンドポイントにアクセスできない
  • Push サブスクリプションはイベントの圧縮やバッチ処理を提供しないため、非常に少ないログ量にのみ適している

Push サブスクリプションのドキュメントは、トラブルシューティングやレガシーセットアップの変更のためにのみ維持されています。Google Cloud のログを Datadog に転送するには、Datadog Dataflow テンプレートで Pull サブスクリプションを代わりに使用してください。

1. Cloud Pub/Sub トピックとサブスクリプションを作成する

  1. Cloud Pub/Sub コンソールに移動し、新しいトピックを作成します。Add a default subscription オプションを選択し、セットアップを簡素化します。

    : 手動で Cloud Pub/Sub サブスクリプションPull 配信タイプで構成することもできます。手動で Pub/Sub サブスクリプションを作成する場合は、Enable dead lettering ボックスをオフにしたままにしてください。詳細については、サポートされていない Pub/Sub 機能を参照してください。

Google Cloud Console の Create a topic ページで、 Add a default subscription チェックボックスが選択されている
  1. トピックに export-logs-to-datadog のような明示的な名前を付け、Create をクリックします。

  2. Datadog API によって拒否されたログメッセージを処理するために、追加のトピックとデフォルトのサブスクリプションを作成します。このトピックの名前は Datadog Dataflow テンプレート内で outputDeadletterTopic テンプレートパラメーターのパス構成の一部として使用されます。失敗したメッセージの問題を検査して修正したら、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 ログの転送を監視するセクションを参照してください。

2. カスタム Dataflow ワーカーサービスアカウントを作成する

Dataflow パイプラインワーカーは、デフォルトの挙動として、プロジェクトの Compute Engine のデフォルトのサービスアカウントを使用します。これは、プロジェクト内のすべてのリソースに権限を与えるものです。Production 環境からログを転送する場合は、代わりに必要なロールと権限のみでカスタムワーカーサービスアカウントを作成し、このサービスアカウントを 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. オプションの包含または除外フィルターを使用して、シンクに含めるログを選択します。検索クエリでログをフィルタリングするか、sample 関数を使用します。例えば、severity レベルが ERROR のログの 10% だけを含めるには、severity="ERROR" AND sample(insertId, 0.01) の包含フィルターを作成します。

    severity=ERROR and sample(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 と Source of the API key passed フィールドが両方ハイライトされています

その他の利用可能なオプションの使用については、Dataflow テンプレートのテンプレートパラメーターを参照してください。

  • apiKeySource=KMS で、apiKeyKMSEncryptionKeyCloud KMS のキー ID を、apiKey に暗号化された API キーを設定
  • 非推奨: apiKeySource=PLAINTEXT で、apiKey にプレーンテキストの API キーを設定
  1. カスタムワーカーサービスアカウントを作成した場合は、Service account email ドロップダウンでそれを選択します。
Datadog Dataflow テンプレートのオプションパラメーター。サービスアカウントのメールドロップダウンがハイライトされています
  1. RUN JOB をクリックします。

: 共有 VPC がある場合は、Dataflow ドキュメントのネットワークとサブネットワークの指定ページを参照して、NetworkSubnetwork パラメーターの指定のガイドラインを確認してください。

検証

Datadog Log Explorer に Cloud Pub/Sub トピックに配信された新規ログイベントが表示されます。

: 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 主要メトリクスを確認できます。

また、あらかじめ構成されている Recommended Monitor を使用して、パイプラインのバックログ時間の増加に対する通知をセットアップすることもできます。詳細は、Datadog ブログの Datadog による Dataflow パイプラインの監視を参照してください。

リアルユーザーモニタリング

データセキュリティ

メトリクスについては、個別の Google Cloud インテグレーションのページを参照してください。

ヘルプ

Google Cloud Platform によって生成されたすべてのサービスイベントが Datadog のイベントエクスプローラーに転送されます。

ヘルプ

Google Cloud Platform インテグレーションには、サービスのチェック機能は含まれません。

Lambda のトレースされた起動の 1 時間単位使用量の取得

タグは、Google Cloud Platform と Google Compute Engine の様々な構成オプションに基づいて自動的に割り当てられます。project_id タグは、すべてのメトリクスに追加されます。追加のタグは、利用可能な場合に Google Cloud Platform から収集され、メトリクスの種類に応じて異なります。

また、Datadog は以下をタグとして収集します。

  • <キー>:<値> ラベルが付けられたホスト。
  • Custom labels from Google Pub/Sub、GCE、Cloud SQL、Cloud Storage のカスタムラベル

ヘルプ

ユーザー定義の gcp.logging メトリクスに不正なメタデータが適用される

非標準の gcp.logging メトリクス (Datadog に付属するログメトリクス以外のメトリクスなど) に適用されるメタデータが Google Cloud Logging と一致しない場合があります。

このような場合は、メタデータを手動で設定する必要があります。設定するには、メトリクスサマリーページに移動し、問題のメトリクスを検索して選択し、メタデータの横にある鉛筆アイコンをクリックします。

ご不明な点は、Datadog のサポートチームまでお問い合わせください。

その他の参考資料