Guide du serveur

Surveillez votre serveur avec Grafana, Prometheus et Node Exporter (Docker)

Publié le 23 décembre 2025

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 !

Node Exporter Dashboard - Full server monitoring with Grafana showing CPU, memory, disk, and network metrics

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 :

  1. Créer le répertoire du projet : mkdir -p ~/monitoring && cd ~/monitoring
  2. Créer le fichier docker-compose.yml avec la configuration de la pile de surveillance
  3. Créer le fichier de configuration prometheus.yaml pour définir les cibles de collecte
  4. 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:
Conservez tous vos fichiers de configuration dans ce répertoire. Cela facilite la sauvegarde, le contrôle de version ou la migration vers un autre serveur.

2. Configurer Prometheus

Créez le fichier de configuration Prometheus (prometheus.yaml) :

  1. La configuration définit la fréquence de collecte des métriques (par défaut : toutes les 15 secondes)
  2. Ajoutez node_exporter comme cible de collecte pointant vers le conteneur Docker
  3. Configurez éventuellement le temps de rétention des données (30 jours est une bonne valeur par défaut)
  4. 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 :

  1. Démarrer tous les services : docker compose up -d (le drapeau -d exécute les conteneurs en arrière-plan)
  2. Vérifier le statut : docker compose ps (tous les services devraient afficher 'running')
  3. Afficher les logs : docker compose logs -f (appuyez sur Ctrl+C pour quitter)
  4. Accéder à Grafana sur http://votre-ip-serveur:3000 (connexion par défaut : admin/admin)
  5. Accéder à Prometheus sur http://votre-ip-serveur:9090 (optionnel, pour utilisateurs avancés)
Si vous devez apporter des modifications de configuration, modifiez les fichiers et exécutez 'docker compose restart' pour les appliquer.

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.