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


サポートされているワークロードの自動アプリケーション モニタリングを有効にすると、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 を実行して最新のバージョンを取得する。

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

アプリケーションの自動モニタリングを有効にするには、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 分かかることがあります。

コンソール

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

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

    Google Kubernetes Engine に移動

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

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

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

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

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

gcloud

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

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

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

既存のクラスタを更新するには、gcloud beta 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
        }
      }
    }
  }
}

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

自動アプリケーション モニタリングが有効になっているかどうかを確認する

クラスタで自動アプリケーション モニタリングが有効になっているかどうかは、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.getGET リクエストを送信します。

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 beta container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=NONE

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

API

メソッド clusters.updatePUT リクエストを送信します。

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
  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 の料金が適用されます。

次のステップ