Déploiement sécurisé de Node Exporter avec Ansible et mise à jour de Prometheus

Dans cet article je vais te montrer comment utiliser Ansible pour déployer Node Exporter sur tes serveurs de manière sécurisée et mettre à jour Prometheus pour collecter les métriques.

On va se concentrer sur Node Exporter, un outil incontournable pour la surveillance des systèmes Linux.

node-exporter via ansible et update de prometheus

Introduction

Node Exporter, c’est un élément essentiel de Prometheus qui permet de récupérer une tonne de métriques système sur des serveurs Linux. Ici, je vais te guider pour automatiser tout ça avec Ansible en assurant la sécurité et on va faire en sorte que Prometheus scrape ces nouvelles sources de données sans souci.

Prérequis

Avant de commencer, assure-toi d’avoir installé :

  • Docker

On va s’en servir pour exécuter l’environnement Ansible de manière isolée et reproductible. Simple et efficace.

Étape 1 : Préparation de l’environnement

On commence par cloner le dépôt du projet dans le dossier de ton client et installer ce qu’il faut :

# Cloner le dépôt
cd /chemin/vers/dossier-client
git clone git@gitlab.com:babidi34/monitoring-prometheus.git
cd monitoring-prometheus

# Installer Ansible Builder et Ansible Runner
pip install ansible-builder ansible-runner

# Construire l’environnement d’exécution Ansible
ansible-builder build --tag monitoring-ee:latest

Avec ça tu auras cloné le projet, installé ce qu’il te faut pour builder Ansible et tu créeras une image Docker contenant tout ce qu’il faut pour ton projet. Simple et propre.

Étape 2 : Configuration des variables

Ensuite tu modifies le fichier variables.yml pour l’adapter au contexte de ton client.

Ce fichier doit contenir :

  • Le nom du client
  • La version de Node Exporter à installer
  • Les configs de scraping pour Prometheus

Étape 3 : Mise à jour de l’inventaire

Ici on va éditer le fichier inventory.ini pour y mettre l’infrastructure de ton client. Assure-toi de bien mettre à jour :

  • Les IP des serveurs
  • Les users
  • Les chemins vers les clés SSH

Étape 4 : Génération des certificats

Parce que la sécurité, c’est ultra important, on va générer des certificats TLS pour sécuriser Node Exporter. Tu exécutes le playbook generate-certs.yml comme ça :

ansible-runner run . --playbook generate-certs.yml -e @variables.yml --container-image monitoring-ee:latest

Cette commande va créer les certificats et les stocker là où il faut pour plus tard.

Étape 5 : Déploiement de Node Exporter

On passe à l’étape clé : déployer Node Exporter sur les serveurs du client avec le playbook node-exporter.yml :

ansible-runner run . --playbook node-exporter.yml -e @variables.yml -i inventory.ini --container-image monitoring-ee:latest

Ce playbook installe Node Exporter, le configure pour utiliser les certificats TLS qu’on a créés et s’assure qu’il démarre bien au boot du système.

Étape 6 : Mise à jour de Prometheus

On termine avec la mise à jour de la config de Prometheus pour qu’il puisse scraper les nouveaux serveurs Node Exporter. Pour ça, on lance le playbook update-prometheus.yml :

ansible-runner run . --playbook update-prometheus.yml -e @variables.yml --container-image monitoring-ee:latest

Ce playbook ajoute les nouveaux serveurs à la liste des cibles de Prometheus.

Vérification

Pour vérifier que tout est OK :

  1. Accède à https://<ip-serveur-client>:9100/metrics pour voir si Node Exporter fonctionne.
  2. Dans l’interface Prometheus, va dans « Status » > « Targets » pour voir si les nouveaux serveurs remontent bien leurs métriques.

Conclusion

Grâce à cette méthode automatisée avec Ansible, tu peux déployer Node Exporter en toute sécurité sur plusieurs serveurs clients et garder Prometheus à jour.

C’est simple, efficace, et surtout sécurisé. En suivant ce guide, tu sais maintenant :

  1. Préparer ton environnement Ansible avec Docker
  2. Configurer les variables spécifiques à chaque client
  3. Générer des certificats TLS pour sécuriser Node Exporter
  4. Déployer Node Exporter de manière automatique et sécurisée
  5. Mettre à jour Prometheus pour scraper les nouvelles instances

C’est une approche qui te permet de déployer et de gérer plusieurs serveur node-exporter facilement tout en maintenant un niveau de sécurité élevé.

Et j’ai utilisé Docker en prérequis pour garder une cohérence entre tous tes environnements, peu importe la machine sur laquelle tu bosses.


Lien vers le repo Gitlab


Aller plus loin

🚀 Pourquoi Node Exporter et Prometheus sont incontournables ?

Node Exporter et Prometheus sont des piliers essentiels du monitoring dans une infrastructure moderne notamment dans les environnements Linux. Node Exporter permet de récupérer une multitude de métriques système telles que l’utilisation du CPU, de la mémoire, des disques et du réseau.

Ces données sont cruciales pour les équipes d’administration système car elles offrent une visibilité en temps réel sur l’état de santé des serveurs permettant ainsi de prévenir des incidents avant qu’ils ne deviennent critiques.

D’un autre côté, Prometheus assure la collecte, le stockage et l’analyse de ces métriques. Il utilise son langage de requête puissant, PromQL pour permettre aux utilisateurs de poser des questions complexes sur l’état de leurs systèmes.

Avec Prometheus tu peux aussi configurer des alertes automatisées pour être informé en cas d’anomalies.

Ce duo est essentiel pour une gestion proactive des infrastructures.

Ils sont simples à déployer, open-source et extensibles avec d’autres outils comme Alertmanager pour les alertes ou Grafana pour la visualisation des données. En gros, ils offrent une solution efficace, flexible et facile à intégrer devenant ainsi un must pour toute architecture moderne.

🔒 Sécurisation avec mTLS et gestion des risques

La sécurité dans une infrastructure de monitoring est primordiale.

Sans sécurisation les métriques système exposées par Node Exporter peuvent être interceptées révélant des informations sensibles comme l’utilisation des ressources ou la configuration système. C’est ici que le chiffrement TLS intervient.

Avec mTLS (Transport Layer Security), tu peux garantir que toutes les communications entre Node Exporter et Prometheus sont sécurisées et chiffrées 🔐. Cela prévient les attaques de type Man-in-the-Middle (MITM) où un attaquant pourrait intercepter ou altérer les données échangées.

De plus, en générant des certificats TLS pour chaque serveur, tu t’assures que seules les machines autorisées peuvent communiquer entre elles, renforçant ainsi la fiabilité de ton infrastructure.

Cela réduit considérablement le risque de fuites d’informations sensibles et assure que ton infrastructure de monitoring reste robuste face aux attaques potentielles.


Besoin d’aide ?

Si tu as besoin de mettre en place une stack de monitoring efficace clé en main, tu peux nous contacter ici => page de contact.

Je mets à ta disposition mon expertise pour t’accompagner dans la gestion de ton infrastructure.

Le partage nous aide à nous faire connaître, merci pour ton partage 🫀

Laisser un commentaire