Files
wiki/Catalogue-Self-Hosted/apps/app-meshping.md
T
2026-06-09 18:40:21 +02:00

115 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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)
```yaml
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)
```bash
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](https://github.com/oetiker/Smokeping) (le classique pour la latence, sans notion de mesh), [Netdata](https://github.com/netdata/netdata) (métrique système, pas mesh)
- **Kubernetes** : [Kube-prometheus](https://github.com/prometheus-operator/kube-prometheus) pour la santé des pods/nodes
- **Mesh spécifiques** : [batctl](https://www.open-mesh.org/projects/batman-adv/wiki/Wishlist) (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
- [selfh.st — Networking](https://selfh.st/apps/?tag=networking)
- [GitHub meshping/meshping](https://github.com/meshping/meshping)
- [Smokeping — inspiration historique](https://oss.oetiker.ch/smokeping/)
## Pages Liées
- [[cat-networking]]
- [[recettes-docker-compose]]
- [[app-uptime-kuma]] — monitoring de services
- [[app-netdata]] — métriques système par nœud