Smokeping master et slave

De Linux Server Wiki
Aller à la navigation Aller à la recherche

Master

apt install smokeping apache2-mpm-itk makepasswd postfix

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

apt --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.
protocol = 4|6
Spécifie s'il faut utiliser le protocole IPv4 ou IPv6
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

apt 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