サービス アカウントのなりすましは、選択した Datadog サイト () ではご利用いただけません。

概要

このガイドを使用して、Google Cloud 環境のモニタリングを始めてください。この方法を使うことで、複数プロジェクトを持つ Google Cloud 環境のセットアップが簡素化され、最大限のモニタリング範囲を確保できます。

Datadog の Google Cloud インテグレーションは、すべての Google Cloud メトリクスを収集します。Datadog では継続的にドキュメントを更新して、依存関係にあるすべてのインテグレーションを表示できるようにしていますが、インテグレーション一覧が最新のクラウド サービスのメトリクスやサービスに追いつかないことがあります。

特定の Google Cloud サービスのインテグレーションが表示されない場合は、Datadog サポートまでご連絡ください。

インテグレーション説明
App Engineスケーラブルなアプリケーションを構築できる PaaS (サービスとしてのプラットフォーム)
BigQuery企業向けデータウェアハウス
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機械学習サービス
Private Service Connectプライベート VPC 接続でマネージドサービスにアクセスする
Pub/Subリアルタイムメッセージングサービス
Spanner水平方向に拡張可能でグローバルな一貫性を持つリレーショナルデータベースサービス
Storage統合型オブジェクトストレージ
Vertex AIカスタムの機械学習 (ML) モデルの構築、トレーニング、デプロイを行います。
VPNマネージド型のネットワーク機能

セットアップ

Datadog の Google Cloud インテグレーションをセットアップして、Google Cloud サービスからメトリクスとログを収集します。

前提条件

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

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

Cloud Monitoring API
Datadog が Google Cloud のメトリクス データを照会できるようにします。
Compute Engine API
Datadog が Compute Engine インスタンスのデータを検出できるようにします。
Cloud Asset API
Datadog が Google Cloud リソースを取得し、関連するラベルをタグとしてメトリクスに関連付けられるようにします。
Cloud Resource Manager API
Datadog がメトリクスに正しいリソースやタグを追加できるようにします。
IAM API
Datadog が Google Cloud で認証を行えるようにします。
Cloud Billing API
開発者が Google Cloud Platform プロジェクトの課金をプログラム上で管理できるようにします。詳細は Cloud Cost Management (CCM) のドキュメントを参照してください。
  1. 監視対象のプロジェクトが、他の複数のプロジェクトからメトリクスを取り込むスコーピング プロジェクトとして構成されていないことを確認してください。

メトリクスの収集

インストール

組織レベルのメトリクスの収集は、 サイトではご利用いただけません。

組織レベル、またはフォルダー レベルでのモニタリングは、組織またはフォルダー内に現在存在するすべてのプロジェクトだけでなく、将来新たに作成される可能性のあるプロジェクトも包括的にカバーするために推奨されます。

: Google Cloud での設定を完了するには、Google Cloud Identity ユーザー アカウントに、希望するスコープで Admin ロールが割り当てられている必要があります (例: Organization Admin)。

  1. Google Cloud コンソールを開きます。
  2. IAM & Admin > Service Accounts に移動します。
  3. 画面上部の Create service account をクリックします。
  4. サービスアカウントに一意の名前を付けます。
  5. Done をクリックしてサービスアカウントの作成を完了します。
  1. Google Cloud コンソールで、IAM ページに移動します。
  2. フォルダまたは組織を選択します。
  3. リソースに対して他のロールをまだ持っていないプリンシパルにロールを付与するには、Grant Access をクリックし、前に作成したサービスアカウントのメールを入力します。
  4. サービスアカウントのメールアドレスを入力します。
  5. 以下のロールを割り当てます。
  1. Save をクリックします。

: Browser ロールはサービス アカウントを作成したデフォルト プロジェクトでのみ必要です。他のプロジェクトでは、上記の他のロールだけを付与すれば問題ありません。

: 以前に共有 Datadog プリンシパルを使ってアクセスを構成していた場合は、これらの手順を完了した後、そのプリンシパルへの権限を取り消すことができます。

  1. Datadog で Integrations > Google Cloud Platform に移動します。
  2. Add Google Cloud Account をクリックします。 プロジェクトが構成されていない場合は、このページへ自動的にリダイレクトされます。
  3. Datadog プリンシパルをコピーして、次のセクションのために保管しておきます。
