ロギングとモニタリング

Anthos clusters on VMware(GKE On-Prem)には、クラウドベースのマネージド サービス、オープンソース ツール、サードパーティの商用ソリューションとの検証済みの互換性など、クラスタのロギングとモニタリングのためのオプションが複数用意されています。このドキュメントでは、これらのオプションについて説明し、環境に適したソリューションを選択するための基本的なガイダンスを示します。

Anthos clusters on VMware のオプション

Anthos clusters on VMware には、ロギングとモニタリングのオプションが複数用意されています。

  • Cloud Logging と Cloud Monitoring は、Anthos clusters on VMware でデプロイされたクラスタ内エージェントによって有効化されます。
  • Prometheus と Grafana。デフォルトでは無効になっています。
  • サードパーティ ソリューションによる検証済みの構成。

Cloud Logging と Cloud Monitoring

Google Cloud のオペレーション スイート(旧称 Stackdriver)は、Google Cloud に組み込まれたオブザーバビリティ ソリューションです。フルマネージドのロギング ソリューション、指標の収集、モニタリング、ダッシュボード、アラートが提供されます。Cloud Monitoring は、クラウドベースの GKE クラスタと同様の方法で、Anthos clusters on VMware をモニタリングします。

モニタリングとロギングの範囲のほか、収集された指標のレベルに対して、クラスタ内エージェントを構成できます。

  • ロギングとモニタリングのスコープは、システム コンポーネントのみ(デフォルト)、またはシステム コンポーネントとアプリケーションに設定できます。
  • 収集された指標のレベルは、最適化された指標のセットまたは完全な指標に対して構成できます。

詳細については、このドキュメントの Anthos clusters on VMware の ロギング エージェントと モニタリング エージェントの構成をご覧ください。

Cloud Logging と Cloud Monitoring は、簡単に構成でき、強力な単一のクラウドベースのオブザーバビリティ ソリューションを求めているお客様に理想的なソリューションです。Anthos clusters on VMware 上のみでのワークロードの実行、または GKE と Anthos clusters on VMware 上でのワークロードの実行をする場合は、Logging と Monitoring を強くおすすめします。Anthos clusters on VMware と従来のオンプレミス インフラストラクチャで実行されるコンポーネントがあるアプリケーションの場合は、アプリケーションをエンドツーエンドで確認するための、その他のソリューションの検討をおすすめします。

Prometheus と Grafana

Prometheus と Grafana の 2 つは、次のようなオープンソースのモニタリング製品として広く知られています。

  • Prometheus は、アプリケーションとシステムの指標を収集します。

  • Alertmanager は、いくつかの異なるアラート メカニズムを使用してアラートの送信を行います。

  • Grafana はダッシュボード ツールです。

Prometheus と Grafana は、それぞれの管理クラスタとユーザー クラスタで有効にできます。これらのプロダクトの使用経験があるアプリケーション チームやクラスタ内のアプリケーション指標を保持する運用チームでの使用、あるいはネットワーク接続が失われた場合のトラブルシューティングにおすすめします。

サードパーティのソリューション

Google は、サードパーティのロギングおよびモニタリング ソリューション プロバイダと協力して、Anthos clusters on VMware とサードパーティの製品がうまく連動するように支援しています。これら製品には、Datadog、Elastic、Splunk などがあります。今後もサードパーティの製品が検証され、追加される予定です。

Anthos clusters on VMware でサードパーティ ソリューションを使用する方法については、以下をご覧ください。

Anthos clusters on VMware のロギングとモニタリングの仕組み

新しい管理者クラスタまたはユーザー クラスタを作成すると、各クラスタに Logging エージェントと Monitoring エージェントがインストールされ、有効になります。これらのエージェントは、構成可能なスコープであるシステム コンポーネントに関するデータを収集します。

Google Cloud コンソールに収集したデータを表示するには、表示するログと指標を保存する Cloud プロジェクトを構成する必要があります。

各クラスタの Logging エージェントと Monitoring エージェントは次のとおりです。

  • GKE 指標エージェントgke-metrics-agent)。Cloud Monitoring API に指標を送信する DaemonSet。

  • Log Forwarderstackdriver-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 agentstackdriver-metadata-agent)。Pod、Deployment、Node などの Kubernetes リソースのメタデータを Stackdriver Resource Metadata API に送信する Deployment。このデータは、デプロイメント名、ノード名、さらには Kubernetes サービス名でクエリを実行できるようにすることで、指標のクエリを強化するために使用されます。

次のコマンドを実行すると、すべての 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

Anthos clusters on VMware のロギング エージェントとモニタリング エージェントの構成

エージェントは Anthos clusters on VMware のシステム コンポーネントに関する収集データとともにインストールされ、クラスタに関する問題の管理およびトラブルシューティングをするために設定と構成が行われます。

システム コンポーネントのみ(デフォルトのスコープ)

インストール時、エージェントは、Google 提供のシステム コンポーネントのログと指標を収集します。これには、パフォーマンス詳細(CPU やメモリの使用率など)や同様のメタデータが含まれます。管理クラスタ内のすべてのワークロード、およびユーザー クラスタでは、コンポーネントに kube-system、gke-system、gke-connect、istio-system、config-management-system Namespace のワークロードが含まれます。次のセクションで説明するように、エージェントを構成することも、無効にすることもできます。

ログと指標を収集するスコープは、アプリケーションが含まれるように拡大することもできます。アプリケーションのロギングとモニタリングを有効にする手順を確認するには、ユーザー アプリケーションの Logging と Monitoring の有効化をご覧ください。

最適化された指標(デフォルト指標)

デフォルトでは、クラスタで実行される指標エージェントは、最適化されたコンテナと kubelet の指標セットを収集して Google Cloud のオペレーション スイート(旧称 Stackdriver)に報告します。この最適化された一連の指標を収集するために必要なリソースは少ないため、全体的なパフォーマンスとスケーラビリティを向上させることができます。これは、モニタリングするオブジェクトの数が多いコンテナレベルの指標で特に重要になります。

最適化された指標を無効にするには(非推奨)、Stackdriver カスタム リソースの optimizedMetrics フィールドを false に設定します。Stackdriver カスタム リソースの変更について詳しくは、Stackdriver コンポーネント リソースの構成をご覧ください。デフォルトで除外されているものを含むすべての Anthos clusters on VMware 指標については、Anthos の指標をご覧ください。

Stackdriver を有効または無効にする

Stackdriver カスタム リソースを有効または無効にすることで、ロギングとモニタリングのエージェントを完全に有効または無効にできます。ロギング エージェントとモニタリング エージェントを無効にする前に、Google Cloud サポートの SLA に与える影響の詳細についてのサポートページをご覧ください。

Anthos clusters on VMware の Stackdriver カスタム リソースを無効にするには:

  1. Stackdriver Operator をスケールダウンします。

    kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-system scale deploy stackdriver-operator --replicas=0
    
  2. Stackdriver Operator Pod が終了したことを確認します。

    kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-system get pods -l k8s-app=stackdriver-operator
    
  3. ロギングとモニタリングのパイプライン エージェントを削除します。たとえば、次のコマンドを実行してログフォワーダーを削除します。

    kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-system delete daemonset stackdriver-log-forwarder
    
  4. Stackdriver を再デプロイする準備ができたら、次のコマンドを実行してオペレータのバックアップをスケーリングします。

    kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-system scale deploy stackdriver-operator --replicas=1
    

Logging と Monitoring エージェントは、ストレージと保持の構成に応じて、ローカルに保存されたデータを取得します。データは、そのプロジェクトへのデータの書き込みを承認されたサービス アカウントを使用して、インストール時に指定された Google Cloud プロジェクトに複製されます。前述のように、これらのエージェントはいつでも無効にできます。

また、ロギングとモニタリング エージェントが Cloud Logging と Cloud Monitoring に送信されたデータを管理、削除することもできます。詳細については、Cloud Monitoring のドキュメントをご覧ください。

ロギングとモニタリングの構成要件

クラウド ロギングとクラウド モニタリングのデータを表示するには、表示するログと指標を保存する Google Cloud プロジェクトを構成する必要があります。この Google Cloud プロジェクトは、logging-monitoring プロジェクトと呼ばれます。

  1. logging-monitoring プロジェクトで、次の API を有効にします。

  2. logging-monitoring プロジェクトの logging-monitoring サービス アカウントに、次の IAM ロールを付与します。

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor
    • opsconfigmonitoring.resourceMetadata.writer

料金

Anthos システムのログと指標は無料です。

Anthos clusters on VMware クラスタの場合、Anthos システムのログと指標には次のものがあります。

  • 管理クラスタ内のすべてのコンポーネントのログと指標
  • ユーザー クラスタ内の次の名前空間のコンポーネントのログと指標: kube-systemgke-systemgke-connectknative-servingistio-systemmonitoring-systemconfig-management-systemgatekeeper-systemcnrm-system

詳しくは、Google Cloud のオペレーション スイートの料金をご覧ください。

Cloud Logging の指標のクレジットについては、販売担当者にお問い合わせください

Anthos clusters on VMware の Prometheus および Grafana の仕組み

Anthos clusters on VMware の各クラスタは、デフォルトで Prometheus と Grafana で作成されます。有効にするには、インストール ガイドをご覧ください。

Prometheus サーバーは、個別の 2 つのノードで 2 つのレプリカが実行される高可用性構成に設定されています。リソース要件は、最大 5 つのノードを実行するクラスタをサポートするように調整され、各ノードは最大 30 個のカスタム指標配信用 Pod を処理します。Prometheus には専用の PersistentVolume があり、4 日間の保持期間にさらに安全バッファを見込んだデータ量に合わせてディスク容量が事前に割り当てられています。

管理コントロール プレーンと各ユーザー クラスタには、個別に構成できる専用のモニタリング スタックがあります。管理クラスタとユーザー クラスタにはそれぞれ、モニタリング用の Prometheus Server、オブザーバビリティ用の Grafana、アラート用の Prometheus Alertmanager という一連の機能を持ったモニタリング スタックが含まれています。

すべてのモニタリング エンドポイント、転送された指標データ、モニタリング API は、mTLS ルールと RBAC ルールを使用して Istio コンポーネントで保護されます。モニタリング データへのアクセスはクラスタ管理者のみに制限されます。

Prometheus で収集される指標

Prometheus は、管理コントロール プレーンとユーザー クラスタから次の指標とメタデータを収集します。

  • Pod とノードの CPU 使用率などのリソース使用量。
  • Kubernetes コントロール プレーンの指標。
  • kubelet などのノードで実行されているアドオンや Kubernetes システム コンポーネントからの指標。
  • Deployment 内の Pod の状態など、クラスタの状態。
  • アプリケーション指標。
  • ネットワーク、エントロピー、i ノードなどのマシン指標。

マルチクラスタ モニタリング

管理クラスタにインストールされた Prometheus と Grafana のインスタンスは、管理クラスタと各ユーザー クラスタを含む Anthos clusters on VMware インスタンス全体を分析できるように特別に構成されています。これにより、次のことが可能になります。

  • Grafana ダッシュボードを使用して、すべてのユーザー クラスタと管理クラスタの指標にアクセスする。
  • Grafana ダッシュボードで個々のユーザー クラスタの指標を確認する。指標は詳細な直接クエリで使用できます。
  • 集計クエリ、ダッシュボード、アラートについて、ユーザー クラスタのノードレベルとワークロードの指標にアクセスする(ワークロードの指標は、kube-system Namespace で実行されるワークロードに限定されます)。
  • 特定のクラスタのアラートを構成します。

次のステップ