« Smokeping master et slave » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
 
(38 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:serveur]]
[[Category:debian]]
[[Category:monitoring]]
=Master=
=Master=
<pre>aptitude install smokeping apache2-mpm-itk makepasswd postfix mailutils</pre>
<pre>apt install smokeping apache2-mpm-itk makepasswd postfix</pre>


==configuration de smokeping==
==configuration de smokeping==
Ligne 11 : Ligne 14 :
contact  = votre mail
contact  = votre mail
mailhost = adresse de votre serveur smtp
mailhost = adresse de votre serveur smtp
cgiurl = http://localhost/cgi-bin/smokeping.cgi
cgiurl = http://localhost/smokeping/smokeping.cgi
display_name = serveur_name, localisation
display_name = serveur_name, localisation
</pre>
</pre>
Ligne 19 : Ligne 22 :
+ FPing
+ FPing
binary = /usr/bin/fping
binary = /usr/bin/fping
mininterval = 0.025
+ FPing6
+ FPing6
binary = /usr/bin/fping6
binary = /usr/bin/fping6
mininterval = 0.025
</pre>
</pre>
* Dans le fichier <code>Slaves</code> 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 !) :
* Dans le fichier <code>Slaves</code> 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 !) :
Ligne 69 : Ligne 74 :


==Préparation pour le slave==
==Préparation pour le slave==
<pre>echo "slave1.domain.tld:`makepasswd --chars=60`" > /etc/smokeping/smokeping_secrets</pre>
<pre>echo "slave1.domain.tld:$(makepasswd --chars=60)" > /etc/smokeping/smokeping_secrets</pre>


==configuration de apache==
==configuration de apache==
<pre>
<pre>
a2dissite default
cp /etc/apache2/site-available/default /etc/apache2/site-available/smokeping
a2ensite smokeping
a2ensite smokeping
</pre>
</pre>


Editez <code>/etc/apache2/site-available/smokeping</code> de manière à ajouter dans la virtualhost :
Editez <code>/etc/apache2/site-enabled/smokeping</code> de manière à ajouter dans la virtualhost :
<pre>
<pre>
ServerAdmin root@server.domain.tld
ServerAdmin root@server.domain.tld
Ligne 86 : Ligne 89 :
</pre>
</pre>


UNIQUEMENT si vous utilisez mpm-itk, modifiez les permissions :
<pre>
<pre>
chown -R smokeping:smokeping /var/lib/smokeping
chown -R smokeping:smokeping /var/lib/smokeping
chown smokeping:root /var/cache/smokeping
chown -R smokeping:root /var/cache/smokeping
</pre>
</pre>
UNIQUEMENT si vous utilisez un autre mpm, ajoutez les lignes suivantes dans <code>/etc/smokeping/config.d/pathnames</code> :
<pre>
dyndir  = /var/lib/smokeping/__cgi
precreateperms = 2775
</pre>
Activez le module cgi de apache :
<pre>a2enmod cgi</pre>


=Slave=
=Slave=


<pre>aptitude --without-recommends install smokeping</pre>
<pre>apt --without-recommends install smokeping</pre>


Modifiez <code>/etc/default/smokeping</code> :
Modifiez <code>/etc/default/smokeping</code> :
Ligne 105 : Ligne 118 :
<pre>
<pre>
touch /etc/smokeping/slavesecrets.conf
touch /etc/smokeping/slavesecrets.conf
chmod 0400 slavesecrets.conf
chmod 0400 /etc/smokeping/slavesecrets.conf
chown smokeping:root slavesecrets.conf
chown smokeping:root /etc/smokeping/slavesecrets.conf
</pre>
</pre>


Ajoutez la clé secrète que vous aviez générez plus tôt dans <code>/etc/smokeping/slavesecrets.conf</code>
Ajoutez la clé secrète que vous aviez générez plus tôt dans <code>/etc/smokeping/slavesecrets.conf</code>
==debian buster==
<pre>
mkdir /etc/systemd/system/smokeping.service.d/
cp /usr/share/doc/smokeping/examples/systemd/slave_mode.conf /etc/systemd/system/smokeping.service.d/
</pre>
editer /etc/systemd/system/smokeping.service.d/slave_mode.conf :
* ajout de <code>Environment="PERL_LWP_SSL_CA_PATH=/etc/ssl/certs/"</code>
* 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 :
<pre>
chmod +s /usr/bin/fping
chmod +s /usr/bin/fping6
</pre>
==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.<br>
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 :
<pre>
MASTER_URL=http://login:password@votre_master.tld/cgi-bin/smokeping.cgi
</pre>
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 <code>/etc/ssl/certs/myca.pem</code> puis lancez les commandes suivantes :
<pre>
cd /etc/ssl/certs/
chmod o+r myca.pem
ln -s myca.pem `openssl x509 -hash -noout -in myca.pem`.0
cd
</pre>
Ajoutez la ligne suivante dans <code>/etc/default/smokeping</code> :
<pre>export PERL_LWP_SSL_CA_PATH=/etc/ssl/certs/</pre>
=Probes=
==FPing et FPing6==
http://oss.oetiker.ch/smokeping/probe/FPing.en.html
; binary = /usr/bin/fping
: Défini le binaire à utiliser.<br/>
; 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 <code>pings</code> (définie dans <code>/etc/smokeping/config.d/Database</code>), 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.<br />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.<br />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).<br />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.<br />Default: 5
; urlformat = http://%host%/
: Le format d'url a charger. %host% sera remplacé par la valeur <code>host</code> 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==
<pre>
apt install tcptraceroute bc
wget -O /usr/local/bin/tcpping https://lafibre.info/images/tcpping/tcpping ; chmod +x /usr/local/bin/tcpping
</pre>
<pre>
+TCPPing
binary = /usr/local/bin/tcpping # mandatory
</pre>

Dernière version du 21 février 2024 à 10:52

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