Datadog の Google Cloud インテグレーションタイルで、新しい Google Cloud アカウントを追加する画面

: このウィンドウはセクション 4 のために開いたままにしてください。

  1. Google Cloud コンソールService Accounts メニューで、セクション 1 で作成したサービス アカウントを探します。
  2. Permissions タブに移動して Grant Access をクリックします。
Google Cloud コンソールインターフェイスで、Service Accounts の下にある Permissions タブを表示しています。
  1. Datadog プリンシパルを New principals テキストボックスに貼り付けます。
  2. Service Account Token Creator ロールを割り当てます。
  3. Save をクリックします。
  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 に表示されます。

複数プロジェクトをモニタリングする際のベストプラクティス

プロジェクト単位のコストおよび API クォータ使用量の帰属を有効化する

デフォルトでは、モニタリング API コールや API クォータの使用量にかかるコストは、この連携用のサービスアカウントを含むプロジェクトに帰属します。複数のプロジェクトを持つ Google Cloud 環境のベストプラクティスとして、モニタリング API コールと API クォータ使用量をプロジェクト単位で帰属させる設定を有効にしてください。これを有効化すると、コストとクォータの使用量はサービスアカウントを含むプロジェクトではなく、問い合わせを受ける側のプロジェクトに帰属するようになります。これにより、各プロジェクトが発生させるモニタリングコストを可視化できるほか、API レートリミットへの到達を防ぎやすくなります。

この機能を有効にするには

  1. Datadog サービス アカウントが、希望するスコープ (フォルダまたは組織) で Service Usage Consumer ロールを持つことを確認します。
  2. Google Cloud integration ページProjects タブで、Enable Per Project Quota トグルをクリックします。

サイトの Datadog Google Cloud インテグレーションは、サービス アカウントを使用して、Google Cloud と Datadog 間の API 接続を作成します。以下の手順に従って、サービス アカウントを作成し、Datadog にサービス アカウントの認証情報を提供すると、Datadog があなたに代わって API 呼び出しを行えるようになります。

サービス アカウントのなりすまし サイトでは利用できません。

: Google Cloud 請求Cloud Monitoring APICompute Engine APICloud Asset API は、監視したいすべてのプロジェクトで有効にしておく必要があります。

  1. Datadog とインテグレーションしたい Google Cloud プロジェクトの Google Cloud 資格情報ページに移動します。

  2. Create credentials (資格情報の作成) をクリックします。

  3. Service account (サービスアカウント) を選択します。

    設定
  4. サービスアカウントに一意の名前とオプションの説明を付けます。

  5. Create and continue (作成して続行) をクリックします。

  6. 以下のロールを追加します。

    • Compute Viewer
    • Monitoring Viewer
    • Cloud Asset Viewer
  7. Done をクリックします。 : Compute Engine と Cloud Asset のロールを選択するには、Service Account Key Admin である必要があります。選択したロールはすべて、Datadog があなたに代わってメトリクス、タグ、イベント、ユーザーラベルを収集できるようにします。

  8. ページの下部で、サービス アカウントを見つけて、先ほど作成したものを選択します。

  9. Add Key -> Create new key (キーを追加 -> 新しいキーを作成) をクリックし、タイプとして JSON を選択します。

  10. Create (作成) をクリックします。JSON キーファイルがコンピュータにダウンロードされます。このファイルは、インストールを完了するために必要ですので、保存場所に注意してください。

  11. Datadog Google Cloud Integration ページに移動します。

  12. Configuration (構成) タブで、Upload Key File (キーファイルのアップロード) を選択して、このプロジェクトを Datadog とインテグレーションします。

  13. オプションで、タグを使用して、このインテグレーションからホストを除外することができます。これに関する詳しい説明は 構成セクションにあります。

    “設定"
  14. Install/Update (インストール/更新) をクリックします。

  15. 複数のプロジェクトを監視する場合は、次の方法のいずれかを使用します。

    • 複数のサービスアカウントを使用する場合は、上のプロセスを繰り返します。
    • 手順 10 でダウンロードした JSON ファイルの project_id を更新して、同じサービスアカウントを使用します。その後、手順 11-14 で説明したように、ファイルを Datadog にアップロードします。

