Alibaba Cloud Managed Service for Prometheus のデフォルトのサービス検出、カスタムサービス検出、ServiceMonitor、および PodMonitor を使用することで、Container Service for Kubernetes (ACK) クラスターのモニタリング範囲を最適化し、必要なメトリックデータが収集されるように保証し、さまざまなサービスと Pod を効率的にモニタリングおよび分析できます。
前提条件
コンテナサービス向け Prometheus インスタンスが作成されていること。詳細については、「ACK クラスターのモニタリング」をご参照ください。
制限事項
ACK クラスターは、コンテナサービス向け Prometheus インスタンスによってモニタリングされている必要があります。
操作手順
-
ARMS コンソールにログインします。
-
左側のナビゲーションウィンドウで、を選択します。
-
Prometheus インスタンスの名前をクリックします。
デフォルトのサービス検出の管理
デフォルトのサービス検出の有効化と表示
ACK クラスターを Managed Service for Prometheus に接続すると、デフォルトのサービス検出はデフォルトで無効になっています。手動で有効にする必要があります。次の手順を実行します:
-
Prometheus インスタンスの詳細ページの左側のナビゲーションウィンドウで、サービス検出 をクリックします。
-
サービス検出 ページで、設定 タブをクリックします。
-
デフォルトのサービス検出 タブで、管理する Pod を見つけ、操作 列のスイッチをオンにします。
説明ACK クラスターのすべての名前空間にある Pod のメトリックが収集されます。Pod に次のアノテーションが含まれている場合、デフォルトのサービス検出は Pod のメトリックを収集し、料金が発生します:
-
prometheus.io/path: /metrics -
prometheus.io/port: "9104" -
prometheus.io/scrape: "true"
-
-
その後、Managed Service for Prometheus が提供するデフォルトのサービス検出を表示できます。
次のステップ
デフォルトのサービス検出 タブでは、次の操作を実行できます:
-
デフォルトのサービス検出の詳細を表示する:操作 列の 詳細 をクリックして、YAML 設定ファイルを表示します。
-
デフォルトのサービス検出を無効にする:操作 列のスイッチをオフにします。デフォルトのサービス検出を無効にすると、メトリックデータの収集が停止し、料金は発生しなくなります。
カスタム ServiceMonitor 設定の管理
ServiceMonitor 設定ファイルを手動で追加して、モニタリングするサービスと収集するメトリックを指定できます。
ServiceMonitor 設定の作成
ACK クラスター内のアプリケーションのビジネスデータ (注文情報など) をモニタリングする場合、ServiceMonitor 設定を作成できます。
-
左側のナビゲーションウィンドウで サービス検出 をクリックし、設定 タブをクリックします。
-
ServiceMonitor タブをクリックし、ServiceMonitor の追加 をクリックします。
-
表示されたダイアログボックスで設定を指定し、OK をクリックします。
設定例:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: tomcat-demo # ServiceMonitor の一意の名前。 namespace: default # ServiceMonitor の名前空間。 spec: endpoints: - interval: 30s port: tomcat-monitor # service.yaml ファイル内の Prometheus exporter に対応するポートの Name フィールドの値。 path: /metrics # Prometheus exporter のパス。 namespaceSelector: # NGINX デモアプリケーションの名前空間。 any: true selector: matchLabels: # service.yaml ファイルを見つけるために使用できる、service.yaml ファイル内の Label フィールドの値。 app: tomcat設定が指定されると、ServiceMonitor が ServiceMonitor タブに表示されます。
クラスター内の ServiceMonitor 設定の自動同期が有効になっている場合、システムはクラスター内の ServiceMonitor 設定を検出し、デフォルトでデータを収集します。詳細については、「クラスター内の ServiceMonitor と PodMonitor の同期」をご参照ください。

