Chapitre 16. Dépannage des problèmes de surveillance
16.1. Déterminer pourquoi les mesures définies par l'utilisateur ne sont pas disponibles
ServiceMonitor
vous permettent de déterminer comment utiliser les métriques exposées par un service dans des projets définis par l'utilisateur. Suivez les étapes décrites dans cette procédure si vous avez créé une ressource ServiceMonitor
mais que vous ne voyez pas les métriques correspondantes dans l'interface utilisateur des métriques.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez activé et configuré la surveillance des charges de travail définies par l'utilisateur.
-
Vous avez créé l'objet
user-workload-monitoring-config
ConfigMap
. -
Vous avez créé une ressource
ServiceMonitor
.
Procédure
Check that the corresponding labels match dans les configurations des services et des ressources
ServiceMonitor
.Obtenir le label défini dans le service. L'exemple suivant interroge le service
prometheus-example-app
dans le projetns1
:
Copy to clipboardCopied$ oc -n ns1 get service prometheus-example-app -o yaml
Exemple de sortie
Copy to clipboardCopiedlabels: app: prometheus-example-app
Vérifiez que l'étiquette
matchLabels
app
dans la configuration de la ressourceServiceMonitor
correspond à l'étiquette produite à l'étape précédente :
Copy to clipboardCopied$ oc -n ns1 get servicemonitor prometheus-example-monitor -o yaml
Exemple de sortie
spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-app
NoteVous pouvez vérifier les étiquettes de service et de ressource
ServiceMonitor
en tant que développeur disposant d'autorisations de visualisation pour le projet.
Inspect the logs for the Prometheus Operator dans le projet
openshift-user-workload-monitoring
.Liste les pods du projet
openshift-user-workload-monitoring
:
Copy to clipboardCopied$ oc -n openshift-user-workload-monitoring get pods
Exemple de sortie
Copy to clipboardCopiedNAME 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
Obtenez les journaux du conteneur
prometheus-operator
dans le podprometheus-operator
. Dans l'exemple suivant, le module s'appelleprometheus-operator-776fcbbd56-2nbfm
:
Copy to clipboardCopied$ oc -n openshift-user-workload-monitoring logs prometheus-operator-776fcbbd56-2nbfm -c prometheus-operator
En cas de problème avec le moniteur de service, les journaux peuvent contenir une erreur similaire à cet exemple :
Copy to clipboardCopiedlevel=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
Review the target status for your endpoint sur la page Metrics targets dans l'interface de la console web de OpenShift Container Platform.
-
Connectez-vous à la console web de OpenShift Container Platform et naviguez vers Observe
Targets dans la perspective Administrator. - Localisez le point de terminaison des métriques dans la liste et vérifiez l'état de la cible dans la colonne Status.
- Si l'adresse Status est Down, cliquez sur l'URL du point de terminaison pour obtenir plus d'informations sur la page Target Details relative à cette cible de mesure.
-
Connectez-vous à la console web de OpenShift Container Platform et naviguez vers Observe
Configure debug level logging for the Prometheus Operator dans le projet
openshift-user-workload-monitoring
.Modifiez l'objet
user-workload-monitoring-config
ConfigMap
dans le projetopenshift-user-workload-monitoring
:
Copy to clipboardCopied$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
Ajoutez
logLevel: debug
pourprometheusOperator
sousdata/config.yaml
pour définir le niveau du journal àdebug
:
Copy to clipboardCopiedapiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheusOperator: logLevel: debug
Enregistrez le fichier pour appliquer les modifications.
NoteLe site
prometheus-operator
du projetopenshift-user-workload-monitoring
redémarre automatiquement lorsque vous appliquez la modification du niveau de journalisation.Confirmez que le niveau de journalisation
debug
a été appliqué au déploiementprometheus-operator
dans le projetopenshift-user-workload-monitoring
:
Copy to clipboardCopied$ oc -n openshift-user-workload-monitoring get deploy prometheus-operator -o yaml | grep "log-level"
Exemple de sortie
Copy to clipboardCopied- --log-level=debug
La journalisation de niveau débogage montre tous les appels effectués par l'opérateur Prometheus.
Vérifiez que le pod
prometheus-operator
fonctionne :
Copy to clipboardCopied$ oc -n openshift-user-workload-monitoring get pods
NoteSi une valeur Prometheus Operator
loglevel
non reconnue est incluse dans la carte de configuration, le podprometheus-operator
peut ne pas redémarrer avec succès.-
Examinez les journaux de débogage pour voir si l'opérateur Prometheus utilise la ressource
ServiceMonitor
. Examinez les journaux pour voir s'il y a d'autres erreurs connexes.
Ressources supplémentaires
- Création d'une carte de configuration de surveillance de la charge de travail définie par l'utilisateur
-
Pour savoir comment créer une ressource
ServiceMonitor
ouPodMonitor
, reportez-vous à la section Spécification de la surveillance d'un service - Voir Accès aux cibles de métriques dans la perspective de l'administrateur