サービスアカウントのなりすましとプロジェクトの自動発見を使用して、Datadog と Google Cloud を統合することができます。

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

  1. Google Cloud コンソールを開きます。
  2. IAM & Admin > Service Accounts に移動します。
  3. 上部の Create service account をクリックします。
  4. サービスアカウントに一意の名前を付け、それから Create and continue をクリックします。
  5. サービスアカウントに以下のロールを追加します。
    • Monitoring Viewer
    • Compute Viewer
    • Cloud Asset Viewer
    • ブラウザ
  6. ContinueDone の順にクリックすると、サービスアカウントの作成が完了します。
Google Cloud コンソールのインターフェイスで、'Create service account' フローを表示しています。'Grant this service account access to project' の下に、説明にある 4 つのロールが追加されています。
  1. Datadog で Integrations > Google Cloud Platform に移動します。

  2. Add GCP Account をクリックします。構成されたプロジェクトがない場合、自動的にこのページにリダイレクトされます。

  3. Datadog プリンシパルを生成していない場合は、Generate Principal ボタンをクリックします。

  4. Datadog プリンシパルをコピーして、次のセクションのために保管しておきます。

    Datadog のインターフェイスで、'Add New GCP Account' フローを表示しています。最初のステップである 'Add Datadog Principal to Google' では、ユーザーが Datadog プリンシパルを生成してクリップボードにコピーするためのテキストボックスが表示されます。2 番目のステップである 'Add Service Account Email’ では、ユーザーがセクション 3 で入力するテキストボックスがあります。

    注: このウィンドウは次のセクションのために開いたままにしてください。

  5. Google Cloud コンソールService Accounts (サービス アカウント) メニューで、最初のセクションで作成したサービス アカウントを探します。

  6. Permissions タブを開き、Grant Access をクリックします。

    Google Cloud コンソールインターフェイスで、Service Accounts の下にある Permissions タブを表示しています。
  7. Datadog プリンシパルを New principals テキストボックスに貼り付けます。

  8. Service Account Token Creator のロールを割り当て、SAVE をクリックします。

    Google Cloud コンソールのインターフェイスで、'Add principals' ボックスと 'Assign roles' インターフェイスを表示しています。

: 以前に 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 にメトリクスが表示されます。

 

検証

メトリクスを確認するには、左のメニューから Metrics > Summary に移動し、gcp で検索してください:

GCP で始まるメトリクスをフィルタリングした Datadog の Metric Summary ページ

設定

オプションで、Datadog で監視する Google Cloud サービスを選択できます。特定の Google サービスに対してメトリクスの収集を設定することで、重要なサービスの可視性を維持しながら、Google Cloud Monitoring API のコストを最適化できます。

Datadog の Google Cloud インテグレーション ページにある Metric Collection タブで、除外するメトリクス ネームスペースの選択を解除します。すべてのメトリクス ネームスペースの収集を無効にすることもできます。

Datadog の Google Cloud インテグレーション ページにある Metric Collection タブ

デフォルトでは、すべての Google Compute Engine (GCE) インスタンスが Datadog のインフラストラクチャー概要に表示されます。Datadog は、GCE ホスト タグと、追加した GCE ラベルをインスタンスに自動的にタグ付けします。

オプションで、タグを使用して Datadog に取り込むインスタンスを制限できます。プロジェクトの Metric Collection タブにある Limit Metric Collection Filters テキスト ボックスにタグを入力します。定義したタグのいずれかに一致するホストのみが Datadog に取り込まれます。ワイルド カード (1 文字の場合は ?、複数文字の場合は *) を使用して多数のホストに一致させることも、! を使用して特定のホストを除外することもできます。以下の例では、c1* のサイズのインスタンスをすべて含みつつ、ステージング ホストは除外しています:

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

詳細については、Google のラベルを使用してリソースを整理するのページを参照してください。

Datadog Agent の活用

Datadog Agent を使用して、インフラストラクチャーから最も高粒度で低遅延なメトリクスを収集できます。GKE を含む任意のホストに Agent をインストールすると、収集可能なトレースログからより深いインサイトを得ることができます。詳細については、クラウド インスタンスに Datadog Agent をインストールするメリットは何ですか?をご覧ください。

ログ収集

Google Cloud DataflowDatadog テンプレートを使用して、Google Cloud サービスからのログを Datadog に転送します。この方法では、Datadog に転送する前にイベントの圧縮とバッチ処理の両方が可能です。

