Superviser son cluster Kubernetes avec Prometheus et Grafana
Vous venez d’installer un cluster Kubernetes et vous voulez savoir s’il se porte bien ? Découvrez deux solutions Open Source pour vous aider à le superviser, et donc y voir plus clair.
Des solutions Open Source pour superviser votre cluster Kubernetes
Pour vous aider à superviser votre cluster Kubernetes, tournez-vous vers Prometheus et Grafana.
Prometheus est un outil open source de monitoring créé pour le Cloud.
Il s’intègre très facilement dans un cluster K8s,déployé chez votre hébergeur préféré.
C’est lui qui va se charger de collecter les métriques exposées, entre autres, par l’API de Kubernetes, et stocker le tout dans sa base de données TSDB (Time Series Database).
Grafana est un logiciel open source, qui fonctionne de pair avec Prometheus (et d’autres sources de données).
Il permet de faire des requêtes PromQL (Prometheus Query Language) et ainsi d’exploiter les métriques stockées par Prometheus.
Rapidement, vous allez pouvoir importer, ou créer et visualiser votre premier dashboard, contenant quantités de panels, sous différentes formes (graphiques, jauge, texte etc), comme ci-dessous :
Process de supervision de cluster Kubernetes
L’installation se fait très simplement, à condition d’avoir déjà un cluster Kubernetes opérationnel, en suivant la procédure du repo Git.
kubectl apply --filename https://raw.githubusercontent.com/giantswarm/prometheus/master/manifests-all.yaml
Cette commande va créer sur votre cluster K8s toutes les ressources nécessaires au bon fonctionnement de Prometheus / Grafana, au sein d’un namespace monitoring.
Vous pouvez constater cela en tapant :
kubectl get pods,svc,replicaset,deploy -n monitoring
Pour accéder à l’interface web, il faut aller un peu plus loin, Kubernetes n’exposant pas par défaut le service vers l’extérieur. Le plus simple est de forwarder le port de Grafana comme ceci :
kubectl port-forward --namespace monitoring service/grafana 3000:3000
Et si votre cluster n’est pas installé sur votre poste local, il faut maintenant faire un tunnel ssh entre votre poste et le node Kubernetes master, comme ceci :
ssh -L 3000:127.0.0.1:3000 USER@VM_MASTER_KUBE
Voilà, vous êtes prêt pour tester Grafana, en naviguant sur 127.0.0.1:3000. Les identifiants de Grafana par défaut sont admin / admin.
Si vous êtes impatient, il existe une quantité de dashboards prêts à être importé ici.
Parmi ceux-ci, voici un exemple de dashboard montrant des informations basiques sur le cluster.
Il faut, au choix, récupérer l’ID (ici 7249) ou copier le fichier JSON, puis l’importer sur Grafana, en précisant la source de données qui est ici Prometheus.
Et enfin, tout se met en mouvement et en couleur sous nos yeux ! Vous êtes à présent opérationnel pour superviser votre cluster Kubernetes dans les meilleurs conditions avec Prometheus et Grafana.
Pour aller plus loin
- Depuis la version 4, Grafana embarque un système d’alertes, pour être notifié dès qu’un seuil est dépassé.
- De nombreux plugins existent pour étendre les possibilités de Grafana, exemple avec le plugin Zabbix, qui permet de créer des dashboards à partir des métriques récoltés par Zabbix.
Faites-vous accompagner par un expert !
Syloé vous accompagne et vous conseille dans la supervision de vos serveurs, vos applications métiers et systèmes. Contactez l’un de nos experts pour plus d’informations.
Cas client : Architecture et infogérance sur le Cloud Azure - Blog Syloé
[…] Dans le cadre de ce projet, nous utilisons des solutions logicielles particulièrement adaptées au cloud. Par exemple, la supervision est gérée avec AlertManager, Prometheus et Grafana, qui permettent de remonter et d’afficher les métriques des ressources créées dynamiquement par le cluster. […]
Nagstamon : Superviser la supervision - Blog Syloé
[…] à l’article sur Grafana et Prometheus, nous revenons avec un sujet de supervision plus traditionnel et plus précisément sur une solution […]