Vous êtes ici:

Menu

Monitorez votre connexion Internet avec speedtest

speedtest
Grâce à une discussion sur le Slack communautaire de Centreon, je vous présente un tutoriel sur l'utilisation d'un plugin pour tester votre connexion internet avec speedtest.net. Nous utiliserons le programme speedtest-cli de Matt Martz et le plugin nagios-speedtest de Jon Witts. Nous allons adapter ce plugin pour une ISO Centreon sous CentOS et une distribution Raspbian. L'installation pour une Debian ou Ubuntu devrait être pratiquement identique.

Commençons par installer speedtest


CentOS


Installez le repo epel
yum install epel-release -y

Installez pip et réalisez sa mise à jour
yum install python-pip -y
pip install --upgrade pip

Désinstallez le repo epel pour éviter des problèmes de dépendances lors des prochaines mises à jour de Centreon.
yum remove epel-release -y

Installez le programme speedtest-cli
pip install speedtest-cli

Raspbian


Installez pip et réalisez sa mise à jour
apt-get install python-pip -y
pip install --upgrade pip

Vous devrez certainement modifier le fichier /usr/bin/pip (voir le lien) pour éviter un message d'erreur lors de l'installation de speedtest-cli.
Editez le fichier /usr/bin/pip et le modifiez comme suit
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())

Installez le programme speedtest-cli
pip install speedtest-cli

Si vous installez sur une fresh-install, vous aurez besoin d'installer ce package
apt-get install bc

Test avec speedtest-cli


Vous pouvez testez votre connexion
speedtest-cli 
Retrieving speedtest.net configuration...
Testing from Orange (90.12.117.36)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by ORANGE FRANCE (Puteaux) [179.43 km]: 10.942 ms
Testing download speed................................................................................
Download: 609.67 Mbit/s
Testing upload speed................................................................................................
Upload: 301.44 Mbit/s

Attention, la qualité de la mesure peut fluctuer ou être dégradé par votre matériel. Par exemple la mesure réalisé sur un raspberry. La carte réseau ne peut aller au-delà de 100Mbits/s, la mesure sera fausse pour une connexion fibre à 1Gbit/s.
speedtest-cli 
Retrieving speedtest.net configuration...
Testing from Orange (90.12.117.36)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by TestDebit.info (Massy) [172.93 km]: 14.943 ms
Testing download speed................................................................................
Download: 90.30 Mbit/s
Testing upload speed................................................................................................
Upload: 93.50 Mbit/s

Pour connaître la liste des hôtes à contacter, saisissez la commande suivante
speedtest --list | less

Vous affichez la liste des hôtes à contacter avec le numéro d'id nécessaire pour le plugin.
Retrieving speedtest.net configuration...
23282) ORANGE FRANCE (Rennes, France) [140.50 km]
16920) Wibox (Val de Reuil, FR) [159.83 km]
2231) TestDebit.info (Massy, France) [172.93 km]
23884) ORANGE FRANCE (Puteaux, France) [179.43 km]
14821) Stella Telecom (Courbevoie, France) [181.60 km]
11644) Ozone (Courbevoie, France) [181.60 km]
28073) Networth Telecom (Clichy, France) [184.64 km]
16476) Naitways (Paris, France) [185.51 km]
12746) SFR SAS (Paris, France) [185.51 km]
16676) CCleaner (Paris, France) [185.51 km]
24215) ORANGE FRANCE (Paris, France) [185.51 km]
5582) Cloudwatt (Paris, France) [185.51 km]
6027) fdcservers.net (Paris, France) [185.51 km]
22132) Leonix Telecom (Paris, France) [185.51 km]
11977) Télécom ParisTech (Paris, France) [185.51 km]
26387) Stella Telecom (PARIS, France) [185.51 km]
24386) GTT.net (Paris, France) [185.51 km]
10176) HarryLafranc (Paris, France) [185.51 km]
24130) SEWAN (Paris, France) [185.51 km]
25597) YanX.eu (Paris, France) [185.51 km]
27961) KEYYO (Paris, France) [185.51 km]
28308) Axione (Paris, France) [185.51 km]

