Files
2026-06-09 18:40:21 +02:00

4.1 KiB
Raw Permalink Blame History


title: Meshping created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, networking, mesh, monitoring, go, low-resource] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=networking, https://github.com/meshping/meshping]

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ée Valeur
Site web https://github.com/meshping/meshping
GitHub https://github.com/meshping/meshping
License Apache-2.0
Langage Go
Étoiles 10
Dernière MAJ 2024
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

Pages Liées