Google Kubernetes Engine(GKE)には、Google Cloud Managed Service for Prometheus など、Cloud Logging や Cloud Monitoring との統合が含まれています。この統合により、高度なプロファイリング機能とトレース機能を使用して、稼働中の GKE クラスタのモニタリング、システムログとデバッグログの管理、システムのパフォーマンス分析を行うことができます。この統合では、クラスタをモニタリングするための高度な GKE ダッシュボードも提供されます。
このページでは、次の操作を行う方法について説明します。
新しいクラスタを作成し、Cloud Logging、Cloud Monitoring、Prometheus 向けのマネージド サービスを構成する。
収集するログと指標を選択する。
クラスタの Cloud Logging、Cloud Monitoring、Prometheus 向けのマネージド サービスを無効にする。
始める前に
クラスタが含まれているプロジェクトのオーナーであることを確認します。
Cloud Logging API が有効になっていることを確認します。Cloud Logging API のステータスは、概要ページで確認できます。
使用可能なログ
GKE クラスタから Cloud Logging にログを送信するかどうかを選択できます。Cloud Logging にログを送信する場合は、システムログを送信する必要があります。必要に応じて、追加のソースからログを送信することもできます。
Cloud Logging の料金で、ロギングのコストを最適化するためのベスト プラクティスとツールなどの詳細をご確認ください。
次の表に、create コマンドと update コマンドの --logging
フラグでサポートされる値を示します。
ログソース | クラスタの作成時にデフォルトで有効か | --logging 値 |
収集されるログ |
---|---|---|---|
なし | × | NONE |
Cloud Logging にログは送信されません。クラスタ内にログ収集エージェントがインストールされていません。この値は、GKE Autopilot クラスタではサポートされていません。 |
システム | ○ | SYSTEM |
以下からログを収集します。
|
ワークロード | ○ | WORKLOAD |
ユーザーノードで実行されているシステム以外のコンテナによって生成されたすべてのログ。 |
API サーバー | × | API_SERVER |
kube-apiserver によって生成されたすべてのログ。 |
スケジューラ | × | SCHEDULER |
kube-scheduler によって生成されたすべてのログ。 |
コントローラ マネージャー | × | CONTROLLER_MANAGER |
kube-controller-manager によって生成されたすべてのログ。 |
利用可能な指標
GKE クラスタから Cloud Monitoring に指標を送信するかどうかを選択できます。Cloud Monitoring に指標を送信する場合は、システム指標を送信する必要があります。必要に応じて指標を追加で送信することもできます。
Cloud Monitoring の料金で、課金対象外の指標などの詳細をご確認ください。
次の表に、create コマンドと update コマンドの --monitoring
フラグでサポートされる値を示します。
ソース | クラスタの作成時にデフォルトで有効か | --monitoring 値 |
収集される指標 |
---|---|---|---|
なし | × | NONE |
Cloud Monitoring に指標が送信されません。クラスタに指標収集エージェントがインストールされていません。この値は、GKE Autopilot クラスタではサポートされていません。 |
システム | はい | SYSTEM |
Kubernetes の機能に不可欠なシステム コンポーネントの指標。指標の詳細については、Kubernetes 指標をご覧ください。 |
API サーバー | いいえ | API_SERVER |
kube-apiserver からの指標。API サーバーの指標の一覧をご覧ください。 |
スケジューラ | いいえ | SCHEDULER |
kube-scheduler からの指標。スケジューラの指標の一覧をご覧ください。 |
コントローラ マネージャー | いいえ | CONTROLLER_MANAGER |
kube-controller-manager からの指標。コントローラ マネージャーの指標の一覧をご覧ください。 |
ストレージ | いいえ | STORAGE |
kube-state-metrics からのストレージ指標。永続ボリュームの永続ボリューム要求の指標が含まれます。ストレージ指標の一覧をご覧ください。 |
Pod | いいえ | POD |
kube-state-metrics からの Pod 指標。Pod 指標の一覧をご覧ください。 |
デプロイメント | いいえ | DEPLOYMENT |
kube-state-metrics からのデプロイメント指標。デプロイメント指標の一覧をご覧ください。 |
StatefulSet | いいえ | STATEFULSET |
kube-state-metrics からの StatefulSet 指標。StatefulSet 指標の一覧をご覧ください。 |
DaemonSet | いいえ | DAEMONSET |
kube-state-metrics からの DaemonSet 指標。DaemonSet 指標の一覧をご覧ください。 |
HorizonalPodAutoscaler | いいえ | HPA |
kube-state-metrics からの HPA 指標。HorizonalPodAutoscaler 指標の一覧をご覧ください。 |
さらに、Google Cloud Managed Service for Prometheus を使用して、GKE ワークロードによって公開される Prometheus スタイルの指標を収集することもできます。この方法では、Prometheus を使用してワークロードを監視し、アラートを設定できます。Prometheus を手動で管理したり、大規模な環境で運用する必要はありません。
新しいクラスタを対象としたモニタリングとロギングのサポートの構成
このセクションのクラスタ作成手順は、Cloud Logging と Cloud Monitoring に関連するオプションだけを対象としています。GKE クラスタの詳しい作成手順については、クラスタの作成をご覧ください。
コンソール
-
Google Cloud コンソールで [Kubernetes Engine] を選択し、[クラスタ] を選択するか、次のボタンをクリックします。
[作成] をクリックします。
Standard モードの [構成] をクリックします。
ナビゲーション パネルの [クラスタ] の下の [機能] をクリックします。
[オペレーション] で、収集するログと指標を選択します。
新しいクラスタの場合、Cloud Logging と Cloud Monitoring がデフォルトで有効になっています。
収集するログを変更するには、Cloud Logging の [コンポーネント] メニューをクリックして、ログを収集するコンポーネントを選択します。
収集する指標を変更するには、Cloud Monitoring の [コンポーネント] メニューをクリックして、指標を収集するコンポーネントを選択します。
Cloud Logging の統合(監査ログを除く)を無効にするには、[Cloud Logging を有効にする] チェックボックスをオフにします。
Cloud Monitoring の統合を無効にするには、[Cloud Monitoring を有効にする] チェックボックスをオフにします。
Managed Service for Prometheus を有効にするには、[Prometheus 向けのマネージド サービスの有効化] チェックボックスをオンにします(1.21.4-gke.300 以降が必要です)。このチェックボックスをオンにすると、マネージド コレクタが有効になります。これは構成が必要です。
[作成] をクリックします。
gcloud
gcloud
を使用してクラスタを作成します。
Google Cloud CLI がインストールされているデバイスで、ターミナル ウィンドウを開きます。たとえば、Cloud Shell を使用してこの操作を行います。
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
新しいクラスタの場合、Cloud Logging と Cloud Monitoring がデフォルトで有効になっています。クラスタを作成するには、次のコマンドを実行します。
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --project=PROJECT_ID
前の式では、
CLUSTER_NAME
はクラスタ名、[ZONE]
はクラスタのコンピューティング ゾーンです。PROJECT_ID
はプロジェクト名ではなく、Google Cloud のプロジェクト ID です。また、値のカンマ区切りリストを
create
コマンドの--logging
フラグに渡して、Cloud Logging に送信するログを構成することもできます。ログを収集しない場合は、--logging=NONE
を渡します。システム、API サーバー、スケジューラ、コントローラ マネージャーのログを収集するには、--logging=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER
を渡します。システムログとワークロード ログの両方を収集するには、--logging=SYSTEM,WORKLOAD
を渡します。例:gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --project=PROJECT_ID \ --logging=SYSTEM,WORKLOAD
同様に、値のカンマ区切りリストを
create
コマンドの--monitoring
フラグに渡すことで、Cloud Monitoring に送信される指標を構成できます。指標を収集しない場合は、--monitoring=NONE
を渡します。システム指標を収集するには、--monitoring=SYSTEM
を渡します。すべての指標を収集するには、--monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,
DAEMONSET,HPA
を渡します。gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --project=PROJECT_ID \ --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA
これとは別に、
--enable-managed-prometheus
フラグを使用して Managed Service for Prometheus を有効にできます。例:gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --project=PROJECT_ID \ --enable-managed-prometheus
--enable-managed-prometheus
フラグを使用すると、マネージド コレクタが有効になります。このコレクタは構成されている必要があります。
Terraform
Terraform を使用してログと指標の収集を構成するには、
google_container_cluster
の Terraform レジストリでlogging_config
とmonitoring_config
のブロックをご覧ください。API サーバー、スケジューラ、コントローラ マネージャーからのログの収集を有効にするには、Terraform Google Cloud プロバイダ バージョン 4.44.0 以降が必要です。Terraform と Google Cloud を使用する場合の一般的な情報については、Google Cloud での Terraform をご覧ください。
既存のクラスタのモニタリングとロギングの構成
次のセクションでは、既存の GKE クラスタの Cloud Logging と Cloud Monitoring の統合を変更する方法について説明します。
クラスタで使用しているモニタリングとロギングのサポートを確認する
クラスタの Cloud Logging と Cloud Monitoring のインテグレーションの設定を表示する手順は次のとおりです。
-
Google Cloud コンソールで [Kubernetes Engine] を選択し、[クラスタ] を選択するか、次のボタンをクリックします。
クラスタの [詳細] パネルで、Cloud Logging、Cloud Monitoring、Prometheus 向けのマネージド サービスのステータスを確認します。
クラスタを変更する
既存のクラスタの Cloud Logging または Cloud Monitoring の統合設定を変更するには、次の手順を行います。
コンソール
Google Cloud コンソールで [Kubernetes Engine] を選択し、[クラスタ] を選択するか、次のボタンをクリックします。
}クラスタの名前をクリックします。
Cloud Logging に送信されるログ、Cloud Monitoring に送信される指標、Prometheus 向けのマネージド サービスを有効にするかどうかを変更するには、Cloud Logging、Cloud Monitoring、Prometheus 向けのマネージド サービスの横にある [編集 edit] をクリックします。
Cloud Logging、Cloud Monitoring、または Managed Service for Prometheus の構成を変更したら、[保存] をクリックします。
gcloud
次の gcloud
手順では、gcloud container clusters update
コマンドを使用してクラスタのモニタリングとロギングのサポートをアップグレードする方法を説明します。upgrade
コマンドではなく、update
コマンドを使用している点に注意してください。
gcloud CLI がインストールされているデバイスで、ターミナル ウィンドウを開きます。たとえば、Cloud Shell を使用してこの操作を行います。
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
まだ行っていない場合は、gcloud CLI でクラスタのデフォルト値を設定します。
gcloud config set project PROJECT_ID
値のカンマ区切りリストを
gcloud container clusters update
コマンドの--logging
フラグに渡すことで、Cloud Logging に送信するログを構成します。完全なリストについては、利用可能なログソースをご覧ください。たとえば、システムログとワークロード ログの両方を収集するには、--logging=SYSTEM,WORKLOAD
を渡します。システムログのみを収集するには、--logging=SYSTEM
を渡します。ログを収集しない場合は、--logging=NONE
を渡します。gcloud container clusters update CLUSTER_NAME \ --region=REGION \ --logging=NONE
値のカンマ区切りリストを
gcloud container clusters update
コマンドの--monitoring
フラグに渡すことで、Cloud Monitoring に送信される指標を構成します。完全なリストについては、利用可能な指標ソースをご覧ください。たとえば、システム指標を収集するには、--monitoring=SYSTEM
を渡します。指標を収集しない場合は、--monitoring=NONE
を渡します。gcloud container clusters update CLUSTER_NAME \ --region=REGION \ --monitoring=NONE
--enable-managed-prometheus
フラグまたは--disable-managed-prometheus
フラグを使用して、Managed Service for Prometheus を有効にするかどうかを構成します。例:gcloud container clusters update CLUSTER_NAME \ --region=REGION \ --enable-managed-prometheus
Terraform
Terraform を使用してログと指標の収集を構成するには、
google_container_cluster
の Terraform レジストリでlogging_config
とmonitoring_config
のブロックをご覧ください。API サーバー、スケジューラ、コントローラ マネージャーからのログの収集を有効にするには、Terraform Google Cloud プロバイダ バージョン 4.44.0 以降が必要です。Terraform と Google Cloud を使用する場合の一般的な情報については、Google Cloud での Terraform をご覧ください。
非推奨の構成パラメータ
以前の構成パラメータを使用して GKE クラスタのロギングとモニタリングのサポートを構成していた場合、これらのパラメータは非推奨になっています。次の表に、非推奨フラグに代わる同等の構成パラメータを示します。
以前の構成 | 古い create の引数 |
古い update の引数 |
新しい create 引数と update 引数 |
---|---|---|---|
無効 | --no-enable-stackdriver-kubernetes |
--no-enable-stackdriver-kubernetes |
--logging=NONE --monitoring=NONE |
システム モニタリングのみ(Logging が無効になっている) | --enable-stackdriver-kubernetes --no-enable-cloud-logging |
--logging-service=none --monitoring-service=monitoring.googleapis.com/kubernetes |
--logging=NONE --monitoring=SYSTEM |
システムとワークロードのロギングのみ(Monitoring が無効になっている) | --enable-stackdriver-kubernetes --no-enable-cloud-monitoring |
--logging-service=logging.googleapis.com/kubernetes --monitoring-service=none |
--logging=SYSTEM,WORKLOAD --monitoring=NONE |
システムのロギングとモニタリングのみ(ベータ版) | --enable-logging-monitoring-system-only |
--enable-logging-monitoring-system-only |
--logging=SYSTEM --monitoring=SYSTEM |
システムとワークロードのロギングとモニタリング | --enable-stackdriver-kubernetes |
--enable-stackdriver-kubernetes |
--logging=SYSTEM,WORKLOAD --monitoring=SYSTEM |
次のステップ
- 料金ページで、Cloud Logging、Cloud Monitoring、Managed Service for Prometheus に関連する費用を確認する。
- Cloud Logging で GKE ログを表示する方法を学習する。