5.3. CLI を使用した API のモニタリング


OpenShift Container Platform では、コマンドラインインターフェイス (CLI) から一部のモニタリングコンポーネントの Web サービス API にアクセスできます。

重要

特定の状況では、特にエンドポイントを使用して大量のメトリクスデータを取得、送信、またはクエリーする場合、API エンドポイントにアクセスするとクラスターのパフォーマンスとスケーラビリティーが低下する可能性があります。

この問題を回避するには、次の推奨事項を考慮してください。

  • エンドポイントに頻繁にクエリーを実行しないようにします。クエリーを 30 秒ごとに最大 1 つに制限します。
  • Prometheus の /federate エンドポイントを介してすべてのメトリクスデータを取得しないでください。このエンドポイントにクエリーを実行するのは、集約された限られたデータセットを取得する場合だけにしてください。たとえば、各要求で 1,000 未満のサンプルを取得すると、パフォーマンスが低下するリスクを最小限に抑えることができます。

5.3.1. モニタリング Web サービス API へのアクセスについて

次の監視スタックコンポーネントのコマンドラインから Web サービス API エンドポイントに直接アクセスできます。

  • Prometheus
  • Alertmanager
  • Thanos Ruler
  • Thanos Querier
重要

Thanos Ruler および Thanos Querier サービス API にアクセスするには、要求元のアカウントが namespace リソースに対するアクセス許可を get している必要があります。これは、アカウントに cluster-monitoring-view クラスターロールをバインドして付与することで実行できます。

モニタリングコンポーネントの Web サービス API エンドポイントにアクセスする場合は、以下の制限事項に注意してください。

  • Bearer Token 認証のみを使用して API エンドポイントにアクセスできます。
  • ルートの /api パスのエンドポイントにのみアクセスできます。Web ブラウザーで API エンドポイントにアクセスしようとすると、Application is not available エラーが発生します。Web ブラウザーでモニタリング機能にアクセスするには、OpenShift Container Platform Web コンソールを使用して、モニタリングダッシュボードを確認します。

5.3.2. 監視 Web サービス API へのアクセス

次の例は、コアプラットフォームの監視で使用される Alertmanager サービスのサービス API レシーバーをクエリーする方法を示しています。同様の方法を使用して、コアプラットフォーム Prometheus の prometheus-k8s サービスと Thanos Ruler の thanos-ruler サービスにアクセスできます。

前提条件

  • openshift-monitoring namespace の monitoring-alertmanager-edit ロールにバインドされているアカウントにログインしている。
  • Alertmanager API ルートを取得する権限を持つアカウントにログインしている。

    注記

    アカウントに Alertmanager API ルートの取得権限がない場合、クラスター管理者はルートの URL を提供できます。

手順

  1. 次のコマンドを実行して認証トークンを抽出します。

    Copy to Clipboard Toggle word wrap
    $ TOKEN=$(oc whoami -t)
  2. 次のコマンドを実行して、alertmanager-main API ルート URL を抽出します。

    Copy to Clipboard Toggle word wrap
    $ HOST=$(oc -n openshift-monitoring get route alertmanager-main -ojsonpath='{.status.ingress[].host}')
  3. 次のコマンドを実行して、サービス API レシーバーに Alertmanager をクエリーを実行します。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN" -k "https://$HOST/api/v2/receivers"

5.3.3. Prometheus のフェデレーションエンドポイントを使用したメトリクスのクエリー

Prometheus のフェデレーションエンドポイントを使用して、クラスターの外部のネットワークの場所からプラットフォームとユーザー定義のメトリクスを収集できます。これを実行するには、OpenShift Container Platform ルートを使用してクラスターの Prometheus /federate エンドポイントにアクセスします。

重要

メトリクスデータの取得の遅延は、フェデレーションを使用すると発生します。この遅延は、収集されたメトリクスの精度とタイムラインに影響を与えます。

フェデレーションエンドポイントを使用すると、特にフェデレーションエンドポイントを使用して大量のメトリクスデータを取得する場合に、クラスターのパフォーマンスおよびスケーラビリティーを低下させることもできます。これらの問題を回避するには、以下の推奨事項に従ってください。

  • Prometheus のフェデレーションエンドポイントを介してすべてのメトリクスデータを取得しようとしないでください。制限された集約されたデータセットを取得する場合のみ、クエリーを実行します。たとえば、各要求で 1,000 未満のサンプルを取得すると、パフォーマンスが低下するリスクを最小限に抑えることができます。
  • Prometheus のフェデレーションエンドポイントに対して頻繁にクエリーすることは避けてください。クエリーを 30 秒ごとに最大 1 つに制限します。