terraform-gcp-datadog-integration モジュールを使って Terraform 経由でこのインフラストラクチャーを管理するか、このセクションの指示に従って次の作業を行ってください。

  1. 設定されたログ シンクからログを受信するために、Pub/Sub トピックプル サブスクリプション を作成する。
  2. カスタム Dataflow ワーカー サービス アカウントを作成し、Dataflow パイプライン ワーカーに最小権限を付与する。
  3. ログ シンクを作成し、Pub/Sub トピックにログを公開する。
  4. Datadog テンプレートを使用して Dataflow ジョブを作成し、Pub/Sub サブスクリプションからログを Datadog にストリーミングする。

GCE や GKE ログを含め、ログ シンクで作成したロギング フィルターを通して、どのログを Datadog に送信するかを完全に制御できます。フィルターの書き方については、Google のロギング クエリ言語ページを参照してください。作成されたアーキテクチャの詳細については、Cloud Architecture Center の Google Cloud から Datadog にログをストリーミングするを参照してください。

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

GCE や GKE 上で稼働するアプリケーションからログを収集する場合は、Datadog Agent を使用することも可能です。

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 では、Secret Manager で有効な Datadog API キーの値でシークレットを作成し、後で Datadog Dataflow テンプレートで使用することを推奨しています。

警告: 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 Admin
roles/dataflow.admin
このサービス アカウントが Dataflow の管理タスクを実行することを許可します。
Dataflow Worker
roles/dataflow.worker
このサービス アカウントが Dataflow ジョブのオペレーションを実行することを許可します。
Pub/Sub Viewer
roles/pubsub.viewer
このサービス アカウントが、Google Cloud ログを含む Pub/Sub サブスクリプションからのメッセージを表示することを許可します。
Pub/Sub Subscriber
roles/pubsub.subscriber
このサービス アカウントが、Google Cloud ログを含む Pub/Sub サブスクリプションからのメッセージを受信することを許可します。
Pub/Sub Publisher
roles/pubsub.publisher
このサービス アカウントが別のサブスクリプションに失敗したメッセージを公開することを許可します。これにより、ログの解析や再送信が可能になります。
Secret Manager Secret Accessor
roles/secretmanager.secretAccessor
このサービス アカウントが Secret Manager で Datadog API キーにアクセスすることを許可します。
Storage Object Admin
roles/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. オプションの包含フィルターまたは除外フィルターを使用して、ログ シンクに含めるログを選択します。検索クエリでログをフィルタリングするか、サンプル関数を使用できます。例えば、severity (重大度) レベルが ERROR のログの 10% のみを含めるには、severity="ERROR" AND sample(insertId, 0.1) の包含フィルターを作成します。

    severity=ERROR および sample(insertId, 0.1) のクエリによる Google Cloud ロギング シンクの包含フィルター
  6. Create Sink をクリックします。

: 異なるシンクを利用して、Google Cloud Logging から同一の Cloud Pub/Sub トピックに対して複数のエクスポートを行うことが可能です。

4. Dataflow ジョブを作成して実行する

  1. Google Cloud コンソールのテンプレートからジョブを作成するページに移動します。

  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. Optional ParametersInclude full Pub/Sub message in the payload にチェックを入れます。

  2. ステップ 1 で言及したように Datadog API キーの値で Secret Manager にシークレットを作成した場合は、シークレットのリソース名Google Cloud Secret Manager ID フィールドに入力します。

Datadog Dataflow テンプレートのオプション パラメーター。Google Cloud Secret Manager ID と Source of the API key passed フィールドが両方ハイライトされています

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

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

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

検証

Cloud Pub/Sub トピックに配信された新しいログ イベントは、Datadog ログ エクスプローラーに表示されます。

: 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 パイプラインの監視を参照してください。

Pub/Sub Push サブスクリプションによる Google Cloud ログの収集非推奨化が進行中です。

Push サブスクリプションに関する上記のドキュメントは、トラブルシューティングやレガシー セットアップの変更のためにのみ維持されています。

代わりに Google Cloud のログを Datadog に転送するには、Dataflow を使う方法の説明に従い、Pull サブスクリプションを Datadog Dataflow テンプレートとともに使用します。

拡張型 BigQuery 監視

プレビューに参加しましょう!

拡張型 BigQuery 監視はプレビュー版です。クエリ パフォーマンスに関するインサイトを得るために、こちらのフォームから登録してください。

