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…
Dans le cadre d’une installation en complément de Nagios, il peut envoyer les événements de type perte de paquets, latence trop élevée ou rupture réseau vers la console de celui-ci. C’est cette installation et intégration à Nagios que nous allons détailler maintenant.
Ce tutoriel a été réalisé par :
Rôle | Nom |
---|---|
Rédacteur | Romuald FRONTEAU |
Smokeping a besoin de dépendances pour fonctionner, il faut installer les paquets suivant :
sudo aptitude install echoping curl fping rrdtool libwww-perl openssh-client libio-socket-inet6-perl libnet-telnet-perl libnet-dns-perl libnet-ldap-perl libauthen-radius-perl libauthen-simple-radius-perl libio-socket-ssl-perl librrds-perl librrdp-perl libapache2-mod-speedycgi
SmokePing étant un programme Perl, l’installation se résume à la vérification/installation des modules Perl requis et à la copie des différents fichiers composant le logiciel. Comme à l’accoutumée, cette installation a lieu sur la dernière version en date de Ubuntu Server LTS (8.0.4 au moment de la rédaction))
wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.4.2.tar.gz tar -xvzf smokeping-2.4.2.tar.gz
sudo mkdir -p /usr/local/smokeping/share sudo mkdir -p /usr/local/smokeping/etc sudo mkdir -p /usr/local/smokeping/lib sudo mkdir -p /usr/local/smokeping/share/cache sudo mkdir -p /usr/local/smokeping/var/rrd sudo mkdir -p /usr/local/smokeping/sbin sudo mkdir -p /usr/local/smokeping/bin
sudo cp bin/smokeping.dist /usr/local/smokeping/bin/smokeping sudo cp htdocs/smokeping.cgi.dist /usr/local/smokeping/share/smokeping.cgi sudo cp -R htdocs/cropper/ /usr/local/smokeping/share/ sudo cp etc/config.dist /usr/local/smokeping/etc/config sudo cp etc/smokemail.dist /usr/local/smokeping/etc/smokemail sudo cp etc/smokeping_secrets.dist /usr/local/smokeping/etc/smokeping_secrets sudo cp etc/tmail.dist /usr/local/smokeping/etc/tmail sudo cp etc/basepage.html.dist /usr/local/smokeping/var/www/basepage.html sudo cp -R lib/ /usr/local/smokeping/lib/
sudo chmod 640 /usr/local/smokeping/etc/* sudo chmod 644 /usr/local/smokeping/etc/config sudo chmod -R 775 /usr/local/smokeping/share/ sudo chown www-data:www-data /usr/local/smokeping/share/
LoadModule speedycgi_module modules/mod_speedycgi.so AddHandler cgi-script .cgi Alias /smokeping "/usr/local/smokeping/share" <Directory "/usr/local/smokeping/share"> Allow from all AddHandler cgi-script cgi Options ExecCGI </Directory> <IfModule dir_module> DirectoryIndex index.html smokeping.cgi </IfModule>
Le fichier de configuration de smokeping est découpé en sections suivantes :
L’intégration de SmokePing avec Nagios est aisée et repose sur :
La console smokeping peut être intégrée en le rajoutant dans la sidebar de nagios.
Editez /usr/local/nagios/share/side.php
et ajouter ce code :
<li><a href="/url/de/smokeping" target="<?php echo $link_target;?>">SmokePing</a></li>
Et voilà le tour est joué, vous avez un menu supplémentaire qui vous permettra d’accéder à Smokeping tout en restant dans l’interface Nagios
Pour intégrer SmokeTrace à smokeping, il faut récupérer ce qu’il faut dans les sources (version >= 2.4).
Tout d’abord, nous allons autoriser la commande traceroute aux utilisateurs.
chown root:root /usr/bin/traceroute chmod u+s /usr/bin/traceroute
Normalement, si vous avez bien paramétré votre smokeping, vous devez avoir un fichier smokeping_apache2.conf comme ceci :
LoadModule speedycgi_module modules/mod_speedycgi.so AddHandler cgi-script .cgi Alias /smokeping "/usr/local/smokeping/share" <Directory "/usr/local/smokeping/share"> Allow from all AddHandler cgi-script cgi Options ExecCGI </Directory> <IfModule dir_module> DirectoryIndex index.html smokeping.cgi </IfModule>
Il va falloir copier plusieurs contenu à partir de l’archive détarré.
mkdir /usr/local/smokeping/share/script cp htdocs/script/Tr.js /usr/local/smokeping/share/script
Vérifier que le fichier tr.html point sur le bon chemin pour le Tr.js.
cp htdocs/tr.html /usr/local/smokeping/share/
Copier le répertoire ressource dans le même répertoire que tr.html
cp -r htdocs/ressource usr/local/smokeping/share/
Copier le tr.cgi.dist au même endroit que le tr.html
cp htdocs/tr.cgi.dist usr/local/smokeping/share/tr.cgi
Dans le tr.cgi, modifier les ligne suivante :
#!/usr/bin/speedy -w use lib qw(/usr/local/smokeping/lib/);
Pour finir, editez le fichier de configuration config et ajoutez le code ci-dessous au niveau de la section * Target *
menuextra = <a target='_blank' href='tr.html{HOST}' class='{CLASS}' \ onclick="window.open(this.href,this.target, \ 'width=800,height=500,toolbar=no,location=no,status=no,scrollbars=no'); \ return false;">*</a>
Ceci fera apparaitre une * derrière chaque nom d’hôte.
Voici le résultat :