Surveillez votre serveur avec Grafana, Prometheus et Node Exporter (Docker)
Que vous hébergiez un blog personnel, gériez un site web de petite entreprise ou supervisiez une infrastructure critique, connaître la santé et les performances de votre serveur est essentiel. La surveillance de serveur vous aide à détecter les problèmes avant qu'ils ne deviennent critiques, à optimiser l'utilisation des ressources et à garantir que vos services restent en ligne.
Dans ce guide, vous apprendrez à configurer une pile de surveillance de qualité professionnelle en utilisant trois outils open-source puissants : Node Exporter (collecte les métriques), Prometheus (stocke et interroge les données) et Grafana (visualise tout magnifiquement). Nous utiliserons Docker Compose pour rendre la configuration incroyablement simple et reproductible.
Bien que vous puissiez installer ces outils manuellement, Docker offre des avantages significatifs : environnements isolés, mises à jour faciles, configurations reproductibles et retours en arrière simples. De plus, cette configuration entière est gratuite, légère et peut fonctionner aux côtés de vos services existants. Allons-y !

Aperçu : Un tableau de bord Node Exporter complet affichant les métriques du serveur en temps réel
Pourquoi utiliser Docker pour la surveillance ?
Bien que vous puissiez installer Prometheus, Grafana et Node Exporter directement sur votre système, Docker offre des avantages convaincants :
Isolation et environnement propre
Chaque composant s'exécute dans son propre conteneur, évitant les conflits avec vos paquets système ou d'autres applications.
Mises à jour et retours en arrière faciles
Mettez à jour vers la dernière version avec 'docker compose pull && docker compose up -d'. Si quelque chose casse, revenez en arrière en changeant une ligne dans votre configuration.
Configuration reproductible
Toute votre pile de surveillance est définie dans un fichier docker-compose.yml. Copiez-le sur un autre serveur, exécutez 'docker compose up', terminé.
Portable et cohérent
Fonctionne de manière identique sur Ubuntu, Debian, Fedora ou toute distribution Linux. Pas d'enfer de dépendances, pas de différences de gestionnaires de paquets.
Gestion des ressources
Docker facilite la définition des limites de ressources, des politiques de redémarrage et des vérifications de santé. De plus, vous pouvez surveiller plusieurs serveurs depuis une seule instance Prometheus.
La pile de surveillance
Notre solution de surveillance se compose de trois composants qui fonctionnent ensemble de manière transparente, tous conteneurisés avec Docker :
Node Exporter
Un agent léger qui s'exécute sur votre serveur et collecte des métriques système comme l'utilisation du CPU, la consommation de mémoire, les E/S disque et le trafic réseau. Il expose ces métriques dans un format que Prometheus peut comprendre.
Prometheus
Une base de données de séries temporelles qui collecte des métriques de Node Exporter à intervalles réguliers. Elle stocke ces données efficacement et fournit un langage de requête puissant (PromQL) pour les analyser.
Grafana
Une belle plateforme de visualisation qui se connecte à Prometheus et transforme les métriques brutes en superbes tableaux de bord interactifs. Considérez-le comme la fenêtre sur l'âme de votre serveur.
Prérequis
Avant de commencer, assurez-vous d'avoir :
- • Un serveur Linux (VPS, serveur dédié ou même un Raspberry Pi) - comparez les options VPS sur notre page d'accueil
- • Accès SSH à votre serveur avec des privilèges sudo
- • Docker et Docker Compose déjà installés sur votre serveur
- • Familiarité de base avec la ligne de commande et les concepts Docker
- • Au moins 1 Go de RAM libre et 2 Go d'espace disque pour les volumes
Installation étape par étape
1. Créer la configuration Docker Compose
Créez un répertoire pour votre pile de surveillance et configurez-la :
- Créer le répertoire du projet : mkdir -p ~/monitoring && cd ~/monitoring
- Créer le fichier docker-compose.yml avec la configuration de la pile de surveillance
- Créer le fichier de configuration prometheus.yaml pour définir les cibles de collecte
- Définir les permissions appropriées : chmod 644 docker-compose.yml prometheus.yaml
services:
prometheus:
image: docker.io/prom/prometheus:latest
container_name: prometheus
command: "--config.file=/etc/prometheus/prometheus.yaml --storage.tsdb.retention.time=30d"
networks:
- prometheus
expose:
- 9090
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
- prometheus_data:/prometheus
restart: unless-stopped
grafana:
container_name: grafana
image: grafana/grafana-oss:latest
networks:
- prometheus
ports:
- "127.0.0.1:3000:3000"
restart: unless-stopped
volumes:
- grafana_storage:/var/lib/grafana
- grafana_config:/etc/grafana
node_exporter:
image: quay.io/prometheus/node-exporter:latest
container_name: node_exporter
expose:
- 9100
command:
- '--path.rootfs=/host'
pid: host
restart: unless-stopped
networks:
- prometheus
volumes:
- '/:/host:ro,rslave'
volumes:
grafana_storage:
grafana_config:
prometheus_data:
networks:
prometheus:2. Configurer Prometheus
Créez le fichier de configuration Prometheus (prometheus.yaml) :
- La configuration définit la fréquence de collecte des métriques (par défaut : toutes les 15 secondes)
- Ajoutez node_exporter comme cible de collecte pointant vers le conteneur Docker
- Configurez éventuellement le temps de rétention des données (30 jours est une bonne valeur par défaut)
- Vous pouvez ajouter plusieurs cibles pour surveiller plusieurs serveurs depuis une seule instance Prometheus
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['node_exporter:9100']3. Démarrer la pile
Avec tout configuré, démarrons la pile de surveillance :
- Démarrer tous les services : docker compose up -d (le drapeau -d exécute les conteneurs en arrière-plan)
- Vérifier le statut : docker compose ps (tous les services devraient afficher 'running')
- Afficher les logs : docker compose logs -f (appuyez sur Ctrl+C pour quitter)
- Accéder à Grafana sur http://votre-ip-serveur:3000 (connexion par défaut : admin/admin)
- Accéder à Prometheus sur http://votre-ip-serveur:9090 (optionnel, pour utilisateurs avancés)
Configuration de votre premier tableau de bord
Maintenant que tout fonctionne via Docker, configurons Grafana pour afficher vos métriques :
Ajouter Prometheus comme source de données
Dans Grafana, allez dans Configuration → Sources de données → Ajouter une source de données → Prometheus. Définissez l'URL sur http://prometheus:9090 (réseau interne Docker) et cliquez sur 'Enregistrer et tester'.
Importer un tableau de bord pré-construit
Allez dans Tableaux de bord → Importer, entrez l'ID de tableau de bord 1860 (Node Exporter Full), sélectionnez votre source de données Prometheus et cliquez sur Importer. Instantanément, vous verrez de beaux graphiques de vos métriques serveur ! Parcourez la bibliothèque de tableaux de bord Grafana sur grafana.com/grafana/dashboards pour des milliers de tableaux de bord pré-construits pour toutes sortes de services.
Explorer plus de possibilités
Grafana est hautement personnalisable et peut visualiser pratiquement tout type de données - des métriques de serveur aux capteurs IoT, des journaux d'application aux analyses commerciales. La bibliothèque de tableaux de bord offre des solutions prêtes à l'emploi pour les bases de données, les serveurs web, les conteneurs, les plateformes cloud et bien plus encore. Vous pouvez également créer des tableaux de bord entièrement personnalisés adaptés à vos besoins spécifiques.
Personnaliser votre vue
Cliquez sur les paramètres du tableau de bord (icône d'engrenage) pour ajuster les taux de rafraîchissement, les plages de temps et les dispositions des panneaux. Supprimez les panneaux dont vous n'avez pas besoin et ajoutez-en de nouveaux en cliquant sur 'Ajouter un panneau'.
Configurer les alertes (Optionnel)
Configurez des règles d'alerte pour vous avertir lorsque l'utilisation du CPU est trop élevée, l'espace disque est faible ou les services tombent en panne. Grafana peut envoyer des alertes par e-mail, Slack, Discord et de nombreux autres canaux.
Cas d'usage réels
Cette configuration de surveillance basée sur Docker fonctionne pour tous, des amateurs aux professionnels :
L'auto-hébergeur
Vous exécutez Nextcloud, Jellyfin ou un serveur d'automatisation domestique. Vous voulez savoir si quelque chose consomme votre RAM ou si votre disque se remplit.
Déployez la pile de surveillance aux côtés de vos services avec docker-compose. Pas d'installation manuelle, pas de paquets système. Si vous décidez de la supprimer, faites simplement 'docker compose down' et elle disparaît.
Le développeur
Vous développez une application web et souhaitez comprendre sa consommation de ressources avant de la déployer en production.
Exécutez la pile de surveillance en développement avec la même configuration qu'en production. Voyez l'impact en temps réel de vos modifications de code. Exportez/importez des tableaux de bord entre environnements.
Propriétaire de petite entreprise
Le site web de votre entreprise est critique pour l'activité. Vous devez savoir si le serveur est en bonne santé et quand il est temps de mettre à niveau.
Recevez des alertes avant que les clients ne remarquent les problèmes. Sauvegarde facile : copiez simplement votre docker-compose.yml et le volume de données Prometheus. Migrez vers un serveur plus grand en quelques minutes.
Administrateur système professionnel
Vous gérez plusieurs serveurs pour des clients ou votre organisation. Vous avez besoin d'une surveillance centralisée avec des métriques détaillées et des alertes.
Déployez des piles identiques sur tous les serveurs. Utilisez les fonctionnalités réseau de Docker pour surveiller plusieurs nœuds. Versionnez toute votre infrastructure de surveillance.
Bonnes pratiques et conseils Docker
Sécurisez vos tableaux de bord
Utilisez Traefik ou nginx comme proxy inverse avec HTTPS. N'exposez pas les ports directement sur Internet. L'exemple lie Grafana à 127.0.0.1 pour un accès local uniquement.
Persistez vos données
Le docker-compose.yml utilise des volumes nommés pour les données Grafana et Prometheus. Cela garantit que vos tableaux de bord et métriques survivent aux redémarrages de conteneurs. Sauvegardez ces volumes régulièrement : 'docker run --rm -v monitoring_grafana_storage:/data -v $(pwd):/backup busybox tar czf /backup/grafana-backup.tar.gz /data'
Mises à jour régulières et surveillance de sécurité
Mettez à jour vos conteneurs mensuellement : 'docker compose pull && docker compose up -d'. Docker rend cela sûr - si quelque chose casse, revenez simplement à la version précédente de l'image dans votre fichier compose. Suivez les notes de version pour Grafana, Prometheus et Node Exporter. Abonnez-vous aux avis de sécurité et aux notifications CVE pour ces projets afin de rester informé des vulnérabilités.
Surveiller plusieurs serveurs
Déployez node_exporter sur chaque serveur que vous souhaitez surveiller. Mettez à jour prometheus.yaml pour ajouter de nouvelles cibles de collecte. Une instance Prometheus peut surveiller des dizaines de serveurs.
Prochaines étapes et sujets avancés
Une fois que vous êtes à l'aise avec la configuration basée sur Docker, explorez ces sujets avancés :
- • Ajoutez plus d'exportateurs à votre docker-compose.yml : MySQL, PostgreSQL, nginx, Redis ou Blackbox exporter pour la surveillance des points de terminaison
- • Déployez Alertmanager en tant qu'autre conteneur pour un routage, un regroupement et une mise en sourdine d'alertes sophistiqués
- • Utilisez les profils docker-compose pour exécuter des configurations de développement vs production avec une seule commande
- • Explorez PromQL (Prometheus Query Language) pour des requêtes de métriques avancées et des panneaux personnalisés
- • Configurez Docker Swarm ou Kubernetes pour une surveillance haute disponibilité sur plusieurs nœuds
- • Utilisez la fonction de provisioning de Grafana avec des volumes Docker pour déployer automatiquement des tableaux de bord en tant que code
- • Surveillez les conteneurs Docker eux-mêmes avec cAdvisor (le conseiller de conteneurs de Google) dans votre pile
Conclusion
Félicitations ! Vous disposez maintenant d'une pile de surveillance professionnelle fonctionnant dans des conteneurs Docker. La beauté de cette configuration est qu'elle est complètement portable, facile à maintenir et peut être déployée sur un autre serveur en quelques minutes. Bien qu'il soit possible d'installer ces outils manuellement sans Docker, l'approche conteneurisée offre des avantages significatifs en termes d'isolation, de reproductibilité et de facilité de mise à jour. Vous pouvez maintenant surveiller l'utilisation du CPU, la consommation de mémoire, les E/S disque, le trafic réseau et bien plus encore - le tout à partir de superbes tableaux de bord Grafana.
Besoin d'un serveur fiable pour exécuter votre pile de surveillance ? Consultez notre comparaison VPS pour trouver le serveur parfait pour vos besoins - avec des prix transparents et des spécifications détaillées pour vous aider à prendre une décision éclairée.