Dans ce laboratoire, vous apprendrez les bases de la création d'un tableau de bord de surveillance à l'aide de Grafana. Grafana est une plateforme open-source populaire pour la surveillance et l'observabilité qui vous permet d'interroger, de visualiser, d'alerter et d'explorer vos métriques, où qu'elles soient stockées.
Nous travaillerons avec un environnement préconfiguré qui comprend :
Grafana : L'outil de visualisation où vous construirez votre tableau de bord.
Prometheus : Une base de données de séries temporelles qui servira de source de données pour Grafana.
Node Exporter : Un agent qui collecte les métriques matérielles et du système d'exploitation de la machine hôte et les expose pour que Prometheus puisse les récupérer (scrape).
Votre objectif est de construire un tableau de bord simple à partir de zéro qui affiche l'utilisation du CPU en temps réel de l'environnement du laboratoire.
Explorer l'environnement préconfiguré
Dans cette étape, vous vous familiariserez avec l'environnement du laboratoire. Le script de configuration a déjà démarré trois conteneurs Docker qui forment une pile de surveillance de base.
Tout d'abord, vérifions que tous les conteneurs sont en cours d'exécution. Ouvrez le terminal et exécutez la commande suivante :
docker ps
Vous devriez voir une sortie similaire à celle-ci, listant les conteneurs grafana, prometheus et node-exporter. Les identifiants exacts des conteneurs seront différents.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1a2b3c4d5e6 grafana/grafana "/run.sh" 15 seconds ago Up 14 seconds 0.0.0.0:3000->8080/tcp grafana
f6e5d4c3b2a1 prom/prometheus "/bin/prometheus --c…" 20 seconds ago Up 19 seconds 0.0.0.0:9090->9090/tcp prometheus
a9b8c7d6e5f4 prom/node-exporter "/bin/node_exporter …" 25 seconds ago Up 24 seconds 0.0.0.0:9100->9100/tcp node-exporter
Voici une brève description de chaque composant :
node-exporter : Collecte les métriques système de la machine virtuelle.
prometheus : Récupère (scrape) et stocke les métriques de node-exporter.
grafana : Interroge Prometheus et visualise les données.
Maintenant, accédons à l'interface utilisateur de Grafana.
En raison des paramètres du proxy inverse de la VM LabEx, passez à l'interface de bureau, cliquez sur le navigateur Firefox dans le coin supérieur gauche et entrez http://localhost:8080 dans la barre d'adresse. Vous devriez voir la page de connexion de Grafana.
Connectez-vous avec les identifiants par défaut :
Nom d'utilisateur : admin
Mot de passe : admin
Il vous sera peut-être demandé de changer le mot de passe. Vous pouvez cliquer sur Skip pour ce laboratoire.
Une fois connecté, vérifions la connexion à la source de données.
Dans le menu de gauche, cliquez sur l'icône Connections (ressemble à une prise ou un connecteur).
Sur la page Connections, cliquez sur Data sources.
Vous verrez une source de données préconfigurée nommée Prometheus. Cette connexion a été automatiquement configurée par le script d'initialisation, permettant à Grafana d'interroger le conteneur Prometheus.
Vous êtes maintenant prêt à construire votre premier tableau de bord.
Créer un nouveau tableau de bord dans l'interface Grafana
Dans cette étape, vous allez créer un nouveau tableau de bord vide dans l'interface Grafana. Un tableau de bord est une collection d'un ou plusieurs panneaux disposés en grille.
Dans l'interface Grafana, localisez la barre latérale gauche.
Dans le menu qui apparaît, sélectionnez Dashboard.
Cette action crée un nouveau tableau de bord vide. Vous êtes immédiatement invité à ajouter votre premier panneau. Un panneau est le bloc de construction de visualisation de base dans Grafana.
Cliquez sur le bouton Add visualization au centre de l'écran pour accéder à l'éditeur de panneau.
Vous êtes maintenant dans l'éditeur de panneau, où vous définirez votre requête de données et personnaliserez sa visualisation à l'étape suivante.
Ajouter un panneau avec une requête PromQL pour l'utilisation du CPU
Dans cette étape, vous allez ajouter un panneau à votre tableau de bord et utiliser une requête PromQL (Prometheus Query Language) pour récupérer les données d'utilisation du CPU.
Vous devriez déjà être dans l'éditeur de panneau depuis l'étape précédente.
En bas de l'éditeur, vous trouverez la section des requêtes. La source de données Prometheus devrait déjà être sélectionnée par défaut.
Dans la zone de texte Metrics browser, entrez la requête PromQL suivante. Vous pouvez la copier-coller directement.
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
Analysons cette requête :
node_cpu_seconds_total{mode="idle"} : Il s'agit d'une métrique de Node Exporter qui compte le nombre total de secondes pendant lesquelles le CPU a été en état "idle" (inactif).
rate(...[5m]) : Cette fonction calcule le taux moyen d'augmentation par seconde du temps inactif sur les 5 dernières minutes. Le résultat est une valeur comprise entre 0 et 1, représentant la fraction du temps pendant laquelle le CPU était inactif.
avg by (instance) : Ceci agrège les résultats, ce qui est utile si vous avez plusieurs CPU ou machines.
* 100 : Ceci convertit la valeur fractionnaire en pourcentage (par exemple, 0,95 devient 95 %).
100 - ... : Enfin, nous soustrayons le pourcentage d'inactivité de 100 pour obtenir le pourcentage d'utilisation active du CPU.
Après avoir entré la requête, un graphique devrait apparaître automatiquement dans le volet d'aperçu en haut, montrant l'utilisation du CPU au fil du temps.
Votre panneau affiche maintenant des données, mais il peut être amélioré avec un meilleur étiquetage et formatage, ce que vous ferez à l'étape suivante.
Personnaliser et enregistrer le tableau de bord
Dans cette étape, vous allez personnaliser l'apparence du panneau et enregistrer le tableau de bord. Un panneau bien configuré est beaucoup plus facile à comprendre d'un coup d'œil.
Sur le côté droit de l'éditeur de panneau, localisez la section Panel options.
Dans le champ Title, entrez un nom descriptif pour votre panneau, tel que CPU Usage %. Vous verrez le titre se mettre à jour dans le volet d'aperçu.
Faites défiler vers le bas dans les options de droite jusqu'à trouver la section Standard options.
Cliquez sur le menu déroulant Unit. Il indique actuellement "None".
Dans la boîte de recherche qui apparaît, tapez percent et sélectionnez Percent (0-100) dans la liste. Cela formatera correctement l'axe Y de votre graphique pour afficher un symbole de pourcentage.
Maintenant que le panneau est configuré, appliquez les modifications et revenez à la vue du tableau de bord.
Cliquez sur le bouton Save dans le coin supérieur droit de l'écran.
Vous êtes maintenant de retour sur votre tableau de bord, qui contient votre nouveau panneau. La dernière étape consiste à enregistrer l'ensemble du tableau de bord.
Cliquez sur l'icône Save dashboard (ressemble à une disquette) dans le coin supérieur droit de l'en-tête du tableau de bord.
Une boîte de dialogue "Save dashboard" apparaîtra. Entrez un nom pour votre tableau de bord, par exemple, My System Dashboard.
Cliquez sur le bouton Save.
Félicitations ! Vous avez créé et enregistré avec succès votre premier tableau de bord Grafana.
Résumé
Dans ce laboratoire, vous avez construit avec succès un tableau de bord Grafana à partir de zéro. Vous avez commencé avec une pile de surveillance préconfigurée et effectué les actions clés suivantes :
Exploration de l'environnement composé de conteneurs Grafana, Prometheus et Node Exporter.
Navigation dans l'interface utilisateur de Grafana pour créer un nouveau tableau de bord vide.
Ajout d'un panneau de visualisation et écriture d'une requête PromQL pour récupérer les données d'utilisation du CPU à partir de la source de données Prometheus.
Personnalisation du titre et du formatage de l'unité du panneau pour une meilleure lisibilité.
Enregistrement du tableau de bord complété pour une utilisation future.
Vous avez maintenant appris le flux de travail fondamental pour créer des visualisations dans Grafana. Vous pouvez approfondir ces connaissances en ajoutant d'autres panneaux à votre tableau de bord pour surveiller d'autres métriques système comme l'utilisation de la mémoire, les E/S disque ou le trafic réseau.