Smokeping master et slave
Master
aptitude install smokeping apache2-mpm-itk makepasswd postfix
chmod +s /usr/bin/fping chmod +s /usr/bin/fping6
configuration de smokeping
Les fichiers de configurations se trouvent dans /etc/smokeping/config.d/
- Dans le fichier
Alerts
, éditez les champs to et from - Dans le fichier
General
éditez les champs suivants :
owner = votre nom contact = votre mail mailhost = adresse de votre serveur smtp cgiurl = http://localhost/smokeping/smokeping.cgi display_name = serveur_name, localisation
- Dans le fichier
Probes
éditez le comme cela :
*** Probes *** + FPing binary = /usr/bin/fping mininterval = 0.025 + FPing6 binary = /usr/bin/fping6 mininterval = 0.025
- Dans le fichier
Slaves
ajoutez le nom de votre slave (vous pouvez récupérer les couleurs sur http://html-color-codes.info/ attention cependant, elles doivent être en minuscule !) :
+slave1.domain.tld display_name=slave1, localisation de slave1 color=33cc33
- Exemple de fichier Targets :
*** Targets *** probe = FPing menu = Top title = Network Latency Grapher remark = Poney + Online menu = Online title = Online Network ++ ping menu = ping.online.net title = ping.online.net ICMPv4 Latency probe = FPing host = ping.online.net slaves = slave1.domain.tld ++ ping6 menu = ping6.online.net title = ping6.online.net ICMPv6 Latency probe = FPing6 host = ping6.online.net slaves = slave1.domain.tld + OVH menu = OVH title = OVH Network (AS16276) ++ demo menu = demo.ovh.eu title = demo.ovh.eu ICMPv4 Latency probe = FPing host = demo.ovh.eu slaves = slave1.domain.tld
Préparation pour le slave
echo "slave1.domain.tld:`makepasswd --chars=60`" > /etc/smokeping/smokeping_secrets
configuration de apache
a2ensite smokeping
Editez /etc/apache2/site-enabled/smokeping
de manière à ajouter dans la virtualhost :
ServerAdmin root@server.domain.tld ServerName server.domain.tld AssignUserId smokeping smokeping Include /etc/smokeping/apache2.conf
UNIQUEMENT si vous utilisez mpm-itk, modifiez les permissions :
chown -R smokeping:smokeping /var/lib/smokeping chown -R smokeping:root /var/cache/smokeping
UNIQUEMENT si vous utilisez un autre mpm, ajoutez les lignes suivantes dans /etc/smokeping/config.d/pathnames
:
dyndir = /var/lib/smokeping/__cgi precreateperms = 2775
Activez le module cgi de apache :
a2enmod cgi
Slave
aptitude --without-recommends install smokeping
Modifiez /etc/default/smokeping
:
MODE=slave MASTER_URL=http://votre_master/cgi-bin/smokeping.cgi SHARED_SECRET=/etc/smokeping/slavesecrets.conf SLAVE_NAME=slave1.domain.tld
touch /etc/smokeping/slavesecrets.conf chmod 0400 /etc/smokeping/slavesecrets.conf chown smokeping:root /etc/smokeping/slavesecrets.conf
Ajoutez la clé secrète que vous aviez générez plus tôt dans /etc/smokeping/slavesecrets.conf
debian buster
mkdir /etc/systemd/system/smokeping.service.d/ cp /usr/share/doc/smokeping/examples/systemd/slave_mode.conf /etc/systemd/system/smokeping.service.d/
editer /etc/systemd/system/smokeping.service.d/slave_mode.conf :
- ajout de
Environment="PERL_LWP_SSL_CA_PATH=/etc/ssl/certs/"
- configurer --master-url et --shared-secret
- NB : possibilité aussi d'utiliser EnvironmentFile
Problème de permissions fping
Si l'utilisateur smokeping n'a pas le droit de lancer des pings :
chmod +s /usr/bin/fping chmod +s /usr/bin/fping6
Utilisation de login http
Vous pouvez activer l'authentification HTTP basic (digest ne fonctionne pas) afin de protéger le fichier cgi de votre master.
Pour que les slaves puissent continuer à contacter le cgi du master, il faudra ajouter le login et le pass défini dans le fichier htpasswd du master a la ligne MASTER_URL du fichier /etc/default/smokeping :
MASTER_URL=http://login:password@votre_master.tld/cgi-bin/smokeping.cgi
Gardez a l'esprit que ce mot-de-passe sera librement accessible à toute personne pouvant se connecter au slave, il est donc préférable de définir un couple login/pass par slave.
Utilisation d'un certificat SSL
Placez le certificat de votre CA dans /etc/ssl/certs/myca.pem
puis lancez les commandes suivantes :
cd /etc/ssl/certs/ chmod o+r myca.pem ln -s myca.pem `openssl x509 -hash -noout -in myca.pem`.0 cd
Ajoutez la ligne suivante dans /etc/default/smokeping
:
export PERL_LWP_SSL_CA_PATH=/etc/ssl/certs/
Probes
FPing et FPing6
http://oss.oetiker.ch/smokeping/probe/FPing.en.html
- binary = /usr/bin/fping
- Défini le binaire à utiliser. fping6 ou fping.
- blazemode = true
- Dans ce mode, 1 paquet supplémentaire est envoyé par rapport à la valeur
pings
(définie dans/etc/smokeping/config.d/Database
), et le premier paquet envoyé est ignoré (ce premier paquet a souvent un RTT plus long et non significatif).
- hostinterval
- Le paramètre "-p" de fping en secondes. Ce paramètre défini le temps que fping attendra entre deux paquets vers une même cible.
default : 1s (1000ms, fping default)
- mininterval
- Le paramètre "-i" de fping en secondes. Ce paramètre défini le temps que fping attendra entre deux paquets quelque soit la cible. Permet d'éviter de flooder votre propre réseau.
default : 0.01s (10ms)
- timeout
- Le paramètre "-t" de fping en secondes. Ce paramètre n'a pas d'effet car fping est utilisé en mode comptage (-C).
default : 0.5s (500ms, fping default)
Curl
http://oss.oetiker.ch/smokeping/probe/Curl.en.html
- binary = /usr/bin/curl
- Défini le binaire à utiliser.
- forks = 5
- Défini le nombre de processus à utiliser au maximum.
Default: 5
- urlformat = http://%host%/
- Le format d'url a charger. %host% sera remplacé par la valeur
host
dans la définition de la cible. Paramètre obligatoire.
- pings
- Le nombre de requête à envoyer. Défini globalement dans /etc/smokeping/config.d/Database, mais il peut être bon d'utiliser une valeur plus basse pour la probe curl car elle peut générer une charge importante sur le serveur web distant si vous avez beaucoup de slaves.
- expect
- Donne la valeur qui doit être présente dans le retour de curl. Ne laissez pas cette variable vide, sinon le plugin considérera le site comme up si il n'arrive pas a le contacter (timeout par exemple)
TCPing
aptitude install tcptraceroute bc wget -O /usr/local/bin/tcpping https://lafibre.info/images/tcpping/tcpping ; chmod +x /usr/local/bin/tcpping
+TCPPing binary = /usr/local/bin/tcpping # mandatory