Aller au contenu principal

Mes projets

Mon Home NOC : construire mon propre centre de supervision réseau

25 objets en collection 5 articles maj il y a 9 heures
f X in
← Retour à mes projets

Mon Home NOC : construire mon propre centre de supervision réseau

En cours Raspberry Pi Avancé

Un centre de supervision réseau domestique complet — collecte de métriques, monitoring de disponibilité, alerting temps réel, accès distant sécurisé et dashboard 100% maison — construit brique par brique sur deux Raspberry Pi, pour comprendre en profondeur chaque couche de la stack plutôt que de me reposer sur une solution clé en main.

Avancement du projet

10/10 étapes
  • Prometheus + Node Exporter
  • Uptime Kuma u2014 supervision de disponibilitu00e9
  • Grafana u2014 visualisation avancu00e9e
  • Premier dashboard central (Dashy)
  • windows_exporter u2014 monitoring postes Windows
  • Intu00e9gration calendrier
  • VPN WireGuard
  • Intu00e9gration Discord (alertes + suivi de projet)
  • Dashboard personnalisu00e9 du00e9veloppu00e9 sur mesure
  • Reconstruction du NAS domestique

🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 10/10 modules terminés

Le projet en une phrase

Un centre de supervision réseau domestique complet — collecte de métriques, monitoring de disponibilité, alerting temps réel, accès distant sécurisé et dashboard 100% maison — construit brique par brique sur deux Raspberry Pi, pour comprendre en profondeur chaque couche de la stack plutôt que de me reposer sur une solution clé en main.

Pourquoi ce projet

Je voulais reproduire chez moi les principes d’un vrai NOC d’entreprise : visibilité centralisée sur toute mon infrastructure (serveurs, postes de travail, connectivité), alerting proactif en cas d’incident, et supervision accessible de manière sécurisée même en déplacement. Plutôt que d’installer un outil tout-en-un, j’ai choisi d’assembler la stack composant par composant — et, une fois les fondations solides, de développer mon propre frontend de supervision plutôt que de m’arrêter à un dashboard générique.

Architecture générale

L’infrastructure repose sur deux Raspberry Pi aux rôles bien séparés :

Un Raspberry Pi 3B+, dédié à la collecte de métriques, au monitoring de disponibilité, et à mon NAS personnel. Ressources limitées (1 Go de RAM), donc rôle volontairement restreint à des tâches de scraping léger, de stockage réseau — pas de calcul lourd ni d’interface graphique dessus.

Un Raspberry Pi 4B (nom d’hôte hub01, plus de RAM disponible), qui héberge toute la couche de visualisation : Grafana et mon dashboard applicatif développé sur mesure.

Deux postes Windows sont intégrés à la supervision via des exporters dédiés, et l’accès depuis l’extérieur passe exclusivement par un tunnel VPN WireGuard — j’ai délibérément écarté toute exposition directe de service sur internet, au profit d’un tunnel chiffré point-à-point vers le réseau local.

La stack de collecte et de supervision

Prometheus + Node Exporter forment le socle de la collecte de métriques système (CPU, RAM, disque, uptime) sur les deux Raspberry Pi. Node Exporter expose ces métriques au format texte Prometheus, scrapées à intervalle régulier.

windows_exporter joue le même rôle côté PC Windows, exposant des métriques dans le même format — tout l’intérêt du standard Prometheus étant que le pipeline de collecte reste identique quelle que soit la source.

Uptime Kuma complète le dispositif côté disponibilité pure : sondes actives (ping, HTTP) sur chaque point clé du réseau, calcul de ratios de disponibilité glissants (24h / 30 jours / 1 an), et notifications Telegram en cas d’incident. Détail technique : Uptime Kuma expose lui aussi un endpoint /metrics au format Prometheus — je l’exploite donc directement en scraping plutôt que via son API REST classique, authentifié par clé API dédiée.

Grafana, alimenté par Prometheus, sert de couche de visualisation avancée (graphiques historiques, tableaux de bord détaillés) pour l’analyse fine des performances dans le temps.

WireGuard assure l’accès distant : tunnel VPN léger et moderne, choisi après comparaison avec une exposition web directe — le compromis sécurité/simplicité m’a semblé nettement meilleur.

Discord ferme la boucle côté notifications et suivi de projet : webhooks dédiés pour les alertes de disponibilité en temps réel, et pour la publication automatisée de l’avancement du projet.

Le dashboard maison : le cœur du projet

C’est la brique la plus ambitieuse : plutôt que d’utiliser un dashboard générique, j’ai développé mon propre frontend de supervision en Python/Flask, déployé en production via Gunicorn et géré comme un vrai service systemd (démarrage automatique, redémarrage en cas de crash).

Quelques choix techniques dont je suis content :

Scraping et parsing sur mesure : le backend interroge directement les endpoints /metrics de Prometheus et d’Uptime Kuma, et parse les métriques via des expressions régulières ciblées plutôt que d’utiliser un client Prometheus générique — plus léger, et j’ai un contrôle total sur ce qui remonte à l’affichage.

Calcul d’uptime « temps réel » maison : Uptime Kuma n’expose que des ratios de disponibilité en pourcentage, pas de durée continue. J’ai donc implémenté un mécanisme de suivi d’état : à chaque scraping, l’application compare le statut courant de chaque service à son état précédent (persisté dans un petit fichier JSON), et horodate chaque transition en ligne/hors ligne. La durée écoulée est ensuite formatée intelligemment (minutes → heures → jours selon l’ampleur).

Écritures atomiques : toute persistance sur disque (configuration du layout, état des services) passe par un pattern fichier temporaire + renommage atomique, pour éviter toute corruption en cas de coupure au mauvais moment — un réflexe qu’on prend vite quand on tourne sur une carte SD.

Interface entièrement réorganisable : le frontend s’appuie sur GridStack.js pour un système de blocs déplaçables et redimensionnables à la souris, avec persistance de la disposition. Les colonnes de chaque tableau (machines, services) sont elles aussi réordonnables individuellement, et tout est sauvegardé côté serveur.

Zéro dépendance externe pour l’essentiel : pas de base de données, pas de service tiers — la configuration et l’état vivent dans de simples fichiers JSON versionnés avec le code.

Où en est le projet — Roadmap complète

10 modules terminés sur 10.

#ModuleStatut
1Prometheus + Node Exporter✅ Terminé
2Uptime Kuma — supervision de disponibilité✅ Terminé
3Grafana — visualisation avancée✅ Terminé
4Premier dashboard central (Dashy)✅ Terminé
5windows_exporter — monitoring postes Windows✅ Terminé (poste principal)
6Intégration calendrier✅ Terminé — finalement réalisé au sein du Module 9, via un flux ICS Outlook plutôt que l’intégration directe bloquée par Microsoft
7VPN WireGuard✅ Terminé
8Intégration Discord (alertes + suivi de projet)✅ Terminé
9Dashboard personnalisé développé sur mesure✅ Terminé
10Reconstruction du NAS domestique✅ Terminé

🎉 Les 10 modules du projet NOC sont désormais achevés ! Détail complet du Module 9 (dashboard sur mesure) sur sa page dédiée.

Détails du projet

Technologies / matériel utilisés
Raspberry Pi 3B+, Raspberry Pi 4B, Prometheus, Node Exporter, Uptime Kuma, Grafana, WireGuard, Discord, Flask
Dates
15/09/2026
Budget approximatif
340€

Fiche mise à jour le 26/09/2026

Partager : fFacebook XX WhatsApp inLinkedIn