This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第9章 モニタリング関連の問題のトラブルシューティング
9.1. ユーザー定義のメトリクスが利用できない理由の調査 リンクのコピーリンクがクリップボードにコピーされました!
ServiceMonitor リソースを使用すると、ユーザー定義プロジェクトでサービスによって公開されるメトリクスの使用方法を判別できます。ServiceMonitor リソースを作成している場合で、メトリクス UI に対応するメトリクスが表示されない場合は、この手順で説明されるステップを実行します。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc) がインストールされている。 - ユーザー定義のワークロードのモニタリングを有効にし、設定している。
-
user-workload-monitoring-configConfigMapオブジェクトを作成している。 -
ServiceMonitorリソースを作成している。
手順
サービスおよび
ServiceMonitorリソース設定で、対応するラベルの一致を確認 します。サービスに定義されたラベルを取得します。以下の例では、
ns1プロジェクトのprometheus-example-appサービスをクエリーします。oc -n ns1 get service prometheus-example-app -o yaml
$ oc -n ns1 get service prometheus-example-app -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
labels: app: prometheus-example-applabels: app: prometheus-example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow ServiceMonitorリソース設定のmatchLabelsappラベルが直前のステップのラベルの出力と一致することを確認します。oc -n ns1 get servicemonitor prometheus-example-monitor -o yaml
$ oc -n ns1 get servicemonitor prometheus-example-monitor -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-appspec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記プロジェクトの表示パーミッションを持つ開発者として、サービスおよび
ServiceMonitorリソースラベルを確認できます。
openshift-user-workload-monitoringプロジェクトの Prometheus Operator のログを検査します。openshift-user-workload-monitoringプロジェクトの Pod を一覧表示します。oc -n openshift-user-workload-monitoring get pods
$ oc -n openshift-user-workload-monitoring get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE prometheus-operator-776fcbbd56-2nbfm 2/2 Running 0 132m prometheus-user-workload-0 5/5 Running 1 132m prometheus-user-workload-1 5/5 Running 1 132m thanos-ruler-user-workload-0 3/3 Running 0 132m thanos-ruler-user-workload-1 3/3 Running 0 132m
NAME READY STATUS RESTARTS AGE prometheus-operator-776fcbbd56-2nbfm 2/2 Running 0 132m prometheus-user-workload-0 5/5 Running 1 132m prometheus-user-workload-1 5/5 Running 1 132m thanos-ruler-user-workload-0 3/3 Running 0 132m thanos-ruler-user-workload-1 3/3 Running 0 132mCopy to Clipboard Copied! Toggle word wrap Toggle overflow prometheus-operatorPod のprometheus-operatorコンテナーからログを取得します。以下の例では、Pod はprometheus-operator-776fcbbd56-2nbfmになります。oc -n openshift-user-workload-monitoring logs prometheus-operator-776fcbbd56-2nbfm -c prometheus-operator
$ oc -n openshift-user-workload-monitoring logs prometheus-operator-776fcbbd56-2nbfm -c prometheus-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスモニターに問題がある場合、ログには以下のようなエラーが含まれる可能性があります。
level=warn ts=2020-08-10T11:48:20.906739623Z caller=operator.go:1829 component=prometheusoperator msg="skipping servicemonitor" error="it accesses file system via bearer token file which Prometheus specification prohibits" servicemonitor=eagle/eagle namespace=openshift-user-workload-monitoring prometheus=user-workload
level=warn ts=2020-08-10T11:48:20.906739623Z caller=operator.go:1829 component=prometheusoperator msg="skipping servicemonitor" error="it accesses file system via bearer token file which Prometheus specification prohibits" servicemonitor=eagle/eagle namespace=openshift-user-workload-monitoring prometheus=user-workloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Prometheus UI でプロジェクトのターゲットステータスを直接確認します。
openshift-user-workload-monitoringプロジェクトで Prometheus インスタンスへのポート転送を確立します。oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
$ oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Web ブラウザーで http://localhost:9090/targets を開き、 Prometheus UI でプロジェクトのターゲットのステータスを直接確認します。ターゲットに関連するエラーメッセージがあるかどうかを確認します。
openshift-user-workload-monitoringプロジェクトで Prometheus Operator のデバッグレベルのロギングを設定 します。openshift-user-workload-monitoringプロジェクトでuser-workload-monitoring-configConfigMapオブジェクトを編集します。oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow prometheusOperatorのlogLevel: debugをdata/config.yamlに追加し、ログレベルをdebugに設定します。apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheusOperator: logLevel: debugapiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheusOperator: logLevel: debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を適用するためにファイルを保存します。
注記openshift-user-workload-monitoringプロジェクトのprometheus-operatorは、ログレベルの変更時に自動的に再起動します。debugログレベルがopenshift-user-workload-monitoringプロジェクトのprometheus-operatorデプロイメントに適用されていることを確認します。oc -n openshift-user-workload-monitoring get deploy prometheus-operator -o yaml | grep "log-level"
$ oc -n openshift-user-workload-monitoring get deploy prometheus-operator -o yaml | grep "log-level"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
- --log-level=debug
- --log-level=debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow debug レベルのロギングにより、Prometheus Operator によって行われるすべての呼び出しが表示されます。
prometheus-operatorPod が実行されていることを確認します。oc -n openshift-user-workload-monitoring get pods
$ oc -n openshift-user-workload-monitoring get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記認識されない Prometheus Operator の
loglevel値が設定マップに含まれる場合、prometheus-operatorPod が正常に再起動されない可能性があります。-
デバッグログを確認し、Prometheus Operator が
ServiceMonitorリソースを使用しているかどうかを確認します。ログで他の関連するエラーの有無を確認します。