ハイブリッド クラウドとマルチクラウドのモニタリングおよびロギング パターン

Last reviewed 2023-03-29 UTC

このドキュメントでは、ハイブリッド クラウドとマルチクラウドのデプロイのモニタリングおよびロギング アーキテクチャと、Google Cloud を使用してそれらを実装するためのベスト プラクティスについて説明します。このドキュメントを使用することにより、ご自身の環境に適したパターンとプロダクトを知ることができます。

ハイブリッド クラウドやマルチクラウドのアーキテクチャを設定するにあたり、要件および制約の元となるアプリケーション ワークロードは、企業ごとに異なります。これらの制約や要件を満たすようにアーキテクチャを設計し、調整する必要がありますが、適用できるパターンとして、いくつか一般的なものに整理できます。

このドキュメントで扱うパターンは、次の 2 つのカテゴリに分類されます。

  • 「一括表示」アーキテクチャでは、モニタリングとロギングがすべて一元化され、単一のアクセス ポイントと管理機能が提供されます。
  • 「アプリケーションと運用の分離」アーキテクチャでは、機密データに対するコンプライアンス要件を満たすように、機密性の高いアプリケーション データは、機密性の低い運用データから分離されます。

アーキテクチャ パターンの選択

次の図のディシジョン ツリーを使用して、ユースケースに最適なアーキテクチャを決定できます。

モニタリングおよびロギング アーキテクチャを選択するためのディシジョン ツリー。

各アーキテクチャの詳細はこのドキュメントで説明しますが、大まかな選択肢として次のものがあります。

  • Monitoring からレガシー ソリューションにエクスポートする。
  • レガシー ソリューションに直接エクスポートする。
  • Prometheus と Fluentd または Fluent Bit で Monitoring を使用する。
  • observIQ BindPlane で Monitoring を使用する。

一括表示アーキテクチャ

ハイブリッド システムの共通目標は、複数のアプリケーションや複数の環境にある各ソースからのモニタリング情報とロギング情報を 1 か所に集めて一元的に表示することです。このような表示形式を「一括表示」といいます。

次の図は、このパターンを示しています。オンプレミスとクラウドの両方のアプリケーションからのモニタリング データとロギングデータが、クラウドでホストされる 1 つのリポジトリに一元化されています。

モニタリングとロギングのアーキテクチャの概要

このアーキテクチャには、次のメリットがあります。

  • すべてのモニタリングとロギングについて 1 つの一貫したビューが表示されます。
  • データの保存と保持を 1 つの場所で管理できます。
  • 一元化されたアクセス制御と監査を行えます。ただし、中央リポジトリに転送されるデータのセキュリティを確保する必要があります。

一括表示先としての Monitoring

Cloud Monitoring は、サービス、コンテナ、アプリケーション、インフラストラクチャ用の Google 管理のモニタリングおよび管理ソリューションです。Google Cloud Observability を使用すると、指標、ログ、トレース、イベントを一元管理し、堅牢なストレージ ソリューションを実現できます。このスイートは、ダッシュボード、レポート作成、アラート通知などのオブザーバビリティ ツールの完全なスイートも提供します。

Google Cloud プロダクトとサービスは、すべて Monitoring との統合をサポートしています。さらに、Monitoring をハイブリッド リソースとオンプレミス リソースに拡張するために使用できる統合ツールがいくつかあります。

次のベスト プラクティスは、Monitoring を一括表示先として使用するすべてのアーキテクチャに適用されます。

observIQ による Monitoring と BindPlane を使用したハイブリッド モニタリングとロギング

Google のパートナーである observIQ の BindPlane を使用すると、オンプレミス VM とアマゾン ウェブ サービス(AWS)、Microsoft Azure、Alibaba Cloud、IBM Cloud を Google Cloud などの他のクラウド プロバイダの両方からモニタリング データとロギングデータをインポートできます。次の図は、Monitoring と BindPlane によってハイブリッド クラウドの一括表示が実現される仕組みを示しています。

BindPlane と Monitoring によるモニタリングとロギングのためのアーキテクチャの概要。

このアーキテクチャには、次のメリットがあります。

このパターンの実装の詳細については、BindPlane を使用したオンプレミス リソースのロギングとモニタリングをご覧ください。

Prometheus と Monitoring を使用したハイブリッド Google Kubernetes Engine モニタリング

Google Cloud によって完全に管理されている一般的なオープンソース モニタリング ソリューションである Google Cloud Managed Service for Prometheus を使用して、複数の Kubernetes クラスタで実行されるアプリケーションを Monitoring でモニタリングできます。このアーキテクチャは、統合された 1 つのインターフェースを利用できるため、Google Cloud 上の Google Kubernetes Engine(GKE)とオンプレミス データセンターの VMware 上の GKE に分散されている Kubernetes ワークロードを実行する場合に便利です。次の図は、データ収集に Prometheus と Monitoring のコレクタを使用する方法を示しています。

