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é...