ワークロードの自動アプリケーション モニタリングを構成する


対応しているワークロードの自動アプリケーション モニタリングを有効にすると、Google Kubernetes Engine(GKE)で実行されているモニタリング アプリケーションの構成とメンテナンスにかかる時間と労力を節約できます。

自動アプリケーション モニタリングの仕組み

自動アプリケーション モニタリングを有効にすると、GKE は対応しているワークロードのデプロイ済みインスタンスを検出し、検出されたワークロード インスタンスごとに PodMonitoring リソースをデプロイします。

自動アプリケーション モニタリングでは、アプリケーションをモニタリングするためのすぐに使用できるダッシュボードもインストールされます。指標は Google Cloud Managed Service for Prometheus によって収集されます。

対応しているワークロード

自動アプリケーション モニタリングは、次のワークロードをサポートしています。

AI モデルサーバーの指標スクレイピング間隔は 15 秒です。AI 以外のワークロードの場合、スクレイピング間隔は 30 秒です。

手動で構成できるその他のすぐに使用できるオブザーバビリティ ソリューションの詳細については、Google Cloud Observability ドキュメントのエクスポータ構成の概要をご覧ください。

始める前に

開始にあたり、次の作業が完了していることを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して最新のバージョンを取得する。

自動アプリケーション モニタリングの要件

自動アプリケーション モニタリングを有効にするには、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 を使用します。

新しいワークロードをデプロイした後、またはクラスタの自動アプリケーション モニタリングを有効にした後、対応しているワークロードで指標のスクレイピングが開始されるまでに最大 10 分かかることがあります。

コンソール

新しいクラスタで自動アプリケーション モニタリングを有効にするには、次の操作を行います。

  1. Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. [ 作成] をクリックし、[Standard] セクションまたは [Autopilot] セクションで [構成] をクリックします。

  3. Autopilot モードのクラスタの場合は、[詳細設定] をクリックします。Standard モードのクラスタの場合は、[機能] をクリックします。

  4. [オペレーション] セクションで、[自動アプリケーション モニタリングを有効にする] を選択します。

  5. [作成] をクリックします。

既存のクラスタの自動アプリケーション モニタリングを有効にするには、[クラスタの詳細] タブの [オペレーション] セクションで [自動アプリケーション モニタリングを有効にする] フィールドを更新します。

gcloud

新しいクラスタの自動アプリケーション モニタリングを有効にするには、オプション --auto-monitoring-scope=ALL を使用します。

gcloud container clusters create-auto CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=ALL

次のように置き換えます。

既存のクラスタは、gcloud container clusters update コマンドを使用して更新することもできます。

API

新しいクラスタで自動アプリケーション モニタリングを有効にするには、メソッド clusters.createPOST リクエストを送信します。

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 プロジェクト ID。
  • CLUSTER_NAME: 新しいクラスタの名前。
  • COMPUTE_LOCATION: クラスタの Compute Engine のロケーション

自動アプリケーション モニタリングが有効であることを確認する

クラスタで自動アプリケーション モニタリングが有効になっているかどうかを確認するには、 Google Cloud コンソール、gcloud CLI、または GKE API を使用します。

コンソール

次の操作を行います。

  1. Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. クラスタのリストで、クラスタの名前をクリックします。

  3. [機能] セクションの [自動アプリケーション モニタリング] フィールドに、自動アプリケーション モニタリングが有効か無効かが示されます。

gcloud

クラスタの説明を表示します。

gcloud container clusters describe CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'

次のように置き換えます。

出力は次のようになります。

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

次のように置き換えます。

出力は次のようになります。

autoMonitoringConfig.scope: ALL

出力で、autoMonitoringConfig.scope フィールドの値が ALL の場合、自動アプリケーション モニタリングが有効になっています。それ以外の場合、自動アプリケーション モニタリングは無効になります。

ダッシュボードを表示

自動アプリケーション モニタリングを有効にすると、GKE は、クラスタにデプロイされた対応しているワークロードのアプリケーションをモニタリングするためのすぐに使用できるダッシュボードをインストールします。クラスタで実行されたことがない対応しているワークロードのダッシュボードは表示されません。

Google Kubernetes Engine ページで、自動的にモニタリングされるワークロードからのテレメトリーを含むダッシュボードを表示するには、次の操作を行います。

  1. Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. 自動モニタリングされるワークロードのダッシュボードを表示するクラスタの名前をクリックします。

  3. [オブザーバビリティ] タブをクリックします。 [統合] セクションには、クラスタで実行されている対応しているワークロード用に構成されたダッシュボードが表示されます。

自動的にモニタリングされるワークロードからのテレメトリーを含むダッシュボードを Cloud Monitoring ページに表示するには、次の操作を行います。

  1. [ダッシュボード] ページに移動

    ダッシュボードに移動する

  2. [ダッシュボード リスト] タブをクリックします。

  3. [統合] カテゴリを選択します。

  4. ダッシュボードの名前(RabbitMQ Prometheus Overview など)をクリックします。

自動アプリケーション モニタリングを無効にする

