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 サービスでは、完全なオブザーバビリティの概要を示す際に役立つ指標、ログ、トレースデータなどのオブザーバビリティ データが自動的に生成されます。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、オンプレミス リソースのモニタリング

Blue Medora の BindPlane プロダクトを使用して、Microsoft Azure で実行されているリソース、Monitoring により自動的に含められない AWS リソース、オンプレミスのリソースをモニタリングできます。BindPlane には、さまざまなソースからの指標データを直接取り込むための統合ソリューションが用意されています。BindPlane 統合の詳細については、次のガイドをご覧ください。

Prometheus によるモニタリング

Prometheus は、Kubernetes クラスタで使用される、一般的なオープンソースの時系列モニタリング フレームワークです。Prometheus の統合を使用して、インフラストラクチャとカスタム アプリケーションの指標を Cloud Monitoring に取り込めます。詳細については、次のガイドをご覧ください。

Istio によるモニタリング

Istio オブザーバビリティを使用して、Istio の指標をエクスポートできます。Istio on GKE アドオンを使用して、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] ページでは、次のツールを使用してデータを可視化できます。

  • Monitoring の概要: Google Cloud リソース、アプリ、AWS リソースのグラフを表示する事前定義済みのダッシュボード。これらのダッシュボードのグラフ構成や表示期間は変更できます。
  • カスタム ダッシュボード: 指定したサービスの正常性や、リソースのグループを表示するように作成できる、カスタマイズ可能なダッシュボードです。
  • Metrics Explorer: ワークスペースで収集された指標のカスタムビューを作成できるウェブビューです。Metrics Explorer のグラフを共有することで、リアルタイムのトラブルシューティングとコラボレーションのユースケースをサポートできます。

詳細については、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 へのトレースの取り込み

アプリケーションのインストゥルメンテーション、ストレージ バックエンド、取り込むトレースの可視化および分析レイヤを提供する Cloud Trace は、アプリのレイテンシ分析に役立ちます。Cloud Trace は、特に複雑なマイクロサービス ベースのアーキテクチャを対象とした、アプリのレイテンシ分析に使用できる分散トレース システムです。

Zipkin を使用したトレース

アプリがすでに Zipkin でインストゥルメント化されていて、独自のトレース バックエンドを実行したくない場合、または Cloud Trace の高度な分析ツールにアクセスする場合、Cloud Trace にトレースを取り込むことが可能です。Zipkin プロジェクトにはこの機能があり、Google では公式にサポートしていません。詳細については、Cloud Trace と Zipkin の使用をご覧ください。

OpenTelemetry によるトレース

既存のトレース インストゥルメンテーションがなく、Cloud Trace をトレース分析ツールとして使用する場合は、OpenTelemetry を使用することをおすすめします。Open Telemetry は、多数の言語をサポートするオープンソースのトレースと指標のライブラリです。Cloud Trace で OpenTelemetry を使用する方法について詳しくは、OpenTelemetry のドキュメントをご覧ください。Go の使用例については、トレース エクスポータ パッケージをご覧ください。

クライアント ライブラリによるトレース

Google Cloud、他のクラウド プロバイダ、またはオンプレミスで VM またはコンテナを実行する場合、アプリ インストルメンテーションに Cloud Trace クライアント ライブラリを使用できます。Google は OpenTelemetry を使用するように移行を進めています。分散トレースの使用を開始する場合、このドキュメントで前述したように OpenTelemetry を使用することをおすすめします。

アラートと通知

Google Cloud や外部ツールを使用して、外部システムから取り込まれたデータのアラートと通知を送信できます。

Cloud Monitoring にはアラートと、インシデントとイベント管理を管理するための機能が用意されています。システムをモニタリングするには、Monitoring からのアラートを、入手したツールまたは独自に構築したツールに統合します。

Monitoring の統合を実装するには、次のうちの 1 つまたは複数のオプションを使用します。

  • Cloud Monitoring の組み込みの通知統合を使用して、通知を他のシステムに送信する。
  • 組み込み統合が使用できないシステムの場合は、パートナー ソリューションを使用する
  • webhook とのカスタム統合を作成して、Cloud Monitoring 通知を他のシステムに送信する。

Monitoring からのアラートの送信

ログと取り込んだ指標に基づいて Cloud Monitoring のアラート ポリシーを作成し、メールや SMS などのさまざまなチャネルに通知を送信できます。次のガイドでは、Slack と PagerDuty の実装例について説明します。

アラートの詳細については、アラート ポリシーの詳細をご覧ください。

サードパーティ ソリューションからアラートを送信する

サードパーティ ソリューションを使用して、Cloud Monitoring アラートをシステムに送信できます。例については、次のガイドをご覧ください。

カスタム統合からのアラートの送信

Webhook を使用して、さまざまなサードパーティのモニタリング システムとのカスタム統合を作成できます。カスタム統合を設定すると、Cloud Monitoring は、指定した URL の JSON ペイロードによってアラート通知を配信します。次のガイドは、カスタムの Webhook 統合の例を示しています。

Monitoring からのエラー通知の送信

前述のように Monitoring にデータを取り込むと、外部システム向けに Error Reporting 機能を構成して、アラートをエラーとして記述し、通知をトリガーできます。詳細については、次のガイドをご覧ください。

次のステップ