クラスター外に大量のデータを転送する必要がある場合は、代わりにリモート書き込みを使用します。詳細は、リモート書き込みストレージの設定 セクションを参照してください。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-monitoring-view クラスターロールを持つユーザーとしてクラスターにアクセスできるか、namespace リソースの get 権限を持つベアラートークンを取得している。

    注記

    Prometheus フェデレーションエンドポイントへのアクセスには、ベアラートークン認証のみを使用できます。

  • Prometheus フェデレーションルートを取得する権限を持つアカウントにログインしている。

    注記

    アカウントに Prometheus フェデレーションルートを取得する権限がない場合、クラスター管理者はルートの URL を提供できます。

手順

  1. 次のコマンドを実行してベアラートークンを取得します。

    Copy to Clipboard Toggle word wrap
    $ TOKEN=$(oc whoami -t)
  2. 次のコマンドを実行して、Prometheus フェデレーションルート URL を取得します。

    Copy to Clipboard Toggle word wrap
    $ HOST=$(oc -n openshift-monitoring get route prometheus-k8s-federate -ojsonpath='{.status.ingress[].host}')
  3. /federate ルートからメトリクスをクエリーを実行します。次のコマンド例は、up メトリクスをクエリーを実行します。

    Copy to Clipboard Toggle word wrap
    $ curl -G -k -H "Authorization: Bearer $TOKEN" https://$HOST/federate --data-urlencode 'match[]=up'

    出力例

    Copy to Clipboard Toggle word wrap
    # TYPE up untyped
    up{apiserver="kube-apiserver",endpoint="https",instance="10.0.143.148:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035322214
    up{apiserver="kube-apiserver",endpoint="https",instance="10.0.148.166:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035338597
    up{apiserver="kube-apiserver",endpoint="https",instance="10.0.173.16:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035343834
    ...

5.3.4. カスタムアプリケーションに関するクラスター外からのメトリクスへのアクセス

ユーザー定義プロジェクトを使用して独自のサービスを監視する場合は、クラスターの外部から Prometheus メトリクスをクエリーできます。このデータには、thanos-querier ルートを使用してクラスターの外部からアクセスします。

このアクセスは、認証に Bearer Token を使用することのみをサポートします。

前提条件

  • 「ユーザー定義プロジェクトのモニタリングの有効化」の手順に従い、独自のサービスをデプロイしている。
  • Thanos Querier API へのアクセス権限を持つ cluster-monitoring-view クラスターロールでアカウントにログインしている。
  • Thanos Querier API ルートの取得権限を持つアカウントにログインしています。

    注記

    アカウントに Thanos Querier API ルートの取得権限がない場合、クラスター管理者はルートの URL を提供できます。

手順

  1. 次のコマンドを実行して、Prometheus に接続するための認証トークンを展開します。

    Copy to Clipboard Toggle word wrap
    $ TOKEN=$(oc whoami -t)
  2. 次のコマンドを実行して、thanos-querier API ルート URL を展開します。

    Copy to Clipboard Toggle word wrap
    $ HOST=$(oc -n openshift-monitoring get route thanos-querier -ojsonpath='{.status.ingress[].host}')
  3. 次のコマンドを使用して、サービスが実行されている namespace に namespace を設定します。

    Copy to Clipboard Toggle word wrap
    $ NAMESPACE=ns1
  4. 次のコマンドを実行して、コマンドラインで独自のサービスのメトリクスに対してクエリーを実行します。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN" -k "https://$HOST/api/v1/query?" --data-urlencode "query=up{namespace='$NAMESPACE'}"

    出力には、Prometheus がスクレイピングしている各アプリケーション Pod のステータスが表示されます。

    フォーマット済み出力例

    Copy to Clipboard Toggle word wrap
    {
      "status": "success",
      "data": {
        "resultType": "vector",
        "result": [
          {
            "metric": {
              "__name__": "up",
              "endpoint": "web",
              "instance": "10.129.0.46:8080",
              "job": "prometheus-example-app",
              "namespace": "ns1",
              "pod": "prometheus-example-app-68d47c4fb6-jztp2",
              "service": "prometheus-example-app"
            },
            "value": [
              1591881154.748,
              "1"
            ]
          }
        ],
      }
    }

    注記
    • フォーマット済み出力例では、jq などのフィルタリングツールを使用して、フォーマット済みのインデントされた JSON を出力しています。jq の使用に関する詳細は、jq Manual (jq ドキュメント) を参照してください。
    • このコマンドは、ある時点でセレクターを評価する Thanos Querier サービスのインスタントクエリーエンドポイントを要求します。

5.3.5. Cluster Monitoring Operator のリソースリファレンス

このドキュメントでは、Cluster Monitoring Operator (CMO) によってデプロイおよび管理される次のリソースを説明します。

メトリクスデータを取得、送信、または照会するために API エンドポイント接続を設定する場合は、この情報を使用します。

重要

特定の状況では、特にエンドポイントを使用して大量のメトリクスデータを取得、送信、またはクエリーする場合、エンドポイントにアクセスするとクラスターのパフォーマンスとスケーラビリティーが低下する可能性があります。

これらの問題を回避するには、以下の推奨事項に従ってください。

  • エンドポイントに頻繁にクエリーを実行しないようにします。クエリーを 30 秒ごとに最大 1 つに制限します。
  • /federate エンドポイントを介してすべてのメトリクスデータを取得しようとしないでください。制限された集約されたデータセットを取得する場合のみ、クエリーを実行します。たとえば、各要求で 1,000 未満のサンプルを取得すると、パフォーマンスが低下するリスクを最小限に抑えることができます。

5.3.5.1. CMO ルートリソース

5.3.5.1.1. openshift-monitoring/alertmanager-main

ルーター経由で alertmanager-main サービスの /api エンドポイントを公開します。

5.3.5.1.2. openshift-monitoring/prometheus-k8s

ルーター経由で prometheus-k8s サービスの /api エンドポイントを公開します。

5.3.5.1.3. openshift-monitoring/prometheus-k8s-federate

ルーター経由で prometheus-k8s サービスの /federate エンドポイントを公開します。

5.3.5.1.4. openshift-user-workload-monitoring/federate

ルーター経由で prometheus-user-workload サービスの /federate エンドポイントを公開します。

5.3.5.1.5. openshift-monitoring/thanos-querier

ルーター経由で thanos-querier サービスの /api エンドポイントを公開します。

5.3.5.1.6. openshift-user-workload-monitoring/thanos-ruler

ルーター経由で thanos-ruler サービスの /api エンドポイントを公開します。

5.3.5.2. CMO サービスリソース

5.3.5.2.1. openshift-monitoring/prometheus-operator-admission-webhook

ポート 8443 で PrometheusRules および AlertmanagerConfig カスタムリソースを検証する受付 Webhook サービスを公開します。

5.3.5.2.2. openshift-user-workload-monitoring/alertmanager-user-workload

次のポートでクラスター内のユーザー定義の Alertmanager Web サーバーを公開します。

  • ポート 9095 は Alertmanager エンドポイントへのアクセスを提供します。アクセスを許可するには、openshift-user-workload-monitoring プロジェクトの monitoring-alertmanager-api-reader ロール (読み取り専用操作の場合) または monitoring-alertmanager-api-writer ロールにユーザーをバインドする必要があります。
  • ポート 9092 は、特定のプロジェクトに制限された Alertmanager エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーをプロジェクト内の monitoring-rules-edit クラスターロールまたは monitoring-edit クラスターロールにバインドする必要があります。
  • ポート 9097 は、/metrics エンドポイントへのアクセスのみを提供します。このポートは内部使用のためであり、他の用途では保証されません。
5.3.5.2.3. openshift-monitoring/alertmanager-main

次のポートでクラスター内の Alertmanager Web サーバーを公開します。

  • ポート 9094 は、すべての Alertmanager エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーを openshift-monitoring プロジェクトの monitoring-alertmanager-view ロール (読み取り専用操作の場合) または monitoring-alertmanager-edit ロールにバインドする必要があります。
  • ポート 9092 は、特定のプロジェクトに制限された Alertmanager エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーをプロジェクト内の monitoring-rules-edit クラスターロールまたは monitoring-edit クラスターロールにバインドする必要があります。
  • ポート 9097 は、/metrics エンドポイントへのアクセスのみを提供します。このポートは内部使用のためであり、他の用途では保証されません。
5.3.5.2.4. openshift-monitoring/kube-state-metrics

次のポートでクラスター内の kube-state-metrics /metrics エンドポイントを公開します。

  • ポート 8443 は、Kubernetes リソースメトリクスへのアクセスを提供します。このポートは内部使用のためであり、他の用途では保証されません。
  • ポート 9443 は、内部 kube-state-metrics メトリクスへのアクセスを提供します。このポートは内部使用のためであり、他の用途では保証されません。
5.3.5.2.5. openshift-monitoring/metrics-server

ポート 443 でメトリクス metrics-server Web サーバーを公開します。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.6. openshift-monitoring/monitoring-plugin

モニタリングプラグインサービスをポート 9443 で公開します。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.7. openshift-monitoring/node-exporter

ポート 9100 で /metrics エンドポイントを公開します。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.8. openshift-monitoring/openshift-state-metrics

次のポートでクラスター内の openshift-state-metrics /metrics エンドポイントを公開します。

  • ポート 8443 は OpenShift リソースメトリクスへのアクセスを提供します。このポートは内部使用のためであり、他の用途では保証されません。
  • ポート 9443 は、内部 openshift-state-metrics メトリクスへのアクセスを提供します。このポートは内部使用のためであり、他の用途では保証されません。
5.3.5.2.9. openshift-monitoring/prometheus-k8s

クラスター内の Prometheus Web サーバーを次のポートで公開します。

  • ポート 9091 は、すべての Prometheus エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーを cluster-monitoring-view クラスターロールにバインドする必要があります。
  • ポート 9092 は、/metrics および /federate エンドポイントへのアクセスのみを提供します。このポートは内部使用のためであり、他の用途では保証されません。
5.3.5.2.10. openshift-user-workload-monitoring/prometheus-operator

ポート 8443 で /metrics エンドポイントを公開します。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.11. openshift-monitoring/prometheus-operator

ポート 8443 で /metrics エンドポイントを公開します。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.12. openshift-user-workload-monitoring/prometheus-user-workload

クラスター内の Prometheus Web サーバーを次のポートで公開します。

  • ポート 9091 は、/metrics エンドポイントへのアクセスのみを提供します。このポートは内部使用のためであり、他の用途では保証されません。
  • ポート 9092 は /federate エンドポイントへのアクセスのみを提供します。アクセスを許可するには、ユーザーを cluster-monitoring-view クラスターロールにバインドする必要があります。

これにより、ポート 10902 上の Thanos サイドカー Web サーバーの /metrics エンドポイントも公開されます。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.13. openshift-monitoring/telemeter-client

ポート 8443 で /metrics エンドポイントを公開します。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.14. openshift-monitoring/thanos-querier

次のポートでクラスター内の Thanos Querier Web サーバーを公開します。

  • ポート 9091 は、すべての Thanos Querier エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーを cluster-monitoring-view クラスターロールにバインドする必要があります。
  • ポート 9092 は、特定のプロジェクトに制限された /api/v1/query/api/v1/query_range//api/v1/labels/api/v1/label/*/values、および /api/v1/series エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーをプロジェクト内の view クラスターロールにバインドする必要があります。
  • ポート 9093 は、特定のプロジェクトに制限された /api/v1/alerts および /api/v1/rules エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーをプロジェクトの monitoring-rules-editmonitoring-edit、または monitoring-rules-view クラスターロールにバインドする必要があります。
  • ポート 9094 は、/metrics エンドポイントへのアクセスのみを提供します。このポートは内部使用のためであり、他の用途では保証されません。
5.3.5.2.15. openshift-user-workload-monitoring/thanos-ruler

次のポートでクラスター内の Thanos Ruler Web サーバーを公開します。

  • ポート 9091 は、すべての Thanos Ruler エンドポイントへのアクセスを提供します。アクセスを許可するには、ユーザーを cluster-monitoring-view クラスターロールにバインドする必要があります。
  • ポート 9092 は /metrics エンドポイントへのアクセスのみを提供します。このポートは内部使用のためであり、他の用途では保証されません。

これにより、ポート 10901 上の gRPC エンドポイントも公開されます。このポートは内部使用のためであり、他の用途では保証されません。

5.3.5.2.16. openshift-monitoring/cluster-monitoring-operator

ポート 8443 で /metrics エンドポイントを公開します。このポートは内部使用のためであり、他の用途では保証されません。

5.3.6. 関連情報

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.