次のステップ
ServiceMonitor タブでは、次の操作を実行できます:
-
ServiceMonitor 設定の変更:操作 列の 編集 をクリックします。
-
ServiceMonitor 設定の削除:操作 列の 削除 をクリックします。ServiceMonitor 設定を削除すると、メトリックデータは収集されなくなり、課金もされません。
-
ServiceMonitor 設定の無効化:操作 列のスイッチをオフにします。すべて無効化 をクリックして、作成したすべての ServiceMonitor 設定を無効にすることもできます。ServiceMonitor 設定を無効にすると、メトリックデータの収集が停止し、料金は発生しなくなります。
-
ServiceMonitor 設定の有効化:操作 列のスイッチをオンにします。
重要ServiceMonitor 設定が期待どおりのメトリックデータを収集できない理由を特定する方法については、「 設定した ServiceMonitor または PodMonitor が有効にならないのはなぜですか?」をご参照ください。
PodMonitor 設定の管理
PodMonitor 設定ファイルを手動で追加して、モニタリングするサービスと収集するメトリックを指定できます。
PodMonitor 設定の作成
-
左側のナビゲーションウィンドウで サービス検出 をクリックし、設定 タブをクリックします。
-
PodMonitor タブをクリックし、PodMonitor の追加 をクリックします。
-
表示されたダイアログボックスで設定を指定し、OK をクリックします。
設定例:
apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: # 一意の名前。 name: podmonitor-demo # 名前空間。 namespace: default #https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#podmonitorspec spec: selector: matchLabels: # service.yaml ファイルを見つけるために使用できる、pod.yaml ファイル内の Label フィールドの値。 app: nginx2-exporter namespaceSelector: # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#namespaceselector any: true podMetricsEndpoints: - interval: 30s # pod.yaml ファイル内の Prometheus exporter の Port パラメーターの Name フィールドの値。 port: tomcat-monitor # Prometheus exporter のパス。 path: /metrics設定が指定されると、PodMonitor が PodMonitor タブに表示されます。
クラスター内の PodMonitor 設定の自動同期が有効になっている場合、システムはクラスター内の PodMonitor 設定を検出し、デフォルトでデータを収集します。詳細については、「クラスター内の ServiceMonitor と PodMonitor の同期」をご参照ください。

次のステップ
PodMonitor タブでは、次の操作を実行できます:
-
PodMonitor 設定の変更:操作 列の 編集 をクリックします。
-
PodMonitor 設定の削除:操作 列の 削除 をクリックします。PodMonitor 設定を削除すると、メトリックデータは収集されなくなり、課金もされません。
-
PodMonitor 設定の無効化:操作 列のスイッチをオフにします。すべて無効化 をクリックして、作成したすべての PodMonitor 設定を無効にすることもできます。PodMonitor 設定を無効にすると、メトリックデータの収集が停止し、料金は発生しなくなります。
-
PodMonitor 設定の有効化:操作 列のスイッチをオンにします。
重要PodMonitor 設定が期待どおりのメトリックデータを収集できない理由を特定する方法については、「 設定した ServiceMonitor または PodMonitor が有効にならないのはなぜですか?」をご参照ください。
カスタムサービス検出の管理
カスタムサービス検出を作成し、ビジネス要件に基づいてメトリックを収集できます。
カスタムサービス検出の作成
-
左側のナビゲーションウィンドウで サービス検出 をクリックし、設定 タブをクリックします。
-
カスタムサービス検出 タブをクリックし、追加 をクリックします。
-
表示されたダイアログボックスで設定を入力し、保存 をクリックします。
設定例:
# scrape_configs 設定のみをサポートします。複数のジョブを設定する場合、yaml はリスト形式を使用します。その他の設定は prometheus.yaml を設定することで可能です。 - job_name: prometheus metrics_path: /metric static_configs: - targets: - 127.0.0.1:9090 - job_name: grafana_exporter scrape_interval: 30s scrape_timeout: 30s metrics_path: /metric static_configs: - targets: - 127.0.0.1:3000設定が完了すると、サービス検出が カスタムサービス検出 タブに表示されます。

次のステップ
カスタムサービス検出 タブでは、次の操作を実行できます:
-
サービス検出の変更:操作 列の 編集 をクリックします。
-
サービス検出の削除:操作 列の 削除 をクリックします。サービス検出を削除すると、メトリックデータは収集されなくなり、課金もされません。
参考資料
-
前述のサービス検出、ServiceMonitor 設定、および PodMonitor 設定を有効にした後、収集されたメトリックを表示する必要がある場合があります。詳細については、「メトリックの設定」をご参照ください。
-
メトリック収集によって発生する課金の詳細については、「 Managed Service for Prometheus を使用すると追加料金が請求される理由」をご参照ください。
-
ServiceMonitor を使用してサービス検出を作成する方法については、「ServiceMonitor 設定を使用してサービスを検出およびモニタリングする」をご参照ください。