Retour aux outils
Sécurité / Mots de passeIntermédiaireOpen sourceAuto-hébergeable

Meshping

Outil Go pour surveiller la santé d'un réseau maillé (mesh) : ping en grille de tous les nœuds entre

MAJ 2026-06-14
Meshping
Code source

Meshping est un service de monitoring conçu spécifiquement pour les réseaux maillés (mesh networks) : il maintient une matrice N×N des latences ping entre tous les nœuds d'un cluster, et visualise l'évolution temporelle pour détecter les liens faibles, les routes qui se dégradent, ou les partitions

Meshping 📡

Outil Go pour surveiller la santé d'un réseau maillé (mesh) : ping en grille de tous les nœuds entre eux avec matrice de latence.

MétadonnéeValeur
Site webhttps://github.com/meshping/meshping
GitHubhttps://github.com/meshping/meshping
LicenseApache-2.0
LangageGo
Étoiles10 ⭐
Dernière MAJ2024
Catégorie[[cat-networking]]

Description

Meshping est un service de monitoring conçu spécifiquement pour les réseaux maillés (mesh networks) : il maintient une matrice N×N des latences ping entre tous les nœuds d'un cluster, et visualise l'évolution temporelle pour détecter les liens faibles, les routes qui se dégradent, ou les partitions partielles.

L'idée : dans un réseau mesh (B.A.T.M.A.N., OLSR, 802.11s, Zerotier, Tailscale, ou un cluster Kubernetes auto-hébergé), chaque nœud peut joindre tous les autres — mais la qualité des liens varie. Meshping fait un ping ICMP croisé de chaque nœud vers tous les autres, stocke les RTT dans une base locale, et expose une interface web avec :

  • Heatmap de latence actuelle entre chaque paire
  • Graphes temporels par lien
  • Détection d'anomalies simple (écart-type par rapport à la baseline)
  • Alertes webhook si un lien dépasse un seuil

L'app est écrite en Go, distribuable en binaire statique unique (≈15 Mo), sans dépendance externe, et peut tourner en mode agent (sur chaque nœud du mesh) ou en collecteur central (qui interroge les agents). Projet jeune, à utiliser avec prudence sur des mesh de production critiques.

Installation

Docker Compose (mode collecteur)

services:
  meshping:
    image: ghcr.io/meshping/meshping:latest
    container_name: meshping
    restart: unless-stopped
    environment:
      - TZ=Europe/Paris
      - LISTEN_PORT=8089
      - NODES_FILE=/data/nodes.txt
    volumes:
      - ./nodes.txt:/data/nodes.txt:ro
      - meshping-data:/data
    ports:
      - "8089:8089"

volumes:
  meshping-data:

Manuelle (binaire)

git clone https://github.com/meshping/meshping.git
cd meshping
go build -o meshping .
./meshping -nodes ./nodes.txt -port 8089

Configuration

nodes.txt (un nœud par ligne) :

node1.lan
node2.lan
node3.lan
gateway.lan

Variables d'environnement clés :

  • PING_INTERVAL=30s
  • PING_TIMEOUT=2s
  • ALERT_WEBHOOK=https://ntfy.example.com/meshping
  • BASELINE_DAYS=7

Alternatives

  • Open Source : [[app-uptime-kuma]] (mono-URL, pas de matrice mesh), Smokeping (le classique pour la latence, sans notion de mesh), Netdata (métrique système, pas mesh)
  • Kubernetes : Kube-prometheus pour la santé des pods/nodes
  • Mesh spécifiques : batctl (diagnostic B.A.T.M.A.N.), olsrd status page
  • Propriétaire : Datadog Network Performance, Catchpoint (chers, orientés cloud)

Sécurité

  • Ping ICMP : nécessite généralement CAP_NET_RAW ou root — l'image Docker doit être lancée avec --cap-add=NET_RAW ou --privileged (à limiter).
  • Exposition : l'interface web révèle la topologie du mesh — placer derrière VPN ou auth basic.
  • Binaire tiers : reconstruire depuis les sources, le projet est jeune.
  • Webhook secrets : passés en variable d'environnement, jamais en clair.

Ressources