« Smokeping master et slave » : différence entre les versions
Aucun résumé des modifications |
(→Slave) |
||
(52 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:serveur]] | |||
[[Category:debian]] | |||
[[Category:monitoring]] | |||
=Master= | =Master= | ||
<pre> | <pre>apt install smokeping apache2-mpm-itk makepasswd postfix</pre> | ||
==configuration de smokeping== | |||
Les fichiers de configurations se trouvent dans <code>/etc/smokeping/config.d/</code> | Les fichiers de configurations se trouvent dans <code>/etc/smokeping/config.d/</code> | ||
Ligne 9 : | Ligne 14 : | ||
contact = votre mail | contact = votre mail | ||
mailhost = adresse de votre serveur smtp | mailhost = adresse de votre serveur smtp | ||
cgiurl = http://localhost/ | cgiurl = http://localhost/smokeping/smokeping.cgi | ||
display_name = serveur_name, localisation | display_name = serveur_name, localisation | ||
</pre> | </pre> | ||
Ligne 17 : | 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 : | * 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 !) : | ||
<pre> | <pre> | ||
+slave1.domain.tld | +slave1.domain.tld | ||
display_name=slave1, localisation de slave1 | display_name=slave1, localisation de slave1 | ||
color=33cc33 | color=33cc33 | ||
</pre> | |||
* Exemple de fichier Targets : | |||
<pre> | |||
*** 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 | |||
</pre> | |||
==Préparation pour le slave== | |||
<pre>echo "slave1.domain.tld:$(makepasswd --chars=60)" > /etc/smokeping/smokeping_secrets</pre> | |||
==configuration de apache== | |||
<pre> | |||
a2ensite smokeping | |||
</pre> | |||
Editez <code>/etc/apache2/site-enabled/smokeping</code> de manière à ajouter dans la virtualhost : | |||
<pre> | |||
ServerAdmin root@server.domain.tld | |||
ServerName server.domain.tld | |||
AssignUserId smokeping smokeping | |||
Include /etc/smokeping/apache2.conf | |||
</pre> | |||
UNIQUEMENT si vous utilisez mpm-itk, modifiez les permissions : | |||
<pre> | |||
chown -R smokeping:smokeping /var/lib/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>apt --without-recommends install smokeping</pre> | |||
Modifiez <code>/etc/default/smokeping</code> : | |||
<pre> | |||
MODE=slave | |||
MASTER_URL=http://votre_master/cgi-bin/smokeping.cgi | |||
SHARED_SECRET=/etc/smokeping/slavesecrets.conf | |||
SLAVE_NAME=slave1.domain.tld | |||
</pre> | |||
<pre> | |||
touch /etc/smokeping/slavesecrets.conf | |||
chmod 0400 /etc/smokeping/slavesecrets.conf | |||
chown smokeping:root /etc/smokeping/slavesecrets.conf | |||
</pre> | |||
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