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. Intégration au système
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

Intégration au système

Objectifs du chapitre et prérequis

1. Contexte et prérequis

Le chapitre Découverte de Prometheus était consacré à la découverte de Prometheus et son lancement. Dans ce qui va suivre, l’utilisateur va se consacrer à l’intégration du moteur et de l’exporteur système dans une distribution Linux.

À noter que les instructions données par la suite sont réalisées manuellement. Dans le cas où ces opérations auraient besoin d’être répétées, le lecteur est invité à se tourner vers un outil d’automatisation comme Ansible (un livre sur cette thématique écrit par le même auteur est disponible aux Éditions ENI).

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-06.tar.gz depuis la page Informations générales.

Intégration de Prometheus

1. Contexte

Dans un des chapitres précédents, l’utilisateur a découvert comment lancer Prometheus directement depuis un terminal. Dans le cadre d’une découverte, cette méthode peut suffire. Toutefois, une utilisation plus réaliste exigera une intégration plus propre avec création de services dédiés. De ce point de vue, Grafana est mieux intégré puisque ce produit offre des paquets système réalisant directement cette intégration.

Ce chapitre sera consacré à l’installation d’un moteur Prometheus sur un système Linux classique. Pour une installation basée sur l’utilisation d’un container Docker ou au travers de Kubernetes, l’utilisateur pourra passer directement aux chapitres consacrés à ces thématiques.

Par la suite, l’intégration du service se fera à l’aide de systemd. Pour mémoire, il s’agit du mécanisme de démarrage des distributions Linux modernes. Il se retrouve indifféremment sur des distributions Red Hat Enterprise Linux/CentOS 7 et supérieures ou sur les distributions Ubuntu 15.04 et suivantes. Il vient remplacer le traditionnel mécanisme de démarrage Init introduit par Unix System V.

Pour plus d’information sur ce mécanisme, n’hésitez pas à consulter l’article https://fr.wikipedia.org/wiki/Systemd de Wikipedia.

2. Prérequis

La création de services sur Linux à l’aide de systemd réclame les droits de l’utilisateur root. Par la suite, l’utilisateur devra disposer de ces droits pour dérouler correctement l’ensemble des indications (à l’aide de sudo par exemple).

Les exemples s’appuieront sur l’utilisation d’un système Ubuntu 20.04 LTS. Toutefois, ils devraient pouvoir s’adapter très facilement à tout type de système Linux moderne.

Pour la partie faisant appel à LVM (mécanisme de gestion de volumétrie disque), l’utilisateur devra avoir préparé les groupes de volumes nécessaires ou en tout cas disposer des connaissances nécessaires à leur mise en place.

3. Préparation des prérequis système...

Intégration de l’exporteur système

1. Contexte

Contrairement à Prometheus, l’exporteur ne stocke aucun état et sa configuration par défaut est suffisante. Cette section sera consacrée à une intégration simple au même système Linux hébergeant le moteur Prometheus. 

Le lecteur découvrira également quelques fonctionnalités disponibles de l’exporteur (activation de modules optionnels et personnalisation de métriques).

2. Prérequis

L’exporteur système est relativement simple à déployer. En effet, les binaires sont autoporteurs et la configuration par défaut sera utilisée. Pour la suite, l’utilisateur réalisera les opérations suivantes :

  • Création d’un compte de service (utilisateur nodeexport).

  • Décompression des binaires de l’exporteur.

  • Enfin, création d’un service système.

3. Création du compte de service

La commande useradd permet de réaliser ces opérations en utilisant les options suivantes :

  • Nom du compte à créer (nodeexport).

  • Désactivation du home de l’utilisateur avec l’option --no-create-home.

  • Interdiction de connexion de l’utilisateur avec l’option --shell /bin/false.

Voici la commande complète précédée de sudo :

$ sudo useradd --no-create-home --shell /bin/false nodeexport 

4. Décompression des binaires de l’exporteur

Tout comme pour Prometheus, les fichiers de l’exporteur sont décompressés dans le répertoire /opt et en appliquant les droits à l’utilisateur...

Aller plus loin avec l’exporteur système

1. Contexte

L’exporteur système est parfait pour démarrer le déploiement de Prometheus. En effet, il permet d’exposer de nombreux indicateurs comme par exemple :

  • Les indicateurs système : CPU, mémoire, disque.

  • Les indicateurs physiques : température du processeur, carte mère, vitesse des ventilateurs.

Au-delà de ces indicateurs système purs, il est possible de récupérer des informations sur les éléments suivants :

  • L’état des services de systemd.

  • Le suivi personnalisé à l’aide de scripts spécifiques.

2. Aide en ligne de l’exporteur

L’exporteur système dispose d’options de démarrage. Pour connaître l’ensemble de ces options, lancez la commande node_exporter suivie de l’option --help :

$ /opt/node_exporter/node_exporter --help 

Voici un extrait renvoyé par la commande :

usage: node_exporter [<flags>] 
 
Flags: 
 -h, --help                     Show context-sensitive help ... 
     --collector.bcache.priorityStats   
                                Expose expensive priority stats. 
     --collector.cpu.info       Enables metric cpu_info 
     --collector.cpu.info.flags-include=... 
                                Filter the `flags` field in ... 
     --collector.cpu.info.bugs-include=... 
                                Filter the `bugs` field in ... 
... 
     --web.config=""            [EXPERIMENTAL] Path to config ... 
     --log.level=info           Only log messages with the ... 
     --log.format=logfmt        Output format of log messages... 
     --version                  Show application version. 

En plus des options classiques d’obtention...

Exporteur système pour Windows

1. Contexte

L’exporteur système, en plus d’être disponible sous Linux, existe pour Darwin (MacOS) ou sur les familles BSD (NetBSD et OpenBSD). En revanche, il n’est pas disponible pour Windows. Dans ce cas, il faut passer par un exporteur dédié : Windows Exporter.

Dans ce qui va suivre, l’utilisateur abordera la mise en place de l’exporteur Windows et son intégration dans Prometheus.

2. Téléchargement

L’exporteur se présente sous la forme d’un installeur classique Windows (fichier MSI) ou sous forme de fichier ZIP téléchargeable à l’emplacement suivant : https://github.com/prometheus-community/windows_exporter

Dans le cas d’un binaire Windows pour architecture AMD64 en version 0.16, le binaire portera le nom de windows_exporter-0.16.0-amd64.msi.

3. Installation

Lancez un terminal Windows en tant qu’administrateur dans le répertoire de téléchargement de l’utilisateur courant (C:\Users\yannig\Downloads par exemple).

L’installation se fait ensuite à l’aide de la commande msiexec, de l’option -i et du nom de fichier téléchargé à l’étape précédente.

Voici un exemple de lancement valide :

> msiexec -i windows_exporter-0.16.0-amd64.msi 

Par défaut, si rien n’est spécifié...