Prometheus と Monitoring を使用した GKE モニタリングのアーキテクチャの概要。

このアーキテクチャには、次のメリットがあります。

  • クラウド環境とオンプレミス環境の両方で一貫した Kubernetes 指標を利用できます。
  • Prometheus を大規模に手動で管理、運用することなく、Prometheus を使用することでワークロードをモニタリングし、アラートを送信できるようになります。
  • Prometheus の使用にあたり、追加のライセンス費用は発生しません。Prometheus の指標が Monitoring にインポートされます。インポートは課金対象であり、取り込まれたサンプル数に応じて課金されます。

このアーキテクチャには、次のデメリットがあります。

  • Prometheus はモニタリングのみをサポートしているため、ロギングは別途構成する必要があります。次のセクションでは、Fluentd または Fluent Bit を使用したロギングの一般的なオプションについて説明します。

次のベスト プラクティスをおすすめします。

  • Prometheus はデフォルトで公開されたすべての指標を収集します。各指標が、課金対象の指標になります。予期しない費用を回避するには、Monitoring の費用管理の実装を検討してください。

Fluentd または Fluent Bit と Cloud Logging を使用したハイブリッド GKE のロギング

Fluentd または一般的なオープンソース ロギング エージェントである Fluent ビットと Cloud Logging を使用すると、複数の GKE クラスタで実行されているアプリケーションから Cloud Logging にログを取り込むことができます。このアーキテクチャは、統合された 1 つのインターフェースを利用できるため、Google Cloud 上の GKE とオンプレミス データセンターの VMware 上の GKE に分散されている Kubernetes ワークロードを実行する場合に便利です。次の図は、ログのフローを示しています。

Fluentd または Fluent Bit、Monitoring、Logging を使用した GKE モニタリングのアーキテクチャの概要。

このアーキテクチャには、次のメリットがあります。

  • クラウド環境とオンプレミス環境の両方で一貫した Kubernetes ロギングを使用できます。
  • Logging をカスタマイズして、機密情報を除外できます。
  • Fluentd または Fluent Bit の使用にあたり、追加のライセンス費用は発生しません。Fluentd または Fluent Bit を使用して Logging にインポートされたログは、課金対象です。

このアーキテクチャには、次のデメリットがあります。

このパターンの実装の詳細については、Fluentd を使用した Google Kubernetes Engine 用の Logging ログのカスタマイズまたは Fluent Bit を使用した Google Kubernetes Engine 用の Logging ログをカスタマイズするをご覧ください。

一括表示に対応したパートナー サービス

すでに Datadog や Splunk などのサードパーティのモニタリング サービスやロギング サービスを使用している場合は、Logging への移行はおすすめしません。その場合、Google Cloud から多くの一般的モニタリングおよびロギング サービスにデータをエクスポートできます。統合されたモニタリング サービスおよびロギング サービスと、ニーズに合った個別のモニタリングおよびロギング サービスのいずれを使用するかを選択できます。

Logging からパートナー サービスへのエクスポート

このパターンでは、Datadog などのパートナーのモニタリング サービスが Cloud Monitoring API に接続することを承認します。この承認により、サービスは Logging で利用可能な指標をすべて取り込むことができるため、Datadog はモニタリング用の一括表示先として機能します。

データのロギングのために、Logging では Pub/Sub へのエクスポート(ログシンク)が利用できます。このようにエクスポートすると、パートナー ロギング サービス(ElasticSplunk など)が Logging から大量のログをリアルタイムで取り込むためのパフォーマンスと復元性を確保できます。これらのパートナー サービスはログ用の一括表示を提供します。

次の図に、ロギングとモニタリングの複合アーキテクチャを示します。

モニタリングとロギングのデータをパートナー サービスにエクスポートするためのアーキテクチャの概要。

このアーキテクチャには、次のメリットがあります。

  • 使い慣れた既存のツールを引き続き使用できます。
  • Google Cloud サポートは、Logging ログを使用したトラブル シューティングに引き続き対応します。

このアーキテクチャには、次のデメリットがあります。

  • 通常、パートナー ソリューションは外部でホストされます。つまり、ネットワーク接続が中断された場合、パートナー ソリューションを利用できない、またはパートナー ソリューションがデータを収集できない状況が発生します。セルフホスティングによってこのリスクを回避できる場合もありますが、ソリューションのインフラストラクチャを自分で維持する必要があります。
  • 外部でホストされるダッシュボードは、Google Cloud サポートでは直接利用できません。これにより、トラブルシューティングとその解決が遅れる可能性があります。
  • 商用パートナー ソリューションには、高額なライセンス料が必要になる場合があります。

統合の具体例のうち、次のものがあります。

Grafana を使用して Prometheus と Logging の指標を分析する