Installation du plugin


Téléchargez le plugin et copiez-le dans le dossier des plugins historiques
git clone https://github.com/jonwitts/nagios-speedtest.git

CentOS


cp nagios-speedtest/check_speedtest-cli.sh /usr/lib64/nagios/plugins/

Raspbian


cp nagios-speedtest/check_speedtest-cli.sh /usr/lib/nagios/plugins/

Maintenant, il faut paramétrer le fichier check_speedtest-cli.sh. Il faut saisir le chemin de speedtest. Pour CentOS, ce sera /usr/bin. Pour Raspbian, ce sera /usr/local/bin. Ensuite, il faudra saisir des valeurs par défaut obligatoire. Voici un exemple :
# You MUST define this or the script will not run!
STb=/usr/bin

# Set up the variables to take the arguments
DLw=800
DLc=500
ULw=250
ULc=100
Loc=e
SEs=23884
PerfData=
MaxDL=
MaxUL=
debug=

Explication des variables :
STb=chemin de speedtest
DLw=seuil warning Débit descendant en Mbit/s
DLc=seuil critical Débit descendant en Mbit/s
ULw=seuil warning Débit montant en Mbit/s
ULc=seuil critical Débit montant en Mbit/s
Loc=nous utiliserons le type e pour l'hôte à contacter
SEs=id de l'hôte à contacter
PerfData=TRUE pour activer les perfdata
MaxDL=Max Débit descendant en Mbit/s
MaxUL=Max Débit montant en Mbit/s
debug=mode debug
Vous pouvez réaliser un test de débit
./check_speedtest-cli.sh -c 500 -w 800 -C 100 -W 250 -l e -s 23884 -p TRUE -m 1000 -M 300
WARNING - Ping = 13.01 ms Download = 569.44 Mbit/s Upload = 317.61 Mbit/s|'download'=569.44;800;500;0;1050.00 'upload'=317.61;250;100;0;315.00

Configuration dans Centreon


Créez une commande
speedtest01

La ligne de commande
$USER1$/check_speedtest-cli.sh -w '$_SERVICEWARNINGDOWNLOAD$' -c '$_SERVICECRITICALDOWNLOAD$' -W '$_SERVICEWARNINGUPLOAD$' -C '$_SERVICECRITICALUPLOAD$' -l e -s '$_SERVICELOCATIONSERVER$' -p TRUE -m '$_SERVICEMAXDOWNLOAD$' -M '$_SERVICEMAXUPLOAD$'

Créez un modèle de service. Pour une ISO Centreon, ce modèle de service sera basé sur generic-active-service-custom.
speedtest02
On ajustera les valeurs par défaut en fonction de sa configuration. Pour les perfdata on ajoutera les valeurs max de notre connexion. On réglera l'intervalle de vérification à 1 heure largement suffisant pour ce type de monitoring assez consommateur en temps d'exécution. Ensuite, il suffira d'ajouter un service basé sur ce modèle sur notre box comme ci-dessous.
speedtest03

Vous obtiendrez la courbe suivante après quelques heures de fonctionnement.
speedtest04


Les valeurs récupérées seront tributaires de la qualité de votre installation. Essayez autant que possible d'avoir un matériel performant au plus près de votre connexion Internet. Je teste actuellement avec un clone de raspberry (OrangePI) ayant une carte réseau 1Gbit/s mais passant pas le usb USB de la carte. Cette machine passe par un switch Giga avant d'atteindre la livebox. En comparaison, la même mesure avec une machine virtuelle sur mon Lenovo P52 connecté directement sur le switch de la livebox.
speedtest05

Les valeurs sont plus élevées, surtout en download. Ne tenez pas compte des statuts dus à des seuils Critical et Warning trop haut. Pour conclure, ce test de débit devrait être intéressant à long terme pour évaluer une tendance de votre débit.


blog comments powered by Disqus
 Vous êtes ici:

Nous utilisons des cookies pour nous permettre de mieux comprendre comment le site est utilisé. En continuant à utiliser ce site, vous acceptez cette politique.