サポートされているワークロードの自動アプリケーション モニタリングを有効にすると、Google Kubernetes Engine(GKE)で実行されているモニタリング アプリケーションの構成とメンテナンスにかかる時間と労力を節約できます。
自動アプリケーション モニタリングの仕組み
アプリケーションの自動モニタリングを有効にすると、GKE はサポートされているワークロードのデプロイされたインスタンスを検出し、検出されたワークロード インスタンスごとに PodMonitoring
リソースをデプロイします。
自動アプリケーション モニタリングでは、アプリケーションをモニタリングするためのすぐに使用できるダッシュボードもインストールされます。指標は Google Cloud Managed Service for Prometheus によって収集されます。
対応しているワークロード
自動アプリケーション モニタリングは、次のワークロードをサポートしています。
手動で構成できるその他のすぐに使用できるオブザーバビリティ ソリューションの詳細については、Google Cloud Observability ドキュメントのエクスポータ構成の概要をご覧ください。
始める前に
作業を始める前に、次のことを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
- Cloud Monitoring API を有効にします。
自動アプリケーション モニタリングの要件
アプリケーションの自動モニタリングを有効にするには、GKE クラスタが次の要件を満たしている必要があります。
- クラスタで GKE バージョン 1.28 以降を実行している必要があります。
- gcloud CLI バージョン 492.0.0 以降が必要です。
- クラスタで Google Cloud Managed Service for Prometheus マネージド コレクションが有効になっている。新しいクラスタでは、Google Cloud Managed Service for Prometheus マネージド コレクションがデフォルトで有効になっています。
自動アプリケーション モニタリングを有効にする
新規または既存の GKE クラスタの自動アプリケーション モニタリングを有効にするには、Google Cloud コンソール、Google Cloud CLI、または GKE API を使用します。
新しいワークロードをデプロイした後、またはクラスタの自動アプリケーション モニタリングを有効にした後、サポートされているワークロードで指標のス craping が開始されるまでに最大 10 分かかることがあります。
コンソール
新しいクラスタでアプリケーションの自動モニタリングを有効にするには、次の操作を行います。
Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。
[
作成] をクリックし、[Standard] セクションまたは [Autopilot] セクションで [構成] をクリックします。Autopilot モードのクラスタの場合は、[詳細設定] をクリックします。Standard モードのクラスタの場合は、[機能] をクリックします。
[オペレーション] セクションで、[アプリケーションの自動モニタリングの有効化] を選択します。
[作成] をクリックします。
既存のクラスタの自動アプリケーション モニタリングを有効にするには、[クラスタの詳細] タブの [オペレーション] セクションで [アプリケーションの自動モニタリングを有効にする] フィールドを更新します。
gcloud
新しいクラスタの自動アプリケーション モニタリングを有効にするには、オプション --auto-monitoring-scope=ALL
を使用します。
gcloud beta container clusters create-auto CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=ALL
次のように置き換えます。
CLUSTER_NAME
: 新しいクラスタの名前。COMPUTE_LOCATION
: クラスタの Compute Engine のロケーション。
既存のクラスタを更新するには、gcloud beta container clusters update
コマンドを使用することもできます。
API
新しいクラスタで自動アプリケーション モニタリングを有効にするには、メソッド clusters.create
に POST
リクエストを送信します。
POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters
{
"cluster": {
"name": CLUSTER_NAME
"initialNodeCount": 1,
"monitoringConfig": {
"managedPrometheusConfig": {
"enabled": true,
"autoMonitoringConfig": {
"scope": ALL
}
}
}
}
}
次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト IDCLUSTER_NAME
: 新しいクラスタの名前。COMPUTE_LOCATION
: クラスタの Compute Engine のロケーション。
自動アプリケーション モニタリングが有効になっているかどうかを確認する
クラスタで自動アプリケーション モニタリングが有効になっているかどうかは、Google Cloud コンソール、gcloud CLI、または GKE API を使用して確認できます。
コンソール
手順は次のとおりです。
Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
クラスタのリストで、クラスタの名前をクリックします。
[機能] セクションの [自動アプリケーション モニタリング] フィールドに、自動アプリケーション モニタリングが有効か無効かが示されます。
gcloud
クラスタの説明を表示します。
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'
次のように置き換えます。
CLUSTER_NAME
: クラスタの名前。COMPUTE_LOCATION
: クラスタの Compute Engine のロケーション。
出力は次のようになります。
autoMonitoringConfig.scope: ALL
出力で、autoMonitoringConfig.scope
フィールドの値が ALL
の場合、自動アプリケーション モニタリングが有効になっています。それ以外の場合、自動アプリケーション モニタリングは無効になります。
API
メソッド clusters.get
に GET
リクエストを送信します。
GET https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト IDCLUSTER_NAME
: クラスタの名前。COMPUTE_LOCATION
: クラスタの Compute Engine のロケーション。
出力は次のようになります。
autoMonitoringConfig.scope: ALL
出力で、autoMonitoringConfig.scope
フィールドの値が ALL
の場合、自動アプリケーション モニタリングが有効になっています。それ以外の場合、自動アプリケーション モニタリングは無効になります。
ダッシュボードを表示
アプリケーションの自動モニタリングを有効にすると、GKE は、クラスタにデプロイされたサポートされているワークロードのアプリケーションをモニタリングするためのすぐに使用できるダッシュボードをインストールします。クラスタで実行したことがないサポート対象ワークロードのダッシュボードは表示されません。
Google Kubernetes Engine ページで、自動的にモニタリングされるワークロードからのテレメトリーを含むダッシュボードを表示するには、次の操作を行います。
Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
自動モニタリングされるワークロードのダッシュボードを表示するクラスタの名前をクリックします。
[オブザーバビリティ] タブをクリックします。[統合] セクションには、クラスタで実行されているサポートされているワークロード用に構成されたダッシュボードが表示されます。
自動的にモニタリングされるワークロードからのテレメトリーを含むダッシュボードを Cloud Monitoring ページに表示するには、次の操作を行います。
[ダッシュボード] ページに移動します。
[ダッシュボード リスト] タブをクリックします。
[統合] カテゴリを選択します。
ダッシュボードの名前をクリックします。たとえば、RabbitMQ Prometheus Overview などです。
自動アプリケーション モニタリングを無効にする
クラスタでアプリケーションの自動モニタリングを無効にした場合、GKE によって作成された PodMonitoring
リソースはそのまま残り、GKE は既存のサポートされているワークロードを引き続きモニタリングします。GKE は、クラスタにデプロイされたサポート対象ワークロードの新しいインスタンスの自動モニタリングを停止します。既存のサポート対象ワークロードのモニタリングを停止するには、GKE が作成した PodMonitoring
リソースを削除する必要があります。クラスタの自動アプリケーション モニタリングを再度有効にすると、GKE は以前に作成した PodMonitoring
リソースを検出して調整します。
クラスタの自動アプリケーション モニタリングを無効にするには、Google Cloud コンソール、gcloud CLI、または GKE API を使用します。
コンソール
Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
クラスタの名前をクリックします。
[機能] リストで、[自動アプリケーション モニタリング] フィールドを見つけます。
edit [編集] をクリックします。
[自動アプリケーション モニタリングを有効にする] のチェックボックスをオフにします。
[保存] をクリックします。
gcloud
オプション --auto-monitoring-scope=NONE
を使用してクラスタを更新します。
gcloud beta container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=NONE
次のように置き換えます。
CLUSTER_NAME
: クラスタの名前。COMPUTE_LOCATION
: クラスタの Compute Engine のロケーション。
API
メソッド clusters.update
に PUT
リクエストを送信します。
PUT https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
{
"update": {
"desiredMonitoringConfig": {
"managedPrometheusConfig": {
"autoMonitoringConfig": {
"scope": NONE
}
}
}
}
}
次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト IDCLUSTER_NAME
: クラスタの名前。COMPUTE_LOCATION
: クラスタの Compute Engine のロケーション。
サポートされているワークロードの自動モニタリングをカスタマイズする
サポートされているワークロードの個々のインスタンスのモニタリング構成をカスタマイズしたり、サポートされているワークロードの個々のインスタンスのモニタリングをオプトアウトしたりできます。
他のワークロードの自動アプリケーション モニタリングに影響を与えることなく、サポートされているワークロードのデプロイ済みインスタンスの PodMonitoring
リソースをカスタマイズするには、自動アプリケーション モニタリングからインスタンスを除外し、構成を更新するか、ターゲット ワークロード インスタンスに関連付けられた PodMonitoring
リソースを置き換える必要があります。
関連するワークロードを除外せずに GKE が作成した PodMonitoring
リソースを更新または削除すると、GKE は PodMonitoring
リソースを復元し、他のサポートされているワークロードをモニタリングしながら継続性を確保します。
ワークロードの PodMonitoring
リソースを見つける
GKE がワークロード用に作成した PodMonitoring
リソースは、Google Cloud コンソールを使用して識別できます。
[オブジェクト ブラウザ] ページに移動します。
[クラスタ] フィールドに、クラスタの名前を入力します。
[Namespace] フィールドに Namespace の名前を入力します。
[オブジェクトの種類] フィルタで [PodMonitoring] を選択します。
[monitoring.googleapis.com] で [PodMonitoring] を選択します。
オブジェクト名をクリックして、オブジェクトを検査します。メタデータラベル
source:gke-auto-monitoring
は、GKE がPodMonitoring
リソースを作成したことを示します。
デプロイされたインスタンスを自動モニタリングから除外する
サポートされているワークロードのデプロイ済みインスタンスをモニタリングしない場合は、ワークロードのモニタリング構成をカスタマイズできます。この場合、ワークロードを自動アプリケーション モニタリングから除外できます。
ワークロードを除外するには、ターゲット ワークロード構成にメタデータラベル allow-gke-auto-monitoring: false
を追加する必要があります。たとえば、次のマニフェストは、自動アプリケーション モニタリングによってモニタリングされない RabbitMQ StatefulSet を記述しています。
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
allow-gke-auto-monitoring: false
spec:
serviceName: rabbitmq
replicas: 3
ワークロード インスタンスを除外したら、GKE がワークロード用に作成した PodMonitoring
リソースを削除できます。PodMonitoring
リソースを削除または変更しても、GKE は復元を試みません。メタデータラベル allow-gke-auto-monitoring: false
を使用して新しいワークロードをデプロイしても、GKE はワークロードの PodMonitoring
リソースを作成しません。
ワークロードのモニタリング構成を削除する
ワークロードのモニタリングを停止する場合や、ワークロード用に独自のカスタマイズされた PodMonitoring
リソースをデプロイする場合は、モニタリング構成を削除できます。
個々のワークロードの自動アプリケーション モニタリング構成を削除する手順は次のとおりです。
- 自動アプリケーション モニタリングからワークロードを除外する。
- GKE がワークロード用に作成した
PodMonitoring
リソースを特定します。 PodMonitoring
リソースを削除します。kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
次のように置き換えます。
POD_MONITORING_NAME
:PodMonitoring
リソースの名前。NAMESPACE
:PodMonitoring
リソースの Namespace。
クラスタ内のすべてのワークロードの自動アプリケーション モニタリング構成を削除するには、次の操作を行います。
- 自動アプリケーション モニタリングを無効にします。
メタデータラベル
source:gke-auto-monitoring
を持つクラスタ内のすべてのPodMonitoring
リソースを削除します。kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
料金
自動アプリケーション モニタリングによるサポート対象ワークロードの設定不要のダッシュボードのインストールは、追加料金なしで利用できます。ただし、Google Cloud Managed Service for Prometheus による指標の取り込みについては、Monitoring の料金が適用されます。
次のステップ
- オブザーバビリティ指標を表示する方法を確認する。