Request Access

拡張型 BigQuery 監視により、BigQuery 環境を詳細に可視化できます。

BigQuery ジョブのパフォーマンス監視

BigQuery ジョブのパフォーマンスを監視するには、各 Google Cloud プロジェクトの Datadog サービス アカウントに BigQuery Resource Viewer ロールを付与します。

:

  • セットアップ セクションで説明されているように、Datadog で Google Cloud サービス アカウントの検証を完了しておく必要があります。
  • 拡張型 BigQuery 監視用のログを収集するために、Dataflow をセットアップする必要はありません
  1. Google Cloud コンソールで、IAM ページに移動します。
  2. Grant access をクリックします。
  3. New principals にサービス アカウントのメール アドレスを入力します。
  4. BigQuery Resource Viewer ロールを割り当てます。
  5. SAVE をクリックします。
  6. Datadog の Google Cloud インテグレーション ページで、BigQuery タブをクリックします。
  7. Enable Query Performance トグルをクリックします。

BigQuery データ品質監視

BigQuery データ品質監視は、BigQuery テーブルの品質メトリクス (鮮度や行数・サイズの更新など) を提供します。Data Quality Monitoring ページでテーブルのデータを詳しく調べることができます。

品質メトリクスを収集するには、使用している各 BigQuery テーブルに対して、Datadog サービス アカウントに BigQuery Metadata Viewer ロールを付与します。

: BigQuery Metadata Viewer は、BigQuery のテーブル、データセット、プロジェクト、または組織レベルで適用できます。

  • データセット内の全テーブルのデータ品質監視を行うには、データセット レベルでアクセス権を付与します。
  • プロジェクト内の全データセットのデータ品質監視を行うには、プロジェクト レベルでアクセス権を付与します。
  1. BigQuery に移動します。
  2. エクスプローラーで、目的の BigQuery リソースを検索します。
  3. リソースの横にある 3 つのドット メニューをクリックし、Share -> Manage Permissions をクリックします。
BigQuery データセット リソースの Manage Permissions メニュー
  1. ADD PRINCIPAL をクリックします。
  2. New principals のボックス内に、Google Cloud インテグレーション用に設定した Datadog サービス アカウントを入力します。
  3. BigQuery Metadata Viewer ロールを割り当てます。
  4. SAVE をクリックします。
  5. Datadog の Google Cloud インテグレーションページで、BigQuery タブをクリックします。
  6. Enable Data Quality トグルをクリックします。

BigQuery ジョブ ログの保持期間

Datadog は、data-observability-queries と呼ばれる新しいログ インデックスを設定し、BigQuery ジョブのログを 15 日間インデックス化することを推奨しています。ログを取り込むには、以下のインデックス フィルターを使用します:

service:data-observability @platform:*

コストの見積もりについては、ログ管理の料金ページを参照してください。

Resource changes collection

Join the Preview!

Resource changes collection はプレビュー版です。アクセスをリクエストするには、添付のフォームをご利用ください。

Request Access

Google Cloud インテグレーション ページの Resource Collection タブEnable Resource Collection を選択します。これにより、Google の Cloud Asset Inventory がクラウド リソースの変更を検出したときに、Datadog でリソース イベントを受信できるようになります。

次に、以下の手順に従って、Pub/Sub トピックから Datadog の イベント エクスプローラー に変更イベントを転送します。

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

トピックの作成

  1. Google Cloud Pub/Sub トピック ページで、CREATE TOPIC をクリックします。
  2. トピックにわかりやすい名前をつけます。
  3. デフォルトのサブスクリプションを追加するオプションのチェックを外します
  4. CREATE をクリックします。

サブスクリプションの作成

  1. Google Cloud Pub/Sub サブスクリプション ページで、CREATE SUBSCRIPTION をクリックします。
  2. サブスクリプション名に export-asset-changes-to-datadog と入力します。
  3. 先ほど作成した Cloud Pub/Sub トピックを選択します。
  4. 配信タイプとして Pull を選択します。
  5. CREATE をクリックします。

アクセス権を付与する

