ベアメタル版 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 クラスタと従来のオンプレミス インフラストラクチャで実行されるコンポーネントがあるアプリケーションの場合は、アプリケーションのエンドツーエンドのビューのために、その他のソリューションも検討できます。
ベアメタル版 Anthos クラスタのアーキテクチャ、構成、Google Cloud プロジェクトにデフォルトで複製されるデータの詳細については、セクションベアメタル版 Anthos クラスタのロギングとモニタリングの仕組みをご覧ください。
Logging の詳細については、Cloud Logging のドキュメントをご覧ください。
Monitoring の詳細については、Cloud Monitoring のドキュメントをご覧ください。
Prometheus と Grafana
Prometheus と Grafana は、Cloud Marketplace で入手可能な人気の高いオープンソース モニタリング サービスです。
Prometheus は、アプリケーションとシステムの指標を収集します。
Alertmanager は、いくつかの異なるアラート メカニズムを使用してアラートの送信を行います。
Grafana はダッシュボード ツールです。
Prometheus と Grafana は、それぞれの管理クラスタとユーザー クラスタで有効にできます。これらのプロダクトの使用経験があるアプリケーション チームやクラスタ内のアプリケーション指標を保持する運用チームでの使用、あるいはネットワーク接続が失われた場合のトラブルシューティングにおすすめします。
サードパーティのソリューション
Google は、サードパーティのロギングおよびモニタリング ソリューション プロバイダと協力して、ベアメタル版 Anthos クラスタとサードパーティの製品がうまく連動するように支援しています。Datadog、Elastic、Splunk などの製品があります。今後もサードパーティの製品が検証され、追加される予定です。
ベアメタル版 Anthos クラスタでサードパーティのソリューションを使用する場合は、次のソリューション ガイドをご覧ください。
ベアメタル版 Anthos クラスタのロギングとモニタリングの仕組み
Cloud Logging と Cloud Monitoring は、新しい管理クラスタまたはユーザー クラスタの作成時に、各クラスタにインストールされ、起動されます。
Stackdriver エージェントには、クラスタごとに次のコンポーネントが含まれています。
Stackdriver Operator(
stackdriver-operator-*
)。クラスタにデプロイされた他のすべての Stackdriver エージェントのライフサイクルを管理します。Stackdriver のカスタム リソース。 ベアメタル版 Anthos クラスタ インストール プロセスで自動的に作成されるリソース。
Stackdriver Log Forwarder(
stackdriver-log-forwarder-*
)。各マシンから Cloud Logging にログを転送する Fluent Bit DeamonSet。Log Forwarder は、ログエントリをローカルにバッファリングして、最大 4 時間再送信します。バッファがいっぱいになるか、Log Forwarder が Cloud Logging API に 4 時間以上アクセスできない場合、ログは削除されます。Stackdriver Metadata Collector(
stackdriver-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 で使用するサービス アカウントの構成と、次のリストに含まれています。
- Cloud Monitoring Workspace は、Google Cloud プロジェクト内に作成する必要があります。これを行うには、Google Cloud コンソールで [Monitoring] をクリックし、ワークフローに従います。
次の Stackdriver API を有効にする必要があります。
Stackdriver エージェントが使用するサービス アカウントに次の IAM ロールを割り当てる必要があります。
logging.logWriter
monitoring.metricWriter
stackdriver.resourceMetadata.writer
monitoring.dashboardEditor
料金
Anthos システムのログと指標は無料です。
ベアメタル版 Anthos クラスタでは、Anthos システムのログと指標には次のものが含まれます。
- 管理クラスタ内のすべてのコンポーネントのログと指標
- ユーザー クラスタ内の次の名前空間のコンポーネントのログと指標:
kube-system
、gke-system
、gke-connect
、knative-serving
、istio-system
、monitoring-system
、config-management-system
、gatekeeper-system
、cnrm-system
詳しくは、Google Cloud のオペレーション スイートの料金をご覧ください。
Cloud Logging の指標のクレジットについては、販売担当者にお問い合わせください。