すべてのプロダクト
Search
ドキュメントセンター

Managed Service for Prometheus:構成したServiceMonitorまたはPodMonitorが有効にならないのはなぜですか?

最終更新日:Dec 27, 2024

問題

Managed Service for PrometheusでPrometheusインスタンスにServiceMonitorまたはPodMonitorを追加した後、Prometheusインスタンスが期待どおりに監視データを収集しません。

トラブルシューティング

ターゲットが検出されているかどうかを確認します。

  1. Managed Service for Prometheusコンソールにログインします。

  2. 左側のナビゲーションペインで、インスタンスをクリックします。

  3. 管理するPrometheusインスタンスの名前をクリックします。左側のナビゲーションペインで、サービスディスカバリをクリックします。サービスディスカバリページで、[ターゲット] タブをクリックし、ターゲットが検出されているかどうかを確認します。

    • ターゲットが検出されない場合は、次の手順を実行します。

      1. ServiceMonitorまたはPodMonitorが有効になっているかどうかを確認します。

        サービスディスカバリーページで、構成タブをクリックし、次にServiceMonitorまたはPodMonitorタブをクリックします。次の図(アイコン1)の状態は、ServiceMonitorまたはPodMonitorが有効になっていることを示しています。次の手順に進みます。vr

      2. 前の手順で確認したServiceMonitorまたはPodMonitorリソースがContainer Service for Kubernetes(ACK)クラスターに配信されているかどうかを確認します。

        1. ACKコンソールにログインします。

        2. 左側のナビゲーションペインで、クラスターをクリックします。クラスターページで、確認するクラスターを見つけ、クラスターの名前をクリックします。

        3. 左側のナビゲーションペインで、ワークロード > カスタムリソースを選択します。

        4. CRDタブをクリックし、次の図のアイコン1で示されているように、名前列でServiceMonitorまたはPodMonitorをクリックします。リソースオブジェクトタブにリダイレクトされます。名前空間を選択して、有効にしたServiceMonitorまたはPodMonitorがリストにあるかどうかを確認します。de

          • ServiceMonitorまたはPodMonitorがリストにない場合は、Managed Service for Prometheusコンソールにログインし、サービスディスカバリーページの構成タブのアクション列でServiceMonitorまたはPodMonitorを再度有効にすることができます。

          • ServiceMonitorまたはPodMonitorが表示されている場合は、次の手順に進みます。

      3. ラベルセレクターを使用して、期待どおりにPodまたはサービスを選択できるかどうかを確認します。

        次のコマンドを実行します。結果が返されない場合は、ラベルセレクターまたは名前空間セレクターを構成して、期待どおりにPodまたはサービスを選択する必要があります。

        # 名前空間セレクターで "any" が "true" に設定されていると仮定します。
        kubectl get pod/service -l label_key=label_value -A
        # 名前空間が指定されている場合は、指定された名前空間が使用されます。
        kubectl get pod/service -l label_key=label_value -n xx_namespace_xx
      4. ポート設定を確認します。

        1. portフィールドを使用する場合は、pod構成のspec.containers[i].ports[i].nameの値、またはservices構成のspec.ports[i].nameの値に設定します。

        2. targetPortフィールドを使用する場合は、spec.containers[i].ports[i].containerPortpod構成のspec.containers[i].ports[i].containerPortの値、またはservicesサービス構成のの値に設定します。

          次の図は例を示しています。

          image.png

    • ターゲットが検出されたが赤で表示されている場合は、次の手順を実行します。

      エラー列に表示されている情報に基づいて問題のトラブルシューティングを行います。検出されたターゲットが赤で表示されている場合は、ターゲットエラーが原因でPrometheusインスタンスが監視データを取得できなかったことを示します。

    • ターゲットが検出され、そのステータスがUP(アイコン1)であるが、期待どおりに監視データが収集されない場合は、次の手順を実行します。

      前の図のアイコン2で示されているように、ターゲットのエンドポイントをクリックします。システムはターゲットから生のデータを直接プルします。生のデータに監視する監視メトリックが含まれているかどうかを確認できます。生のデータに監視する監視メトリックが含まれている場合は、サービスディスカバリーページのメトリックタブの右上隅にある破棄されたメトリックの構成をクリックできます。表示されるダイアログボックスで、破棄されたメトリックに監視するメトリックが含まれているかどうかを確認します。メトリックを削除して再度有効にすることができます。詳細については、メトリックの構成を参照してください。

参考資料

  • ServiceMonitorまたはPodMonitorを手動で構成する方法については、ACKサービスディスカバリーを参照してください。

  • クラスターでServiceMonitorまたはPodMonitorを構成した後、サービスディスカバリーによって収集されたメトリックを表示する必要がある場合があります。詳細については、メトリックの破棄を参照してください。

  • クラスターでServiceMonitorまたはPodMonitorが同期された後、収集されたメトリックに対して課金される場合があります。詳細については、課金(新規)および課金(旧)を参照してください。