Grafana は、指標の収集のために、一般に Prometheus と組み合わされている人気のあるオープンソース モニタリング ツールです。このアーキテクチャでは、Prometheus をオンプレミスの収集レイヤとして使用し、Grafana を Google Cloud とオンプレミス リソースの両方を表示する一括表示先として使用します。次の図は、Google Cloud とオンプレミスの指標を分析するサンプル アーキテクチャを示しています。

一括表示先である Grafana を使用してモニタリングするためのアーキテクチャの概要。

このアーキテクチャには、次のメリットがあります。

  • VM とコンテナの両方があるハイブリッド環境に適しています。
  • 組織ですでに Prometheus と Grafana を使用している場合、ユーザーは引き続き Prometheus と Grafana を使用できます。

このアーキテクチャには、次のデメリットがあります。

  • Prometheus はモニタリングのみをサポートしているため、FluentdGrafana 用 Cloud Logging プラグインなどを使用して、ロギングを個別に構成する必要があります。
  • Prometheus はオープンソースで拡張可能ですが、サポート対象のエンタープライズ ソフトウェア統合は限られています。
  • Prometheus と Grafana はサードパーティのツールであり、Google のプロダクトではありません。Google は、Prometheus または Grafana をサポートしていません。

詳細については、Grafana 用 Cloud Logging プラグインを使用したトラブルシューティングの改善をご覧ください。

Fluentd を使用したログのエクスポート

Fluentd または Fluent Bit を Logging のログコレクタとして使用する方法については、前述のパターンで説明しました。Fluentd または Fluent Bit をサポートする他のロギング システムまたはデータ分析システム(BigQuery、Elastic、Splunk など)にもこれと同じ基本アーキテクチャを使用できます。次の図は、このパターンを示しています。

Fluentd または Fluent Bit からログを直接エクスポートするアーキテクチャの概要。

このアーキテクチャには、次のメリットがあります。

  • VM とコンテナの両方があるハイブリッド環境に適しています。
  • Fluentd はシステムログなどの多くのデータソースからデータを読み込むことができます。
  • Fluentd は、多くの一般的なサードパーティのロギングおよびデータ分析システム用の出力プラグインを提供しています。
  • Fluent Bit は、システムログなどのさまざまな入力を読み取ることもできます。
  • Fluent Bit は、多くの一般的なサードパーティのロギング システムおよびデータ分析システムの出力を提供しています。

このアーキテクチャには、次のデメリットがあります。

  • Fluentd と Fluent Bit はログのみをサポートしているため、モニタリングは別途構成する必要があります。前のセクションでは、Prometheus と Grafana を使用したモニタリングの一般的なオプションについて説明しました。
  • Fluentd と Fluent Bit はサードパーティのツールであり、Google の公式プロダクトではありません。Google はこれらをサポートしていません。
  • Google Cloud サポートは、エクスポートされたログを使用したトラブルシューティングに対応していません。特に、Google はロギングが有効になっていない GKE on VMware クラスタのサポートを提供していません。

アプリケーション データと運用データの分離

一括表示アーキテクチャを利用するには、アプリケーションのモニタリング データとロギングデータをクラウドにストリーミングする必要があります。ただし、規制またはコンプライアンスの要件により、顧客データをオンプレミスに保持しなければならない、あるいはパブリック クラウドに保存できるデータに厳しい制約を受ける場合があります。

これらのハイブリッド環境は機密性の高いアプリケーション データを低リスクの運用データから分離するため、次の図に示すように、有用なパターンです。

アプリケーション データと運用データを分離するためのアーキテクチャの概要。

GKE Enterprise を使用したアプリケーション データとシステムデータの分離

GKE Enterprise スイートの一部である GKE Enterprise on VMware には、オンプレミス クラスタをモニタリングするための Grafana が含まれています。さらに、ロギング用に Elastic Stack や Splunk などのパートナー ソリューションをインストールすることもできます。これらのソリューションを使用すると、システムデータを Google Cloud の Logging にエクスポートし、機密性の高いアプリケーション データを完全にオンプレミスで取り込んで表示できます。次の図は、このアーキテクチャを表しています。

GKE Enterprise を使用したアプリケーション データとシステムデータの分離。

このアーキテクチャには、次のメリットがあります。

  • 機密性の高いアプリケーション データは完全にオンプレミスで保持されます。
  • オンプレミスのモニタリングとロギングにはクラウドの依存関係がなく、ネットワーク接続が中断されても引き続き使用できます。
  • オンプレミスと Google Cloud の両方の GKE システムデータは、すべて Logging に一元化され、必要に応じて Google Cloud サポートも利用できます。

パートナー ソリューションとして Elastic Stack を使用した実装例については、Elastic Stack を使用した GKE Enterprise のモニタリングをご覧ください。

次のステップ