この Pub/Sub サブスクリプションから読み取るには、インテグレーション が使用する Google Cloud サービス アカウントに、サブスクリプションに対する pubsub.subscriptions.consume 権限が必要です。これを許可する最小限の権限を持つデフォルトのロールは Pub/Sub subscriber ロールです。このロールを付与するには、以下の手順に従います。

  1. Google Cloud Pub/Sub サブスクリプション ページで、export-asset-changes-to-datadog サブスクリプションをクリックします。
  2. ページ右側の情報パネルで、Permissions タブ をクリックします。情報パネルが表示されない場合は、SHOW INFO PANEL をクリックしてください。
  3. ADD PRINCIPAL をクリックします。
  4. Datadog Google Cloud インテグレーションが使用するサービス アカウントのメール アドレスを入力します。サービス アカウントは、Datadog の Google Cloud インテグレーション ページConfiguration タブの左側に表示されます。

アセットフィードを作成する

Cloud Shell または gcloud CLI で以下のコマンドを実行し、上記で作成した Pub/Sub トピックに変更イベントを送信する Cloud Asset Inventory フィードを作成します。

gcloud asset feeds create <FEED_NAME>
--project=<PROJECT_ID>
--pubsub-topic=projects/<PROJECT_ID>/topics/<TOPIC_NAME>
--asset-names=<ASSET_NAMES>
--asset-types=<ASSET_TYPES>
--content-type=<CONTENT_TYPE>

プレースホルダーの値を下記の要領で更新します。

  • <FEED_NAME>: Cloud Asset Inventory フィードのわかりやすい名前。
  • <PROJECT_ID>: Google Cloud プロジェクト ID。
  • <TOPIC_NAME>: export-asset-changes-to-datadog サブスクリプションにリンクされている Pub/Sub トピックの名前。
  • <ASSET_NAMES>: 変更イベントを受け取るリソースのフル ネームのカンマ区切りリスト。asset-types を指定する場合はオプションです。
  • <ASSET_TYPES>: 変更イベントを受け取るアセット タイプのカンマ区切りリスト。asset-names を指定する場合はオプションです。
  • <CONTENT_TYPE>: 変更イベントを受け取るアセットのコンテンツ タイプ (オプション)。
gcloud asset feeds create <FEED_NAME>
--folder=<FOLDER_ID>
--pubsub-topic=projects/<PROJECT_ID>/topics/<TOPIC_NAME>
--asset-names=<ASSET_NAMES>
--asset-types=<ASSET_TYPES>
--content-type=<CONTENT_TYPE>

プレースホルダーの値を下記の要領で更新します。

  • <FEED_NAME>: Cloud Asset Inventory フィードのわかりやすい名前。
  • <FOLDER_ID>: Google Cloud フォルダー ID.
  • <TOPIC_NAME>: export-asset-changes-to-datadog サブスクリプションにリンクされている Pub/Sub トピックの名前。
  • <ASSET_NAMES>: 変更イベントを受け取るリソースのフルネームのカンマ区切りリスト。asset-types を指定する場合はオプションになります。
  • <ASSET_TYPES>: 変更イベント を受け取るアセットタイプのカンマ区切りリスト。asset-names を指定する場合はオプションになります。
  • <CONTENT_TYPE>: 変更イベントを受け取るアセットのコンテンツタイプ (オプション)。
gcloud asset feeds create <FEED_NAME>
--organization=<ORGANIZATION_ID>
--pubsub-topic=projects/<PROJECT_ID>/topics/<TOPIC_NAME>
--asset-names=<ASSET_NAMES>
--asset-types=<ASSET_TYPES>
--content-type=<CONTENT_TYPE>

プレースホルダーの値を下記の要領で更新します。

  • <FEED_NAME>: Cloud Asset Inventory フィードのわかりやすい名前。
  • <ORGANIZATION_ID>: Google Cloud 組織 ID.
  • <TOPIC_NAME>: export-asset-changes-to-datadog サブスクリプションにリンクされている Pub/Sub トピックの名前。
  • <ASSET_NAMES>: 変更イベントを受け取るリソースのフルネームのカンマ区切りリスト。asset-types を指定する場合はオプションになります。
  • <ASSET_TYPES>: 変更イベント を受け取るアセットタイプのカンマ区切りリスト。asset-names を指定する場合はオプションになります。
  • <CONTENT_TYPE>: 変更イベントを受け取るアセットのコンテンツタイプ (オプション)。

アセットフィードを作成する

以下の Terraform テンプレートをコピーし、必要な引数を代入します。

locals {
  project_id = "<PROJECT_ID>"
}

