Monitorez votre connexion Internet avec speedtest
13/11/19 21:10 Classé dans: Techniques
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.
Installez le repo epel
Installez pip et réalisez sa mise à jour
Désinstallez le repo epel pour éviter des problèmes de dépendances lors des prochaines mises à jour de Centreon.
Installez le programme speedtest-cli
Installez pip et réalisez sa mise à jour
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
Installez le programme speedtest-cli
Si vous installez sur une fresh-install, vous aurez besoin d'installer ce package
Vous pouvez testez votre connexion
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.
Pour connaître la liste des hôtes à contacter, saisissez la commande suivante
Vous affichez la liste des hôtes à contacter avec le numéro d'id nécessaire pour le plugin.
Téléchargez le plugin et copiez-le dans le dossier des plugins historiques
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 :
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
Créez une commande
La ligne de commande
Créez un modèle de service. Pour une ISO Centreon, ce modèle de service sera basé sur generic-active-service-custom.
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.
Vous obtiendrez la courbe suivante après quelques heures de fonctionnement.
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.
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.
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
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.
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.
Vous obtiendrez la courbe suivante après quelques heures de fonctionnement.
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.
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