[Tuto] Installation de SmokePing en Docker sur Raspberry Pi

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 209
1 575
278
/var/run/docker.sock
Bonjour,
Nous allons ici utiliser docker-compose ( mais il est possible de passer par Portainer également ) pour installer smoekping sur un rapsberry pi.

M0ukPXi.png


SmokePing? C'est quoi ?
SmokePing est un logiciel qui vous permet de conserver un historique de la latence de votre réseau. Il est conçu par Tobi Oetiker, le créateur de MRTG et RRDtool. SmokePing est prévu pour calculer le RTT (Real Trip Time) entre les différents composants de votre réseau et peut le faire aussi bien avec un basique ping ICMP qu’avec des pings plus spécifiquement adaptés aux protocoles HTTP, SMTP, LDAP, DNS… [Source]

Pré-requis :
Avoir un accès SSH au Raspberry
Avoir installer docker et docker-compose , docker-compose ( mais il est possible de passer par voir tuto
Connaitre le PUID/GUID de l'utilisateur pi, voir tuto

Sommaire :
1/ Créer les dossiers nécessaires
2/ Création du docker-compose.yml et de conteneur

________a/ Création du fichier "docker-compose.yml"
________b/ Création du conteneur
3/ Configuration de SmokePing
____1/ Accès a l'interface de SmokePing


1/ Créer les dossiers nécessaires
Pour mon tuto, je vais placer les dossiers dans le dossier /media du pi ), cela peut bien sur être changer, mais il faudra adapter vos changements dans le fichier "docker-compose.yml" à l'étape suivante.

Je me place donc dans /media :
Code:
cd /media

Smokeping a besoin d'un dossier /config et d'un dossier /data, avec cette commande, on créer les 2 dossiers, dans un dossier /smokeping :
Code:
sudo mkdir -p smokeping/{config,data}

2/ Création de la configuration et des conteneurs

2.a/ Création du fichier "docker-compose.yml"
Pour créer le fichier ( dans /media/smokeping) :
Code:
sudo nano /media/smokeping/docker-compose.yml

Ensuite vous copier/coller ceci dedans :
Code:
version: "2.1"
services:
  smokeping:
    image: ghcr.io/linuxserver/smokeping
    hostname: RaspPi_3B+
    container_name: smokeping
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - /media/smokeping/config:/config
      - /media/smokeping/data:/data
    ports:
      - 80:80
    restart: unless-stopped

Suivant votre config, il peut être nécessaire de modifier les volumes /config et /data.
PUID et GUID sont à modifier suivant les ID de votre utilisateur pi ( voir pré-requis )
hostname est e nom de l'hote, puisque mon smokeping est installé sur un Raspberry Pi 3B+ alors j'ai indiqué "RaspPi_3B+", vous pouvez indiqué ce que vous voulez, cela sera présent sur le haut de vos graph smokeping.
Ici smokeping utilise le port HTTP par défaut, soit 80. Il est possible de le modifier en 8282 par exemple sous la forme 8282:80 par exemple

On quitte le fichier Ctrl+X et on valide les modifications.

2.b/ Création du conteneur
On se place dans le dossier ou nous avons créer notre fichier yml :
Code:
cd /media/smokeping
, et on execute la commande :
Code:
docker-compose up -d
Une fois fini, le raspberry renvoi le nom du conteneur ( smokeping ), afin de confirmer la bon déroulement.

3/ Configuration de Smokeping
3.1/ Accès a l'interface de Smokeping
Si vous avez laisser le port par défaut, alors l'acces a smokeping se fait via l'adresse http://adresse-ip-locale, par exemple si votre pi a l'adresse 192.168.1.210 alors l'acces se fait a http://192.168.1.210, si vous avez modifier le port, alors il faut le preciser, par exemple pour le port 8282, l'adresse sera http://192.168.1.210:8282

3.2/ Configuration
...



2021-02-07 : Rajout du précision sur la variable hostname du compose
 
Bonjour,

Toi tu es un sacré pro, bravo !!!

A quoi cela sert il de conserver un historique de la latence de son réseau ?

Ah oui, je suis débutant, ca se voit tant que ca ? ;-)
 
JacquesNAS a dit:
Bonjour,

Toi tu es un sacré pro, bravo !!!

A quoi cela sert il de conserver un historique de la latence de son réseau ?

Ah oui, je suis débutant, ca se voit tant que ca ? ;-)

Salut,
Loin d'être un pro, j'aime bidouiller/tester/....

Smokeping me sert a surveiller l'état / la stabilité de ma connexion internet ( par rapport a d'autre serveur ).

Exemple :

Ici on peut voir que la connexion vers google se dégrade : ( augmentation du ping + pertes de paquets )
Xv4YJOf.png


Ici on peu voir que la connexion est instable en soirée, et qu'il n'y a aucun soucis en journée :
rGWrSsM.png
 
Merci beaucoup.

Internet répond pas trop mal aux questions qui commencent par : "Comment faire....." mais il y a peu d'éléments sur le "Pourquoi faire...".

Cette réponse est bien plus claire que le site de l'éditeur, je trouve.

Donc encore MERCI !
 
JacquesNAS a dit:
Merci beaucoup.

Internet répond pas trop mal aux questions qui commencent par : "Comment faire....." mais il y a peu d'éléments sur le "Pourquoi faire...".

Cette réponse est bien plus claire que le site de l'éditeur, je trouve.

Donc encore MERCI !

Pas de soucis, d'ailleurs je rajouterai que Smokeping peut notifier en fonction de certaines configuration.
Par exemple, tu peu lui dire que si ta connexion est stable ( 3x 0% de pertes ) et que survient des pertes ( perte > 0% ) , ou que le serveur distant deviens inaccessible ( 100% de pertes ), ou un retour en ligne .... il peu te notifier par mail ou executer un script bash par exemple ( afin de te notifier via Gotify ou autre ) , ou exécuter diverse action.