クラスタで自動アプリケーション モニタリングを無効にした場合、GKE によって作成された PodMonitoring リソースはそのまま残り、GKE は既存の対応しているワークロードを引き続きモニタリングします。GKE は、クラスタにデプロイされた対応しているワークロードの新しいインスタンスの自動モニタリングを停止します。既存の対応しているワークロードのモニタリングを停止するには、GKE が作成した PodMonitoring リソースを削除する必要があります。クラスタの自動アプリケーション モニタリングを再度有効にすると、GKE は以前に作成した PodMonitoring リソースを検出して調整します。

クラスタの自動アプリケーション モニタリングを無効にするには、Google Cloud コンソール、gcloud CLI、または GKE API を使用します。

コンソール

  1. Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。

    Google Kubernetes Engine に移動

  2. クラスタの名前をクリックします。

  3. [機能] リストで、[自動アプリケーション モニタリング] フィールドを見つけます。

  4. [編集] をクリックします。

  5. [自動アプリケーション モニタリングを有効にする] の選択を解除します。

  6. [保存] をクリックします。

gcloud

オプション --auto-monitoring-scope=NONE を使用してクラスタを更新します。

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=NONE

次のように置き換えます。

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"
        }
      }
    }
  }
}

次のように置き換えます。

対応しているワークロードの自動モニタリングをカスタマイズする

対応しているワークロードの個々のインスタンスのモニタリング構成のカスタマイズや、対応しているワークロードの個々のインスタンスのモニタリングのオプトアウトができます。

他のワークロードの自動アプリケーション モニタリングに影響を与えることなく、対応しているワークロードのデプロイ済みインスタンスの PodMonitoring リソースをカスタマイズするには、自動アプリケーション モニタリングからインスタンスを除外し、構成を更新するか、ターゲット ワークロード インスタンスに関連付けられた PodMonitoring リソースを置き換える必要があります。

GKE が作成した PodMonitoring リソースを、関連するワークロードを除外せずに更新または削除すると、GKE は PodMonitoring リソースを復元し、他の対応しているワークロードをモニタリングしながら継続性を確保します。

ワークロードの PodMonitoring リソースを見つける

GKE がワークロード用に作成した PodMonitoring リソースは、 Google Cloud コンソールを使用して特定できます。

  1. [オブジェクト ブラウザ] ページに移動します。

    オブジェクト ブラウザに移動

  2. [クラスタ] フィールドに、クラスタの名前を入力します。

  3. [Namespace] フィールドに、Namespace の名前を入力します。

  4. [オブジェクトの種類] フィルタで [PodMonitoring] を選択します。

  5. [monitoring.googleapis.com] で [PodMonitoring] を選択します。

  6. オブジェクト名をクリックして、オブジェクトを調べます。メタデータ ラベル source:gke-auto-monitoring は、GKE が PodMonitoring リソースを作成したことを示します。

デプロイされたインスタンスを自動モニタリングから除外する

対応しているワークロードのデプロイ済みインスタンスをモニタリングしない場合や、ワークロードのモニタリング構成をカスタマイズする場合は、ワークロードを自動アプリケーション モニタリングから除外します。

ワークロードを除外するには、ターゲット ワークロード構成にメタデータ ラベル allow-gke-auto-monitoring: false を追加する必要があります。たとえば、次のマニフェストは、自動アプリケーション モニタリングによってモニタリングされない RabbitMQ StatefulSet を記述しています。

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rabbitmq
  labels:
    allow-gke-auto-monitoring: "false"
spec:
  serviceName: rabbitmq
  replicas: 3

ワークロード インスタンスを除外したら、GKE がワークロード用に作成した PodMonitoring リソースを削除できます。PodMonitoring リソースを削除または変更しても、GKE は復元を試みません。メタデータ ラベル allow-gke-auto-monitoring: false を使用して新しいワークロードをデプロイしても、GKE はワークロードの PodMonitoring リソースを作成しません。

ワークロードのモニタリング構成を削除する

ワークロードのモニタリングを停止する場合や、ワークロード用に独自のカスタマイズされた PodMonitoring リソースをデプロイする場合は、モニタリング構成を削除します。

個々のワークロードの自動アプリケーション モニタリング構成を削除する手順は次のとおりです。

  1. 自動アプリケーション モニタリングからワークロードを除外する。
  2. GKE がワークロード用に作成した PodMonitoring リソースを特定します。
  3. PodMonitoring リソースを削除します。

    kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
    

    次のように置き換えます。

    • POD_MONITORING_NAME: PodMonitoring リソースの名前。
    • NAMESPACE: PodMonitoring リソースの Namespace。

クラスタ内のすべてのワークロードの自動アプリケーション モニタリング構成を削除するには、次の操作を行います。

  1. 自動アプリケーション モニタリングを無効にします
  2. メタデータ ラベル source:gke-auto-monitoring を持つクラスタ内のすべての PodMonitoring リソースを削除します。

    kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
    

料金

自動アプリケーション モニタリングの構成と、自動アプリケーション モニタリングによる対応しているワークロード用のすぐに使用できるダッシュボードのインストールは、追加料金なしで利用できます。ただし、Google Cloud Managed Service for Prometheus による指標の取り込みについては、Monitoring の料金が適用されます。

次のステップ