Smokeping
From AleikoumWiki
m |
m |
||
(One intermediate revision not shown.) | |||
Line 50: | Line 50: | ||
<pre> | <pre> | ||
wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.3.5.tar.gz | wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.3.5.tar.gz | ||
- | tar -xvzf smokeping-2.3.5.tar.gz && mv smokeping-2.3.5 /usr/local/ | + | tar -xvzf smokeping-2.3.5.tar.gz && mv smokeping-2.3.5 /usr/local/ |
+ | ln -s /usr/local/smokeping-2.3.5/ /usr/local/smokeping | ||
cd /usr/local/smokeping | cd /usr/local/smokeping | ||
</pre> | </pre> | ||
Line 57: | Line 58: | ||
- | + | == Configuration == | |
Vous devez modifier plusieurs fichiers (scripts et fichiers de conf) pour qu'ils soient en phase avec la realite de votre installation... Cette partie vous explique quels fichiers sont necessaires a modifier et comment les modifier. | Vous devez modifier plusieurs fichiers (scripts et fichiers de conf) pour qu'ils soient en phase avec la realite de votre installation... Cette partie vous explique quels fichiers sont necessaires a modifier et comment les modifier. | ||
- | + | === bin/smokeping === | |
C'est le script qui tournera en daemon pour alimenter vos bases RRD.<br /> | C'est le script qui tournera en daemon pour alimenter vos bases RRD.<br /> | ||
Il faut commencer par le creer en reprenant le .dist dispo : | Il faut commencer par le creer en reprenant le .dist dispo : | ||
Line 76: | Line 77: | ||
</pre> | </pre> | ||
- | + | === htdocs/smokeping.cgi === | |
C'est le cgi que vous allez attaquer pour avoir le retour des infos du bin/smokeping !<br /> | C'est le cgi que vous allez attaquer pour avoir le retour des infos du bin/smokeping !<br /> | ||
Comme avant il faut commencer par le creer en reprenant le .dist dispo : | Comme avant il faut commencer par le creer en reprenant le .dist dispo : | ||
Line 90: | Line 91: | ||
</pre> | </pre> | ||
- | + | === etc/basepage.html === | |
De meme pour le "template" html | De meme pour le "template" html | ||
<pre> | <pre> | ||
Line 101: | Line 102: | ||
</pre> | </pre> | ||
- | + | === Configuration d'Apache === | |
Puis pour que tout ceci soit conforme j'ai declare ceci dans mon apache (typiquement /usr/local/httpd:/conf/httpd.conf) : | Puis pour que tout ceci soit conforme j'ai declare ceci dans mon apache (typiquement /usr/local/httpd:/conf/httpd.conf) : | ||
Line 139: | Line 140: | ||
- | + | === etc/config === | |
Pour finir il faut editer le fichier de conf du smokeping ! Dans mon cas je n'ai rien fait de complexe : je ping juste 3 sites : | Pour finir il faut editer le fichier de conf du smokeping ! Dans mon cas je n'ai rien fait de complexe : je ping juste 3 sites : | ||
* www.google.com | * www.google.com | ||
Line 282: | Line 283: | ||
- | + | == Mise en route == | |
Bah c'est fini ! Enfin presque !<br /> | Bah c'est fini ! Enfin presque !<br /> |
Current revision
Contents |
L'Approche
Qu'est ce que c'est ?
Dans une autre page du wiki, je vous presentais Nagios et sa vision de la supervision...
Voici un outil supplementaire pour la supervision : Smokeping... qui permet de superviser les latences de votre reseau par le biais de de ping et de fping.
Dans l'absolue il n'apporte rien de plus qu'un Nagios qui utiliserait des plugins similaires mais je trouve que c'est un bon complement a Nagios. En effet, sans se prendre la tete on peut installer un systeme vraiment complet pour la supervision de la latence.
Liens
http://oss.oetiker.ch/smokeping/ : le site officiel de Smokeping
http://oss.oetiker.ch/rrdtool/ : le site officiel de RRDTool qui est indispensable a Smokeping
La Mise en Place
Prerequis
fping
C'est l'outil indispensable car c'est lui qui va faire les tests de latences
Pour ma part je l'ai installe via un RPM
rpm -i fping-2.4-1.b2.1.el3.rf.i386.rpm
speedycgi
Pour ameliorer l'utilisation des CGIs perl SpeedyCGI est la ! D'autant plus que Smokeping a ete optimise pour ce dernier donc autant l'utiliser...
D'abord on recupere les sources sur http://www.daemoninc.com/SpeedyCGI/ , une fois de-tare il suffit de suivre la procedure classique :
perl Makefile.PL make make test make install
rrdtool 1.2.x
Attention une version anterieure entrainera un cuisant echec lors de la creation des bases rrd :)
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz tar -xvzf rrdtool-1.2.27.tar.gz cd rrdtool-1.2.27 ./configure --prefix=/usr/local/rrdtool && make && make install
autres
Plein d'autres choses sont necessaires :
- des modules perl en pagailles (en ils dependent surtout de comment vous souhaitez superviser votre environnement)
- un serveur web ! Apache rulez
- ... tout le detail ici
Installation
Une fois que tout est pret, il ne reste plus qu'a installer notre solution Smokeping comme suit :
wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.3.5.tar.gz tar -xvzf smokeping-2.3.5.tar.gz && mv smokeping-2.3.5 /usr/local/ ln -s /usr/local/smokeping-2.3.5/ /usr/local/smokeping cd /usr/local/smokeping
c'est deja fini ! le plus lourd reste la configuration de l'outil...
Configuration
Vous devez modifier plusieurs fichiers (scripts et fichiers de conf) pour qu'ils soient en phase avec la realite de votre installation... Cette partie vous explique quels fichiers sont necessaires a modifier et comment les modifier.
bin/smokeping
C'est le script qui tournera en daemon pour alimenter vos bases RRD.
Il faut commencer par le creer en reprenant le .dist dispo :
mv bin/smokeping.dist bin/smokeping
Puis il faut modifier les lignes concernant le perl, les libs rrd et de smokeping et le fichier de conf dans mon cas ca a donne ca :
#!/usr/bin/perl -w ... use lib qw(/usr/local/rrdtool/lib/perl/5.8.0/); use lib qw(/usr/local/smokeping/lib/); ... Smokeping::main("/usr/local/smokeping/etc/config");
htdocs/smokeping.cgi
C'est le cgi que vous allez attaquer pour avoir le retour des infos du bin/smokeping !
Comme avant il faut commencer par le creer en reprenant le .dist dispo :
mv htdocs/smokeping.cgi.dist htdocs/smokeping.cgi
Et de la meme facon il va falloir modifier ce fichier pour le rendre coherent avec votre environnement :
#!/usr/bin/speedy -w ... use lib qw(/usr/local/rrdtool-1.2.27/lib/perl/5.8.0/)); use lib qw(/usr/local/smokeping/lib/); Smokeping::cgi("/usr/local/smokeping/etc/config");
etc/basepage.html
De meme pour le "template" html
... <script src="/smokeping/lib/prototype.js" type="text/javascript"></script> <script src="/smokeping/lib/scriptaculous.js?load=builder,dragdrop" type="text/javascript"></script> <script src="/smokeping/cropper.js" type="text/javascript"></script> <script src="/smokeping/smokeping-zoom.js" type="text/javascript"></script> ...
Configuration d'Apache
Puis pour que tout ceci soit conforme j'ai declare ceci dans mon apache (typiquement /usr/local/httpd:/conf/httpd.conf) :
############################################ #Smokeping : supervision ping ############################################ ScriptAlias /smokeping/cgi-bin "/usr/local/smokeping/htdocs/" <Directory "/usr/local/smokeping/htdocs/"> Options ExecCGI Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> Alias /smokeping/cache "/usr/local/smokeping/smokeping-ms/cache/" <Directory "/usr/local/smokeping/smokeping-ms/cache/"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> Alias /smokeping "/usr/local/smokeping/htdocs/cropper/" <Directory "/usr/local/smokeping/htdocs/cropper/"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all RewriteEngine on RewriteRule ^/.* /smokeping/cgi-bin/smokeping.cgi # pk ? pour que quoi qu'il arrive on tombe sur le cgi ! </Directory>
etc/config
Pour finir il faut editer le fichier de conf du smokeping ! Dans mon cas je n'ai rien fait de complexe : je ping juste 3 sites :
- www.google.com
- www.weborama.com
- www.yahoo.fr
Ici vous avez plusieurs exemples de fichiers de configuration afin d'obtenir une solution plus complete que celle presentee dans cet exemple.
*** General *** owner = Laby contact = erwan@plop.com mailhost = mail.plop.fr sendmail = /usr/lib/sendmail # NOTE: do not put the Image Cache below cgi-bin # since all files under cgi-bin will be executed ... this is not # good for images. imgcache = /usr/local/smokeping/smokeping-ms/cache imgurl = /smokeping/cache datadir = /usr/local/smokeping/smokeping-ms/data piddir = /usr/local/smokeping/smokeping-ms/var cgiurl = http://plop.com:8080/smokeping/cgi-bin/smokeping.cgi smokemail = /usr/local/smokeping/etc/smokemail.dist tmail = /usr/local/smokeping/etc/tmail.dist # specify this to get syslog logging syslogfacility = local0 # each probe is now run in its own process # disable this to revert to the old behaviour # concurrentprobes = no *** Alerts *** to = erwan@plop.com from = erwan@plop.com +someloss type = loss # in percent #pattern = >0%,*12*,>0%,*12*,>0% pattern = >0%,*10*,>0%,*10*,>0% comment = loss 3 times in a row +bigloss type = loss pattern = ==0%,==0%,==0%,>50%,>50%,>50% comment = big loss starting *** Database *** # 4 pings toutes les minutes step = 60 pings = 4 # 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 = /usr/local/smokeping/etc/basepage.html + charts menu = Charts title = The most interesting destinations ++ stddev sorter = StdDev(entries=>4) title = Top Standard Deviation menu = Std Deviation format = Standard Deviation %f ++ max sorter = Max(entries=>5) title = Top Max Roundtrip Time menu = by Max format = Max Roundtrip Time %f seconds ++ loss sorter = Loss(entries=>5) title = Top Packet Loss menu = Loss format = Packets Lost %f ++ median sorter = Median(entries=>5) title = Top Median Roundtrip Time menu = by Median format = Median RTT %f seconds + 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/sbin/fping *** Targets *** probe = FPing menu = Top title = Network Latency Grapher remark = my first smokeping conf + EXT menu = Exterieur title = vers l'exterieur ++ Google host = www.google.com ++ Weborama host = www.weborama.com ++ Yahoo host = www.yahoo.fr
Mise en route
Bah c'est fini ! Enfin presque !
Il faut juste lancer le petit binaire bin/smokeping
D'abord on le test voir si tout se deroule bien lors "d'un coup pour essayer" :
/usr/local/smokeping/bin/smokeping --config=/usr/local/smokeping/etc/config --debug
et si tout est bon et valider il suffit de le lancer a nouveau ainsi :
/usr/local/smokeping/bin/smokeping --config=/usr/local/smokeping/etc/config
en vous remerciant ! :)