Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Prometheus et Grafana
  3. Ajout de tableaux de bord
Extrait - Prometheus et Grafana Surveillez vos applications et composants système
Extraits du livre
Prometheus et Grafana Surveillez vos applications et composants système
2 avis
Revenir à la page d'achat du livre

Ajout de tableaux de bord

Objectifs du chapitre et prérequis

1. Contexte et prérequis

La surveillance de Docker et de ses containers est en place. Il est temps de mettre en place un suivi des différents composants à l’aide de tableaux de bord.

2. Fichiers téléchargeables

Vous pouvez récupérer les exemples sur le repository GitHub suivant : https://github.com/EditionsENI/prometheus-grafana

Vous pouvez également récupérer ces fichiers dans l’archive chapitre-11.tar.gz depuis la page Informations générales.

Gestion des tableaux de bord

1. Contexte

Grafana dispose d’une importante communauté d’utilisateurs qui mettent à disposition de nombreux tableaux de bord. Un excellent moyen de les échanger est de passer par le site de Grafana.

2. Import d’un tableau de bord

a. Présentation de la page de recherche des tableaux de bord

Sur le site de Grafana, en suivant la catégorie Grafana - Dashboards, il est possible de faire des recherches dans les tableaux de bord (https://grafana.com/grafana/dashboards). 

images/01.png

Page des tableaux de bord de Grafana

En descendant cette page, il devient possible de faire des recherches selon différents critères :

  • Par nom/description.

  • Par type de source de données (Data Source).

  • Par type de panneau.

  • Par catégorie (base de données, Docker, etc.).

  • Par collecteur.

images/02.png

Recherche de tableaux de bord

Dans le cas qui va suivre, l’utilisateur va chercher à mettre en place un tableau de bord pour le suivi des exporteurs système.

b. Recherche et choix d’un tableau de bord pour l’exporteur système

 Le site propose de nombreux tableaux de bord. Afin d’en trouver un adapté au suivi de l’exporteur système, depuis le formulaire de recherche de cette page, entrez les valeurs suivantes :

Dans le champ Name, entrez la valeur node exporter.

Dans le champ Data Source, sélectionnez Prometheus.

La recherche se lance automatiquement. N’hésitez pas à utiliser le champ Sort By (ordre de tri) à la valeur Downloads.

images/03.png

Résultat de recherche sur les termes « node exporter » trié par nombre de téléchargements

 Cliquez sur le premier résultat remonté (Prometheus Node Exporter Full). Au moment de la rédaction de ces lignes, il s’agit du lien https://grafana.com/grafana/dashboards/1860.

Retenez bien ce lien et surtout l’identifiant (1860), ils serviront pour la suite des opérations.

Le reste de la page met à disposition quelques informations supplémentaires, notamment :

  • des captures d’écran,

  • un exemple de déclaration à utiliser, notamment la valeur du champ job_name à la valeur node (ce qui correspond bien à nos déclarations),

  • les révisions existantes du tableau de bord (onglet Revisions),

  • les revues...

Automatisation de l’import par API

1. Contexte

Le tableau de bord est en place mais tout a été réalisé manuellement. Afin d’industrialiser un peu plus la démarche, l’automatisation de l’import va être abordée à l’aide de l’API.

Pour réaliser cette opération d’import, le compte et le mot de passe de l’administrateur peuvent être utilisés. Afin d’éviter d’utiliser ces droits d’accès directement, l’utilisateur va générer un jeton d’authentification (on parlera par la suite de clé d’API). Il servira ensuite à mettre à jour le tableau de bord directement en ligne de commande.

2. Création de la clé d’API

a. Génération de la clé depuis l’interface de Grafana

 Entrez dans l’interface de Grafana (http://127.0.0.1:3000 ou http://127.0.0.1:13000 en fonction de l’installation réalisée précédemment) en tant qu’administrateur (avec le compte admin par exemple).

 Sur la gauche de l’écran, passez la souris au-dessus de l’icône en forme de roue dentée (images/roue.PNG) et cliquez sur le lien API Keys.

 Sur l’écran qui apparaît, cliquez sur le bouton bleu New API Key. Dans l’interface qui apparaît, remplissez les champs suivants :

Le nom de la clé (Key name) : automate.

Le rôle attribué (Role) : Editor.

La durée de vie de la clé (Time to live) : laissez la valeur à vide.

images/09.png

Création d’une clé d’API ayant pour rôle Editor

 Ceci fait, cliquez sur le bouton Add. L’écran suivant donnera la valeur de la clé d’accès ainsi qu’un exemple de commande curl permettant de s’en servir. 

images/10.png

Exemple de clé générée par Grafana

Voici ci-dessous un exemple de valeur renvoyée :

eyJrIjoibExOMUR2lxQWtVTxxxMX0= 

Par la suite, les exemples s’appuieront sur l’utilisation de la commande curl. Ces exemples sont bien sûr tout à fait transposables dans n’importe quel autre langage.

b. Structure de la clé

Voici un exemple de commande curl permettant d’utiliser cette clé :

$ curl -H "Authorization:...

Utilisation du mécanisme d’approvisionnement

1. Présentation du mécanisme

Le mécanisme abordé précédemment est relativement intéressant et ouvre énormément de possibilités. Toutefois, cette technique a quelques inconvénients :

  • L’utilisation de l’API réclame certaines connaissances en programmation.

  • L’utilisateur doit générer un jeton d’accès.

  • Le jeton doit être stocké quelque part.

  • L’accès au jeton doit faire l’objet d’une protection.

  • Enfin, le jeton doit être renouvelé.

Ces opérations sont des obstacles à l’automatisation des besoins simples comme la gestion des tableaux de bord ou l’ajout de sources de données. Afin de simplifier la situation, l’utilisateur va aborder une technique liée au mécanisme d’approvisionnement (provisioning en anglais) pour ce type d’objet immuable.

Ce mécanisme - tout comme la définition des sources de données avec les containers Docker - s’appuie sur l’utilisation d’un fichier YAML déposé dans l’arborescence de Grafana.

La configuration automatique des sources de données (datasources) a été abordée dans le chapitre Déploiement via containers.

2. Déclaration de l’emplacement des tableaux de bord

a. Structure du fichier...