Часто встречающиеся проблемы и пути их устранения#
Устранение неполадок мониторинга: недоступность пользовательских метрик#
Ресурсы ServiceMonitor позволяют определить, как использовать метрики, предоставляемые службой, в определяемых пользователем проектах. Выполните действия, описанные в сценарии, если при создании ServiceMonitor не появилось соответствующих метрик в пользовательском интерфейсе.
Предварительные условия#
доступ к кластеру с ролью администратора;
установлен инструмент CLI (
oc);включен и настроен мониторинг для определяемых пользователем рабочих нагрузок;
создан
user-workload-monitoring-configConfigMap-объект;создан ресурс
ServiceMonitor.
Последовательность выполнения#
Убедитесь, что соответствующие метки совпадают в конфигурациях службы и
ServiceMonitor. Получите метку, определенную в сервисе. В следующем примере запрашивается службаprometheus-example-appв проектеns1:oc -n ns1 get service prometheus-example-app -o yamlПример вывода:
labels: app: prometheus-example-appУбедитесь, что метка
matchLabels appв конфигурации ресурсаServiceMonitorсоответствует выходной метке на предыдущем шаге:oc -n ns1 get servicemonitor prometheus-example-monitor -o yamlПример вывода:
spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-appПросмотрите журналы Prometheus Operator в проекте
openshift-user-workload-monitoring:oc -n openshift-user-workload-monitoring get podsПример вывода:
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Получите журналы из контейнера
prometheus-operatorв podprometheus-operator.Запустите эту команду, чтобы увидеть, существует ли ConfigMap в кластере DropApp. Например:
oc -n openshift-user-workload-monitoring logs prometheus-operator-776fcbbd56-2nbfm -c prometheus-operatorПросмотрите целевой статус проекта непосредственно в пользовательском интерфейсе Prometheus.
Установите переадресацию портов на экземпляр Prometheus в
openshift-user-workload-monitoring:
oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090Откройте
http://localhost:9090/targetsв браузере и просмотрите состояние цели проекта непосредственно в пользовательском интерфейсе Prometheus. Проверьте сообщения об ошибках, относящиеся к цели.
Настройте ведение журнала отладки для оператора Prometheus.
Отредактируйте объект
user-workload-monitoring-configв проектеopenshift-user-workload-monitoring:
oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configДобавьте
logLevel: debugдляprometheusOperatorвdata/config.yaml, чтобы установить уровень ведения журналаdebug:
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheusOperator: logLevel: debugСохраните файл, чтобы применить изменения.
Убедитесь, что уровень журнала
debugбыл применен к развертываниюprometheus-operatorв проектеopenshift-user-workload-monitoring:
oc -n openshift-user-workload-monitoring get deploy prometheus-operator -o yaml | grep "log-level"Пример вывода:
- --log-level=debugВ журнале уровня отладки будут показаны все вызовы, сделанные оператором Prometheus.
Убедитесь, что pod
prometheus-operatorмработает:
oc -n openshift-user-workload-monitoring get pods
Решение#
Пользовательские метрики доступны.