resource "google_pubsub_topic" "pubsub_topic" {
  project = local.project_id
  name    = "<TOPIC_NAME>"
}

resource "google_pubsub_subscription" "pubsub_subscription" {
  project = local.project_id
  name    = "export-asset-changes-to-datadog"
  topic   = google_pubsub_topic.pubsub_topic.id
}

resource "google_pubsub_subscription_iam_member" "subscriber" {
  project      = local.project_id
  subscription = google_pubsub_subscription.pubsub_subscription.id
  role         = "roles/pubsub.subscriber"
  member       = "serviceAccount:<SERVICE_ACCOUNT_EMAIL>"
}

resource "google_cloud_asset_project_feed" "project_feed" {
  project      = local.project_id
  feed_id      = "<FEED_NAME>"
  content_type = "<CONTENT_TYPE>" # オプション。使用しない場合は削除。

  asset_names = ["<ASSET_NAMES>"] # asset_types を指定する場合はオプション。使用しない場合は削除。
  asset_types = ["<ASSET_TYPES>"] # asset_names を指定する場合はオプション。使用しない場合は削除。

  feed_output_config {
    pubsub_destination {
      topic = google_pubsub_topic.pubsub_topic.id
    }
  }
}

プレースホルダーの値を下記の要領で更新します。

  • <PROJECT_ID>: Google Cloud プロジェクト ID。
  • <TOPIC_NAME>: export-asset-changes-to-datadog サブスクリプションにリンクする Pub/Sub トピックの名前。
  • <SERVICE_ACCOUNT_EMAIL>: Datadog Google Cloud インテグレーションで使用されるサービス アカウントのメール アドレス。
  • <FEED_NAME>: Cloud Asset Inventory フィードのわかりやすい名前。
  • <ASSET_NAMES>: 変更イベントを受け取るリソースのフルネームのカンマ区切りリスト。asset-types を指定する場合はオプションになります。
  • <ASSET_TYPES>: 変更イベント を受け取るアセットタイプのカンマ区切りリスト。asset-names を指定する場合はオプションになります。
  • <CONTENT_TYPE>: 変更イベントを受け取るアセットのコンテンツタイプ (オプション)。
locals {
  project_id = "<PROJECT_ID>"
}

resource "google_pubsub_topic" "pubsub_topic" {
  project = local.project_id
  name    = "<TOPIC_NAME>" 
}

resource "google_pubsub_subscription" "pubsub_subscription" {
  project = local.project_id
  name    = "export-asset-changes-to-datadog"
  topic   = google_pubsub_topic.pubsub_topic.id
}

resource "google_pubsub_subscription_iam_member" "subscriber" {
  project      = local.project_id
  subscription = google_pubsub_subscription.pubsub_subscription.id
  role         = "roles/pubsub.subscriber"
  member       = "serviceAccount:<SERVICE_ACCOUNT_EMAIL>"
}

resource "google_cloud_asset_folder_feed" "folder_feed" {
  billing_project = local.project_id
  folder          = "<FOLDER_ID>"
  feed_id         = "<FEED_NAME>"
  content_type    = "<CONTENT_TYPE>" # オプション。使用しない場合は削除。

  asset_names = ["<ASSET_NAMES>"] # asset_types を指定する場合はオプション。使用しない場合は削除。
  asset_types = ["<ASSET_TYPES>"] # asset_names を指定する場合はオプション。使用しない場合は削除。

  feed_output_config {
    pubsub_destination {
      topic = google_pubsub_topic.pubsub_topic.id
    }
  }
}

プレースホルダーの値を下記の要領で更新します。

  • <PROJECT_ID>: Google Cloud プロジェクト ID。
  • <FOLDER_ID>: このフィードを作成するフォルダーの ID。
  • <TOPIC_NAME>: export-asset-changes-to-datadog サブスクリプションにリンクする Pub/Sub トピックの名前。
  • <SERVICE_ACCOUNT_EMAIL>: Datadog Google Cloud インテグレーションで使用されるサービスアカウントのメールアドレス。
  • <FEED_NAME>: Cloud Asset Inventory フィードのわかりやすい名前。
  • <ASSET_NAMES>: 変更イベントを受け取るリソースのフルネームのカンマ区切りリスト。asset-types を指定する場合はオプションになります。
  • <ASSET_TYPES>: 変更イベント を受け取るアセットタイプのカンマ区切りリスト。asset-names を指定する場合はオプションになります。
  • <CONTENT_TYPE>: 変更イベントを受け取るアセットのコンテンツタイプ (オプション)。
