SmokePing
SmokePing
SmokePing
Présentation
SmokePing permet de mesurer et d'afficher sous forme graphique les temps de réponse aux ping, http, https, smtp d'une machine ou d'un groupe de machines, et de déclencher des alertes si une machine ne répond pas aux tests.
Cet article se veut seulement être un moyen de mise en place rapide de cet outil et non un substitut à la documentation officielle.
Installation des prérequis de SmokePing
Voici la liste de ces programmes :
Je vais détailler l'installation de tous ces programmes à l'exception d'Apache et de Perl qui sont fournis généralement avec votre distribution. Il est à noter que les programmes FPing IPV6 et le module perl Socket6 seront à installer si vous souhaitez gérer l'IPV6 (non développé ici).
Rappel : si votre distribution contient un paquetage pour rrdtool, préférez utiliser ce paquetage plutôt que les sources. Certains puristes prétendrons qu'utiliser les sources c'est l'esprit Linux, mais ce sont surtout des problèmes de dépendances non gérées, des choix par forcément simple à faire sur l'utilisation de telle ou telle fonctionnalité du logiciel que l'on désire compiler.
Pour vérifier que votre distribution contient un paquetage pour rrdtool, il faut utiliser l'outil de gestion de paquetage de celle-ci. Par exemple :
Votre distribution contient aussi presque surement un outil graphique pour obtenir cette information. Pour plus d'information sur ces questions, consulter cette documentation. |
Installation de RRDtool
RRDtool permet de stocker les résultats des mesures faites et de les afficher sous forme graphique :
$ tar zxvf rrdtool-1.0.42.tar.gz
$ cd rrdtool-1.0.42
$ ./configure
$ make
$ su
Password:
# make install
# ln -s /usr/local/rrdtool-1.0.42 /usr/local/rrdtool
Installation de FPing
FPing est une version améliorée de la commande ping :
$ tar zvxf fping-2.4b2_to.tar.gz
$ cd fping-2.4b2_to
$ ./configure
$ make
$ su
Password:
# make install
Installation de echoping
echoping permet de tester les services echo, http, https, smtp... d'une machine :
$ tar zxvf echoping-5.0.1.tar.gz
$ cd echoping-5.0.1
$ ./configure --with-ssl=/usr/include (pour Openssl)
$ make
$ su
Password:
# make install
# ln -s /usr/local/bin/echoping /usr/bin/echoping
Installation de SpeedyCGI
SpeedyCGI dope la vitesse d'exécution de SmokePing :
$ tar zxvf CGI-SpeedyCGI-2.21.tar.gz
$ cd CGI-SpeedyCGI-2.21
$ perl Makefile.PL
Optional mod_speedycgi support.
Mod_speedycgi increases performance under Apache by avoiding the fork/exec
overhead associated with each request under normal SpeedyCGI. However, it
requires a working copy of "apxs" in your path, Apache with mod_so
support, and additional Apache configuration.
Compile mod_speedycgi (default no)? no
Checking if your kit is complete...
Looks good
Writing Makefile for src
Writing Makefile for speedy_backend
Writing Makefile for speedy
Writing Makefile for CGI::SpeedyCGI
$ make
$ su
Password:
# make install
Installation de SmokePing
Une fois toutes les dépendances installées, il ne reste plus qu'à faire celle de SmokePing :
$ tar zxvf smokeping-1.20.tar.gz
$ cd smokeping-1.20
$ su
Password:
# mkdir /var/www/html/smokeping/data/.simg -p
# ln -s /var/www/html/smokeping/data/.simg /var/www/html/.simg
# mkdir /usr/lib/smokeping
# cp lib/* /usr/lib/smokeping -R
# mkdir /etc/smokeping
SmokePing est composé de plusieurs fichiers qu'il faut adapter à la configuration de votre installation et copier dans les répertoires les plus adaptés à votre système.
Le premier d'entre eux est smokeping.dist, c'est l'éxecutable :
# vi /usr/bin/smokeping
#!/usr/bin/perl -w
# -*-perl-*-
use lib qw(/usr/local/rrdtool/lib/perl);
use lib qw(/usr/lib/smokeping);
use Smokeping 1.20;
Smokeping::main("/etc/smokeping/config");
----------Suite du fichier----------
Le suivant est le script CGI qui permet d'accéder à l'interface HTML de SmokePing :
# vi /var/www/cgi-bin/smokeping.cgi
#!/usr/bin/speedy -w
# -*-perl-*-
use lib qw(/usr/local/rrdtool/lib/perl);
use lib qw(/usr/lib/smokeping);
use Smokeping 1.20;
Smokeping::cgi("/etc/smokeping/config");
----------Suite du fichier----------
Le suivant, basepage.html, est le fichier template qui permet de personnaliser l'interface HTML :
Le fichier config est comme son nom l'indique le fichier de configuration principal de SmokePing. Dans celui-ci on déclare les machines que l'on souhaite pinger (via fping) et/ou tester les services echo, http, https, smtp... (via EchoPing)
Voici un exemple de configuration de fichier dans lequel on teste le ping ainsi que les services echo, http, https et smtp :
# Note that all IP addresses in this file are false, to prevent some
# machine falling uder a deadly DOS storm because all users keep
# the same addresses in their config.
*** General ***
owner = Joe Random
contact = joe@some.place.xyz
mailhost = smtp.mailhost.abc
sendmail = /usr/lib/sendmail
imgcache = /var/www/html/smokeping/data/.simg
imgurl = ../.simg
datadir = /var/www/html/smokeping/data
piddir = /var/run
cgiurl = http://127.0.0.1/cgi-bin/smokeping.cgi
smokemail = /etc/smokeping/smokemail
# specify this to get syslog logging
syslogfacility = local0
*** Database ***
step = 300 # Le temps en secondes entre chaque test
pings = 20 # Le nombre de tests lancé à chaque fois
# consfn mrhb steps total
AVERAGE 0.5 1 1008
AVERAGE 0.5 12 4320
MIN 0.5 12 4320
MAX 0.5 12 4320
AVERAGE 0.5 144 720
MAX 0.5 144 720
MIN 0.5 144 720
*** Presentation ***
template = /etc/smokeping/basepage.html
+ overview
width = 600
height = 50
range = 10h
+ detail
width = 600
height = 200
unison_tolerance = 2
"Last 3 Hours" 3h
"Last 30 Hours" 30h
"Last 10 Days" 10d
"Last 400 Days" 400d
*** Probes ***
+ FPing
binary = /usr/local/sbin/fping
+ EchoPing # uses TCP or UDP echo (port 7)
+ EchoPingHttp # HTTP (80/tcp) for web servers and caches
+ EchoPingHttps # HTTPS (443/tcp) for web servers
+ EchoPingSmtp # SMTP (25/tcp) for mail servers
*** Alerts ***
to = joe@some.place.xyz
from = joe@some.place.xyz
+lossdetect
type = loss
# in percent
pattern = ==0%,==0%,==0%,==0%,>20%,>20%,>20%
comment = suddenly there is packet loss
+rttdetect
type = rtt
# in milli seconds
pattern = <10,<10,<10,<10,<10,<100,>100,>100,>100
comment = routing mesed up again ?
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of Linux Company. \
Here you will learn all about the latency of our network.
+ Machine1
menu = Machine1
title = Titre Machine1
host = Machine1.com
+ Machine2
menu = Machine2
title = Titre Machine2
++ icmp
menu = icmp
title = Icmp Server
probe = EchoPing
alerts = lossdetect
host = Machine2
++ http
menu = http
title = Web Server (www-server) / HTTP
probe = EchoPingHttp
alerts = lossdetect
host = www.Machine2.com
++ https
menu = https
title = Https Server
probe = EchoPingHttps
alerts = lossdetect
host = www.Machine2.com
++ smtp
menu = smtp
title = Smtp Server
probe = EchoPingSmtp
alerts = lossdetect
host = smtp.Machine2.com
Démarrage de SmokePing
# vi /etc/syslog.conf
------Rajouter la ligne en fin de fichier--------
# Save smokeping messages
local0.info /var/log/smokeping
# touch /var/log/smokeping
# chmod 600 /var/log/smokeping
# /etc/rc.d/init.d/syslog restart
# /usr/bin/smokeping
Une fois l'exécution terminée, on peut visualiser le résultat de votre travail :
Voici un exemple de ce l'on peut faire avec Smokeping : ici
Ajout d'un service smokepingd
Un script est disponible ici pour lancer SmokePing au démarrage de votre système
# vi /etc/rc.d/init.d/smokepingd
#!/bin/sh
#
# smokeping This starts and stops the smokeping daemon
# chkconfig: 345 98 11
# description: Start/Stop the smokeping daemon
# processname: smokeping
# Source function library.
. /etc/rc.d/init.d/functions
SMOKEPING=/usr/bin/smokeping
LOCKF=/var/lock/subsys/smokeping
CONFIG=/etc/smokeping/config
----------Suite du fichier----------
# cd /etc/rc.d/init.d/
# chmod 755 smokepingd
# /sbin/chkconfig --add --level 345 smokepingd
Pour finir
J'espère vous avoir fait découvrir ou redécouvrir cet outil. Pour ma part je compte l'utiliser pour tester la qualité de liaisons à Relais de Trame ainsi que les services http de serveurs intranet. Je vous encourage très fortement à consulter la documentation officielle afin de découvrir les nombreuses possibilités offertes par cette application.
Copyright
Copyright © 01/05/2003, Dimitri CLATOT
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |