VMware 用 Google Distributed Cloud(ソフトウェアのみ)では、クラウドベースのマネージド サービス、オープンソース ツール、サードパーティの商用ソリューションとの互換性の検証など、クラスタのロギングとモニタリングに関して複数のオプションが用意されています。このドキュメントでは、これらのオプションについて説明し、環境に適したソリューションを選択するための基本的なガイダンスを示します。
Google Distributed Cloud のオプション
Google Distributed Cloud には、ロギングとモニタリングのオプションがいくつかあります。
- Cloud Logging と Cloud Monitoring
- Google Cloud Managed Service for Prometheus(プレビュー)
- サードパーティ ソリューションによる検証済みの構成。
Cloud Logging と Cloud Monitoring
Google Cloud Observability(旧称 Stackdriver)はGoogle Cloudの組み込みオブザーバビリティ ソリューションです。フルマネージドのロギング ソリューション、指標の収集、モニタリング、ダッシュボード、アラートが提供されます。Cloud Monitoring は、クラウドベースの GKE クラスタと同様の方法で、Google Distributed Cloud クラスタをモニタリングします。
モニタリングとロギングの範囲のほか、収集された指標のレベルに対して、クラスタ内エージェントを構成できます。
- ロギングとモニタリングのスコープは、システム コンポーネントのみ(デフォルト)、またはシステム コンポーネントとアプリケーションに設定できます。
- 収集された指標のレベルは、最適化された指標のセットまたは完全な指標に対して構成できます。
詳細については、このドキュメントの Anthos clusters on VMware のロギング エージェントとモニタリング エージェントの構成をご覧ください。
Cloud Logging と Cloud Monitoring は、簡単に構成でき、強力な単一のクラウドベースのオブザーバビリティ ソリューションを求めているお客様に理想的なソリューションです。Google Distributed Cloud 上のみでのワークロードの実行、または GKE と Google Distributed Cloud 上でのワークロードの実行をする場合に、Logging と Monitoring を強くおすすめします。Google Distributed Cloud と標準のオンプレミス インフラストラクチャで実行されるコンポーネントがあるアプリケーションの場合は、アプリケーションのエンドツーエンドのビューのために、その他のソリューションも検討できます。
アーキテクチャ、構成、Google Distributed Cloud のデフォルトで Google Cloud プロジェクトに複製されるデータの詳細については、Google Distributed Cloud のロギングとモニタリングの仕組みをご覧ください。
Cloud Logging の詳細は、Cloud Logging のドキュメントをご覧ください。
Cloud Monitoring の詳細については、Cloud Monitoring のドキュメントをご覧ください。
サードパーティのソリューション
Google は、サードパーティのロギングおよびモニタリング ソリューション プロバイダと協力して、Google Distributed Cloud とサードパーティの製品が適切に連動するよう支援しています。Datadog、Elastic、Splunk などの製品があります。今後もサードパーティの製品が検証され、追加される予定です。
Google Distributed Cloud でサードパーティ ソリューションを使用する方法については、以下をご覧ください。
- Splunk Connect を使用して Google Distributed Cloud でログを収集する
- Google Cloud Platform での履歴分析、バックアップ、クロスクラウド モニタリングによる Elastic の機能の拡張
Google Distributed Cloud のロギングとモニタリングの仕組み
新しい管理者クラスタまたはユーザー クラスタを作成すると、各クラスタに Logging エージェントと Monitoring エージェントがインストールされ、有効になります。これらのエージェントは、構成可能なスコープであるシステム コンポーネントに関するデータを収集します。
収集したデータを Google Cloud コンソールで表示するには、表示するログと指標を保存する Google Cloud プロジェクトを構成する必要があります。
各クラスタの Logging エージェントと Monitoring エージェントは次のとおりです。
GKE 指標エージェント(
gke-metrics-agent
)。Cloud Monitoring API に指標を送信する DaemonSet。Log Forwarder(
stackdriver-log-forwarder
)。各マシンから Cloud Logging にログを転送する Fluent Bit DeamonSet。Log Forwarder は、ログエントリをノードにローカルでバッファリングして、最大 4 時間再送信します。バッファがいっぱいになるか、Log Forwarder が Cloud Logging API に 4 時間以上アクセスできない場合、ログは削除されます。グローバル GKE 指標エージェント(
gke-metrics-agent-global
)。Cloud Monitoring API に指標を送信する Deployment。Metadata agent(
stackdriver-metadata-agent
)。Pod、Deployment、Node などの Kubernetes リソースのメタデータを Stackdriver Resource Metadata API に送信する Deployment。このデータは、デプロイメント名、ノード名、さらには Kubernetes サービス名でクエリを実行できるようにすることで、指標のクエリを強化するために使用されます。kube-state-metrics。API サーバーをリッスンし、オブジェクトの状態に関する指標を生成する Deployment。
node-exporter。ハードウェアと OS の指標を生成する DaemonSet。
次のコマンドを実行すると、すべての Deployment エージェントを確認できます。
kubectl --kubeconfig CLUSTER_KUBECONFIG get deployments -l "managed-by=stackdriver" --all-namespaces
ここで、CLUSTER_KUBECONFIG はクラスタの kubeconfig ファイルのパスです。
このコマンドの出力は、次のようになります。
gke-metrics-agent-global 1/1 Running 0 4h31m stackdriver-metadata-agent-cluster-level 1/1 Running 0 4h31m
次のコマンドを実行すると、すべての DaemonSet エージェントを確認できます。
kubectl --kubeconfig CLUSTER_KUBECONFIG get daemonsets -l "managed-by=stackdriver" --all-namespaces
このコマンドの出力は、次のようになります。
gke-metrics-agent 1/1 Running 0 4h31m stackdriver-log-forwarder 1/1 Running 0 4h31m
Google Distributed Cloud のロギング エージェントとモニタリング エージェントの構成
Google Distributed Cloud でインストールされたエージェントは、設定と構成に応じ、ククラスタに関する問題の管理とトラブルシューティングを行うために、システム コンポーネントに関するデータを収集します。
システム コンポーネントのみ(デフォルトのスコープ)
インストール時、エージェントは、Google 提供のシステム コンポーネントのログと指標を収集します。これには、パフォーマンス詳細(CPU やメモリの使用率など)や同様のメタデータが含まれます。管理クラスタ内のすべてのワークロード、およびユーザー クラスタでは、コンポーネントに kube-system、gke-system、gke-connect、istio-system、config-management-system Namespace のワークロードが含まれます。次のセクションで説明するように、エージェントを構成することも、無効にすることもできます。
ログと指標を収集するスコープは、アプリケーションが含まれるように拡大することもできます。アプリケーションのロギングとモニタリングを有効にする手順を確認するには、ユーザー アプリケーションの Logging と Monitoring の有効化をご覧ください。
最適化された指標(デフォルト指標)
デフォルトでは、クラスタで実行される指標エージェントは、コンテナ、kubelet、kube-state-metrics の最適化された一連の指標を収集して Google Cloud Observability(旧称 Stackdriver)に報告します。
この最適化された一連の指標を収集するために必要なリソースは少ないため、全体的なパフォーマンスと拡張性を向上させることができます。モニタリング対象のオブジェクトは大量にあるため、コンテナレベルと kube レベルの指標ではこれが特に重要です。
最適化された kube-state-metrics 指標を無効にするには(非推奨)、Stackdriver カスタム リソースの optimizedMetrics
フィールドを false
に設定します。Stackdriver カスタム リソースの変更について詳しくは、Stackdriver コンポーネント リソースの構成をご覧ください。デフォルトで除外されているものを含むすべての Google Distributed Cloud 指標については、GKE Enterprise の指標をご覧ください。
Stackdriver を有効または無効にする
Stackdriver カスタム リソースを有効または無効にすることで、ロギングとモニタリングのエージェントを完全に有効または無効にできます。この機能はプレビュー版です。
ロギング エージェントとモニタリング エージェントを無効にする前に、 Google Cloud サポートの SLA に与える影響の詳細についてのサポートページをご覧ください。
Logging と Monitoring エージェントは、ストレージと保持の構成に応じて、ローカルに保存されたデータを取得します。データはインストール時に指定された Google Cloudプロジェクトに、そのプロジェクトへのデータの書き込みを承認されたサービス アカウントを使用して複製されます。前述のように、これらのエージェントはいつでも無効にできます。
また、ロギングとモニタリング エージェントが Cloud Logging と Cloud Monitoring に送信されたデータを管理、削除することもできます。詳細については、Cloud Monitoring のドキュメントをご覧ください。
Logging と Monitoring の構成要件
Cloud Logging と Cloud Monitoring のデータを表示するには、表示するログと指標を保存する Google Cloud プロジェクトを構成する必要があります。この Google Cloud プロジェクトは、logging-monitoring プロジェクトと呼ばれます。
logging-monitoring プロジェクトで、次の API を有効にします。
logging-monitoring プロジェクトの logging-monitoring サービス アカウントに、次の IAM ロールを付与します。
logging.logWriter
monitoring.metricWriter
stackdriver.resourceMetadata.writer
monitoring.dashboardEditor
opsconfigmonitoring.resourceMetadata.writer
ログタグ
多くの Google Distributed Cloud ログには F
のタグが付いています。
logtag: "F"
このタグは、ログエントリが完了またはフルであることを示します。このタグの詳細については、GitHub の Kubernetes 設計プロポーザルのログ形式をご覧ください。
料金
GKE Enterprise クラスタの場合、コントロール プレーンの指標、キュレートされた Kube 状態指標、cAdvisor / Kubelet の指標、DCGM 指標は無料です。システムログ、コントロール プレーン ログ、ワークロード ログには Cloud Logging の料金が発生します。GKE Enterprise が有効なプロジェクトでクラスタの作成時に登録された Google Cloud 上の GKE クラスタでは、コントロール プレーン ログ、コントロール プレーンの指標、Kube 状態指標、cAdvisor / Kubelet の指標、DCGM 指標がデフォルトで有効になっています。含まれる GKE のログと指標の一覧については、収集されるログと使用可能な指標をご覧ください。
Google Distributed Cloud クラスタでは、GKE Enterprise のシステムログと指標は無料です。これには次のものが含まれます。
- 管理クラスタ内のすべてのコンポーネントのログと指標。
- ユーザー クラスタ内の次の Namespace のコンポーネントのログと指標:
kube-system
、gke-system
、gke-connect
、knative-serving
、istio-system
、monitoring-system
、config-management-system
、gatekeeper-system
、cnrm-system
。
詳細については、Google Cloud Observability の料金をご覧ください。
Cloud Logging の指標のクレジットについては、販売担当者にお問い合わせください。