GKE on VMware には、クラウドベースのマネージド サービス、オープンソース ツール、サードパーティの商用ソリューションとの検証済みの互換性など、クラスタのロギングとモニタリングのオプションが複数あります。このドキュメントでは、これらのオプションについて説明し、環境に適したソリューションを選択するための基本的なガイダンスを示します。
GKE on VMware のオプション
GKE on VMware のロギングとモニタリングには、いくつかのオプションがあります。
- Cloud Logging と Cloud Monitoring
- Google Cloud Managed Service for Prometheus(プレビュー)
- サードパーティ ソリューションによる検証済みの構成。
Cloud Logging と Cloud Monitoring
Google Cloud Observability(旧称 Stackdriver)は、Google Cloud の組み込みオブザーバビリティ ソリューションです。フルマネージドのロギング ソリューション、指標の収集、モニタリング、ダッシュボード、アラートが提供されます。Cloud Monitoring は、クラウドベースの GKE クラスタと同様の方法で、GKE on VMware クラスタをモニタリングします。
モニタリングとロギングの範囲のほか、収集された指標のレベルに対して、クラスタ内エージェントを構成できます。
- ロギングとモニタリングのスコープは、システム コンポーネントのみ(デフォルト)、またはシステム コンポーネントとアプリケーションに設定できます。
- 収集された指標のレベルは、最適化された指標のセットまたは完全な指標に対して構成できます。
詳細については、このドキュメントの Anthos clusters on VMware の ロギング エージェントと モニタリング エージェントの構成をご覧ください。
Cloud Logging と Cloud Monitoring は、簡単に構成でき、強力な単一のクラウドベースのオブザーバビリティ ソリューションを求めているお客様に理想的なソリューションです。GKE on VMware 上のみでのワークロードの実行、または GKE と GKE on VMware 上でのワークロードの実行をする場合に、Logging と Monitoring を強くおすすめします。GKE on VMware と従来のオンプレミス インフラストラクチャで実行されるコンポーネントがあるアプリケーションの場合は、アプリケーションのエンドツーエンドのビューのために、その他のソリューションも検討できます。
GKE on VMware のアーキテクチャ、構成、デフォルトで Google Cloud プロジェクトにレプリケーションされるデータの詳細については、GKE on VMware 向けの Logging と Monitoring の仕組みをご覧ください。
Cloud Logging の詳細は、Cloud Logging のドキュメントをご覧ください。
Cloud Monitoring の詳細については、Cloud Monitoring のドキュメントをご覧ください。
サードパーティのソリューション
Google は、サードパーティのロギングおよびモニタリング ソリューション プロバイダと協力して、GKE on VMware とサードパーティの製品がうまく連動するように支援しています。これら製品には、Datadog、Elastic、Splunk などがあります。今後もサードパーティの製品が検証され、追加される予定です。
GKE on VMware でサードパーティ ソリューションを使用する方法については、以下をご覧ください。
- Splunk Connect による GKE on VMware のログ収集
- Google Cloud Platform での履歴分析、バックアップ、クロスクラウド モニタリングによる Elastic の機能の拡張
GKE on VMware 向けの Logging と Monitoring の仕組み
新しい管理者クラスタまたはユーザー クラスタを作成すると、各クラスタに Logging エージェントと Monitoring エージェントがインストールされ、有効になります。これらのエージェントは、構成可能なスコープであるシステム コンポーネントに関するデータを収集します。
Google Cloud コンソールに収集したデータを表示するには、表示するログと指標を保存する 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
GKE on VMware のロギング エージェントとモニタリング エージェントの構成
GKE on VMware でインストールされたエージェントは、クラスタの保守と問題のトラブルシューティングを目的として、お客様の設定と構成に沿ってシステムコンポーネントに関するデータを収集します。
システム コンポーネントのみ(デフォルトのスコープ)
インストール時、エージェントは、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 コンポーネント リソースの構成をご覧ください。デフォルトで除外されているものを含むすべての GKE on VMware 指標については、GKE Enterprise の指標をご覧ください。
Stackdriver を有効または無効にする
Stackdriver カスタム リソースを有効または無効にすることで、ロギングとモニタリングのエージェントを完全に有効または無効にできます。この機能はプレビュー中です。
ロギング エージェントとモニタリング エージェントを無効にする前に、Google Cloud サポートの SLA に与える影響の詳細についてのサポートページをご覧ください。
Logging と Monitoring エージェントは、ストレージと保持の構成に応じて、ローカルに保存されたデータを取得します。データは、そのプロジェクトへのデータの書き込みを承認されたサービス アカウントを使用して、インストール時に指定された Google Cloud プロジェクトに複製されます。前述のように、これらのエージェントはいつでも無効にできます。
また、ロギングとモニタリング エージェントが Cloud Logging と Cloud Monitoring に送信されたデータを管理、削除することもできます。詳細については、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
料金
GKE Enterprise のシステムログと指標は無料です。コントロール プレーン ログ、コントロール プレーンの指標、Kube 状態指標のキュレートされたサブセットは、GKE Enterprise が有効なプロジェクトでクラスタ作成時に登録された Google Cloud 上の GKE クラスタに対してデフォルトで有効になっています。コントロール プレーン ログには Cloud Logging の料金が発生しますが、デフォルトで有効な指標は追加料金なしでご利用いただけます。
含まれる GKE のログと指標の一覧については、使用可能なログと使用可能な指標をご覧ください。
GKE on VMware クラスタでは、GKE Enterprise のシステムログと指標には次のものが含まれます。
- 管理クラスタ内のすべてのコンポーネントのログと指標
- ユーザー クラスタ内の次の名前空間のコンポーネントのログと指標:
kube-system
、gke-system
、gke-connect
、knative-serving
、istio-system
、monitoring-system
、config-management-system
、gatekeeper-system
、cnrm-system
詳細については、Google Cloud Observability の料金をご覧ください。
Cloud Logging の指標のクレジットについては、販売担当者にお問い合わせください。