locals {
  project_id = "<PROJECT_ID>"
}

resource "google_pubsub_topic" "pubsub_topic" {
  project = local.project_id
  name    = "<TOPIC_NAME>"
}

resource "google_pubsub_subscription" "pubsub_subscription" {
  project = local.project_id
  name    = "export-asset-changes-to-datadog"
  topic   = google_pubsub_topic.pubsub_topic.id
}

resource "google_pubsub_subscription_iam_member" "subscriber" {
  project      = local.project_id
  subscription = google_pubsub_subscription.pubsub_subscription.id
  role         = "roles/pubsub.subscriber"
  member       = "serviceAccount:<SERVICE_ACCOUNT_EMAIL>"
}

resource "google_cloud_asset_organization_feed" "organization_feed" {
  billing_project = local.project_id
  org_id          = "<ORGANIZATION_ID>"
  feed_id         = "<FEED_NAME>"
  content_type    = "<CONTENT_TYPE>" # オプション。使用しない場合は削除。

  asset_names = ["<ASSET_NAMES>"] # asset_types を指定する場合はオプション。使用しない場合は削除。
  asset_types = ["<ASSET_TYPES>"] # asset_names を指定する場合はオプション。使用しない場合は削除。

  feed_output_config {
    pubsub_destination {
      topic = google_pubsub_topic.pubsub_topic.id
    }
  }
}

プレースホルダーの値を下記の要領で更新します。

  • <PROJECT_ID>: Google Cloud プロジェクト ID。
  • <TOPIC_NAME>: export-asset-changes-to-datadog サブスクリプションにリンクする Pub/Sub トピックの名前。
  • <SERVICE_ACCOUNT_EMAIL>: Datadog Google Cloud インテグレーションで使用されるサービスアカウントのメールアドレス。
  • <ORGANIZATION_ID>: Google Cloud 組織 ID.
  • <FEED_NAME>: Cloud Asset Inventory フィードのわかりやすい名前。
  • <ASSET_NAMES>: 変更イベントを受け取るリソースのフルネームのカンマ区切りリスト。asset-types を指定する場合はオプションになります。
  • <ASSET_TYPES>: 変更イベント を受け取るアセットタイプのカンマ区切りリスト。asset-names を指定する場合はオプションになります。
  • <CONTENT_TYPE>: 変更イベントを受け取るアセットのコンテンツタイプ (オプション)。

Datadog では、すべてのリソースの変更を収集するために、asset-typesパラメーターを正規表現の .* に設定することを推奨しています。

: asset-names または asset-types パラメーターには、少なくとも 1 つの値を指定する必要があります。

設定可能なパラメーターの一覧については、gcloud asset feeds create のリファレンスを参照してください。

リソース変更の収集を有効にする

Google Cloud インテグレーション ページの Resource Collection タブで、Enable Resource Changes Collection をクリックします。

Datadog の Google Cloud インテグレーション タイルにある Enable Resource Changes Collection トグル

検証

Datadog イベント エクスプローラーでアセット変更イベントを見つけます。

Private Service Connect

Private Service Connect は US5 と EU の Datadog サイトでのみ使用できます。

Google Cloud Private Service Connect インテグレーションを利用すると、Private Service Connect を通じた接続状況、転送されたデータ、ドロップされたパケットを可視化できます。これにより、プロデューサーとコンシューマーの両方について、Private Service Connect 接続から得られる重要なメトリクスを把握できます。 Private Service Connect (PSC) は Google Cloud のネットワーキング製品で、Google Cloud サービスサード パーティ パートナーのサービス、および自社アプリケーションに対し、Virtual Private Cloud (VPC) から直接アクセスすることを可能にします。

詳細については、Datadog ブログの Datadog にプライベートにアクセスし、Google Cloud Private Service Connect の使用状況をモニタリングするを参照してください。

収集データ

メトリクス

メトリクスについては、個別の 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 のイベント エクスプローラーに転送されます。

サービス チェック

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

タグ

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

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

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

トラブルシューティング

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

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

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

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

参考資料

役立つドキュメント、リンク、記事: