ロギングとモニタリングを構成する

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

ベアメタル版 Anthos クラスタのオプション

ベアメタル版 Anthos クラスタには、ロギングとモニタリングのオプションがいくつかあります。

  • Cloud Logging と Cloud Monitoring。ベアメタル システム コンポーネントでデフォルトで有効になっています。
  • Prometheus と Grafana は Cloud Marketplace から入手できます。
  • サードパーティ ソリューションによる検証済みの構成。

Cloud Logging と Cloud Monitoring

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

エージェントは、Logging と Monitoring を次の 2 つの異なるレベルで構成できます。

  • システム コンポーネントのみ(デフォルト)。
  • システム コンポーネントとアプリケーション

ロギングとモニタリングは、単一で簡単に構成できる強力なクラウドベースのオブザーバビリティ ソリューションを必要としている場合に理想的なソリューションです。ベアメタル版 Anthos クラスタでのみワークロードを実行する場合は、または GKE とベアメタル版 Anthos でワークロードを実行する場合には、Logging と Monitoring の使用を強くおすすめします。ベアメタル版 Anthos クラスタと従来のオンプレミス インフラストラクチャで実行されるコンポーネントがあるアプリケーションの場合は、アプリケーションのエンドツーエンドのビューのために、その他のソリューションも検討できます。

Prometheus と Grafana

Prometheus と Grafana は、Cloud Marketplace で入手可能な人気の高いオープンソース モニタリング サービスです。

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

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

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

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

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

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

ベアメタル版 Anthos クラスタでサードパーティのソリューションを使用する場合は、次のソリューション ガイドをご覧ください。

ベアメタル版 Anthos クラスタのロギングとモニタリングの仕組み

Cloud Logging と Cloud Monitoring は、新しい管理クラスタまたはユーザー クラスタの作成時に、各クラスタにインストールされ、起動されます。

Stackdriver エージェントには、クラスタごとに次のコンポーネントが含まれています。

  • Stackdriver Operatorstackdriver-operator-*)。クラスタにデプロイされた他のすべての Stackdriver エージェントのライフサイクルを管理します。

  • Stackdriver のカスタム リソース。 ベアメタル版 Anthos クラスタ インストール プロセスで自動的に作成されるリソース。

  • Stackdriver Log Forwarderstackdriver-log-forwarder-*)。各マシンから Cloud Logging にログを転送する Fluent Bit DeamonSet。Log Forwarder は、ログエントリをローカルにバッファリングして、最大 4 時間再送信します。バッファがいっぱいになるか、Log Forwarder が Cloud Logging API に 4 時間以上アクセスできない場合、ログは削除されます。

  • Stackdriver Metadata Collectorstackdriver-metadata-agent-)。Pod、Deployment、Node などの Kubernetes リソースのメタデータを Stackdriver Resource Metadata API に送信する Deployment。このデータを使用して指標のクエリを改善するには、デプロイメント名、ノード名、さらには Kubernetes サービス名でもクエリを実行できるようにします。

次のコマンドを実行すると、Stackdriver でインストールされたすべてのエージェントを確認できます。

  kubectl -n kube-system get pods | grep stackdriver

このコマンドの出力は、次のようになります。

stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m

Cloud Monitoring の指標

Cloud Monitoring で収集される指標のリストについては、Anthos On-prem とベアメタル版 Anthos の指標をご覧ください。

ベアメタル版 Anthos クラスタ用の Stackdriver エージェントの構成

ベアメタル版 Anthos クラスタとともにインストールされた Stackdriver エージェントは、設定や構成に応じてシステム コンポーネントに関するデータを収集します。これは、次のいずれかのモードにおける、ベアメタル クラスタ版 Anthos クラスタに関する問題の保守とトラブルシューティングを目的としています。

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

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

Stackdriver の無効化

Stackdriver エージェントを完全に無効にするには、Stackdriver カスタム リソースを削除します。

Stackdriver を無効にする前に、Google Cloud サポートの SLA に与える影響の詳細についてのサポートページをご覧ください。

ベアメタル版 Anthos クラスタの Stackdriver を無効にするには:

kubectl -n kube-system delete stackdrivers stackdriver

Stackdriver エージェントは、ストレージと保持の構成に応じて、ローカルに保存されたデータを取得します。データは、そのプロジェクトへのデータの書き込みを承認されたサービス アカウントを使用して、インストール時に指定された Google Cloud プロジェクトに複製されます。前述のように、Stackdriver エージェントはいつでも無効にできます。Cloud Monitoring のドキュメントで説明されているように、Stackdriver エージェントによって収集されたデータは、他の指標やログデータと同様に管理および削除できます。

Stackdriver コンポーネントのデフォルトの CPU およびメモリのリクエストと上限をオーバーライドする

Pod 密度が高いクラスタでは、ロギングとモニタリングのオーバーヘッドが増加します。極端な場合、Stackdriver コンポーネントにより、CPU とメモリの使用率が上限に近いことが報告されるか、リソースの上限が原因の再起動が繰り返し発生することがあります。この場合、リクエストと上限のオーバーライドを設定できます。

Metrics Server

Metrics Server は、さまざまな自動スケーリング パイプラインに対するコンテナ リソース指標のソースです。Metrics Server は、kubelets から指標を取得し、Kubernetes Metrics API を介して公開します。これらの指標は、HPA と VPA により自動スケーリング開始の判断に使われます。Metrics Server は、アドオンリサイザーを使用してスケーリングされます。

Pod 密度の高さが原因で、ロギングとモニタリングのオーバーヘッドが大きくなりすぎている場合は、リソースの上限により Metrics Server が停止、再起動されることがあります。この場合、リクエストと上限をオーバーライドできます。

Logging と Monitoring の構成要件

ベアメタル版 Anthos クラスタを使用して Cloud Logging と Cloud Monitoring を有効にするための構成要件がいくつかあります。これらの手順は、Google サービスの有効化ページのLogging と Monitoring で使用するサービス アカウントの構成と、次のリストに含まれています。

  1. Cloud Monitoring Workspace は、Google Cloud プロジェクト内に作成する必要があります。これを行うには、Google Cloud コンソールで [Monitoring] をクリックし、ワークフローに従います。
  2. 次の Stackdriver API を有効にする必要があります。

  3. Stackdriver エージェントが使用するサービス アカウントに次の IAM ロールを割り当てる必要があります。

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

料金

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

ベアメタル版 Anthos クラスタでは、Anthos システムのログと指標には次のものが含まれます。

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

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

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