Outils pour utilisateurs

Outils du site


netdata_monitoring_de_serveur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
netdata_monitoring_de_serveur [2021/03/10 23:41] – [Netdata - Monitoring de serveur] n1c0netdata_monitoring_de_serveur [2023/04/11 21:55] (Version actuelle) Benjamin Labomedia
Ligne 1: Ligne 1:
 ======Netdata - Monitoring de serveur====== ======Netdata - Monitoring de serveur======
  
-Petite description de Netdata dans le [[tableau_comparatif_de_monitoring|comparatif des solutions pour le monitoring]].+Petite description de [[https://www.netdata.cloud/|Netdata]] dans le [[tableau_comparatif_de_monitoring|comparatif des solutions pour le monitoring]].
  
-Pour ce tutoriel, on va considérer que l'on installe Netdata sur un sous domaine (netdata.monsite.org), sur un serveur sous Debian 10 avec Apache2. Il faut aussi que le programme [[https://certbot.eff.org/|certbot]] soit installé pour le certificat SSL (https).+Pour ce tutoriel, on va considérer que l'on installe Netdata sur un sous domaine (netdata.monsite.org), sur un serveur sous **Debian 10** avec **Apache2**. Il faut aussi que le programme [[https://certbot.eff.org/|certbot]] soit installé pour le certificat SSL (https).
  
 Netdata écoute par défaut sur le port 19999, on choisira plutôt 15999 (par exemple) pour ne pas garder la valeur par défaut. Netdata écoute par défaut sur le port 19999, on choisira plutôt 15999 (par exemple) pour ne pas garder la valeur par défaut.
  
 On protégera l'accès à Netdata derrière un login / mot de passe via le module auth_digest d'apache. On protégera l'accès à Netdata derrière un login / mot de passe via le module auth_digest d'apache.
 +
 +Il faut aussi que les modules d'apache **rewrite** et **proxy** soient activés.
  
 =====Installation===== =====Installation=====
  
-====Préparation préliminaire====+====Préliminaires====
  
 Pour faire les choses bien, on va créer un //user// dans lequel on aura un dossier netdata.monsite.org qui permettra à Certbot de valider le certificat SSL. De manière générale, sur un serveur hébergeant plusieurs site, on fait 1 user = 1 site pour cloisonner les droits entre les sites. Pour faire les choses bien, on va créer un //user// dans lequel on aura un dossier netdata.monsite.org qui permettra à Certbot de valider le certificat SSL. De manière générale, sur un serveur hébergeant plusieurs site, on fait 1 user = 1 site pour cloisonner les droits entre les sites.
Ligne 22: Ligne 24:
 chown -R www-data: /home/stats/www/netdata.monsite.org chown -R www-data: /home/stats/www/netdata.monsite.org
 </code> </code>
-====Préparation apache et vhost==== 
  
-En cours d'écriture...+On active les modules nécessaires dans apache : 
 + 
 +<code bash> 
 +cd /etc/apache2/mods-available 
 +a2enmod auth_digest headers proxy rewrite 
 +systemctl restart apache2.service 
 +</code> 
 + 
 +====Netdata==== 
 + 
 +La [[https://learn.netdata.cloud/docs/get|Documentation]] est assez explicite, ici on choisit une install sur la branche stable et sans envoi de données anonymes en lançant cette commande : 
 + 
 +<code bash> 
 +bash <(curl -Ss https://my-netdata.io/kickstart.sh) --stable-channel --disable-telemetry 
 +</code> 
 + 
 +Netdata sera installé dans les dossiers suivants : 
 + 
 +  * the daemon     at /usr/sbin/netdata 
 +  * config files   in /etc/netdata 
 +  * web files      in /usr/share/netdata 
 +  * plugins        in /usr/libexec/netdata 
 +  * cache files    in /var/cache/netdata 
 +  * db files       in /var/lib/netdata 
 +  * log files      in /var/log/netdata 
 +  * pid file       at /var/run/netdata.pid 
 +  * logrotate file at /etc/logrotate.d/netdata 
 + 
 +Netdata sera alors automatiquement démarré et accessible sur l'IP du serveur via le port 19999, mais on va le changer avant de poursuivre : 
 + 
 +<code bash> 
 +cd /etc/netdata 
 +./edit-config netdata.conf 
 +</code> 
 + 
 +Dans ce fichier, modifier la valeur 19999 par 15999 ici : 
 + 
 +<code bash> 
 +[web] 
 +    ... 
 +    default port = 15999 
 +    ... 
 +</code> 
 + 
 +Et redémarrer Netdata : 
 + 
 +<code bash> 
 +systemctl restart netdata 
 +</code> 
 + 
 +====Apache, virtual host et certificat SSL==== 
 + 
 +On suppose que le sous domaine netdata.monsite.org pointe déjà vers le serveur, sinon, modifier vos DNS en conséquence. 
 + 
 +D'abord on crée un virtual host sur le port 80. Pour ça, créer un fichier /etc/apache2/sites-available/netdata.monsite.org.conf et y mettre : 
 + 
 +<code bash> 
 +<VirtualHost *:80> 
 + 
 +        ServerAdmin moi@monsite.org 
 +        ServerName netdata.monsite.org 
 + 
 +        DocumentRoot "/home/stats/www/netdata.monsite.org" 
 + 
 +        <Directory /home/stats/www/netdata.monsite.org> 
 +                Options -Indexes +FollowSymLinks +MultiViews 
 +                Require all granted 
 +                AllowOverride All 
 +        </Directory> 
 + 
 +        ErrorLog /var/log/apache2/netdata.monsite.org.error.log 
 +        LogLevel error 
 +        CustomLog /var/log/apache2/netdata.monsite.org.access.log vhost_combined 
 + 
 +</VirtualHost> 
 +</code> 
 + 
 +Activer ce virtual host : 
 + 
 +<code bash> 
 +a2ensite netdata.monsite.org.conf 
 +systemctl restart apache2.service 
 +</code> 
 + 
 +Créer un certificat SSL en lançant la commande suivante et suivre les instructions : 
 + 
 +<code bash> 
 +certbot --apache 
 +</code> 
 + 
 +Le sous domaine n'est maintenant accessible qu'en HTTPS. 
 + 
 +Il faut maintenant afficher netdata lorsque que l'on visite le sous domaine netdata.monsite.org. On sait que netdata est accessible sur le port 15999, on va rediriger le traffic du sous domaine vers localhost:15999 grâce au module //proxy// d'apache. 
 + 
 +Modifier le virtual host en ajoutant : 
 + 
 +<code bash> 
 +<IfModule mod_proxy.c> 
 +    RewriteEngine On 
 +    ProxyRequests Off 
 +    ProxyPreserveHost On 
 + 
 +    <Proxy *> 
 +        Require all granted 
 +    </Proxy> 
 + 
 +    ProxyPass "/" "http://localhost:15999/" connectiontimeout=5 timeout=30 keepalive=on 
 +    ProxyPassReverse "/" "http://localhost:15999/" 
 +</IfModule> 
 +</code> 
 + 
 +Rédémarrer apache. Désormais, Netdata est accessible sur l'URL netdata.monsite.org. 
 + 
 +=====Configuration et Optimisation===== 
 + 
 +====Protéger l'accès==== 
 + 
 +Pour cacher Netdata du public, on utilise le module //auth_digest// d'apache. 
 + 
 +D'abord, on crée un dossier pour ranger nos clefs, par exemple ici : 
 + 
 +<code bash> 
 +cd /etc/apache2/ 
 +mkdir monserveur_htdigests 
 +cd monserveur_htdigests 
 +</code> 
 + 
 +Ensuite, dans ce dossier on crée un fichier **netdata.monsite.org** qui contiendra le mot de passe crypté du compte nommé **netdata** dans le groupe **stats** : 
 + 
 +<code bash> 
 +htdigest -c netdata.monsite.org stats netdata 
 +</code> 
 + 
 +Enfin, il faut modifier le virtual host en ajoutant : 
 + 
 +<code bash> 
 +<Location /> 
 +    AuthType Digest 
 +    AuthName "stats" 
 +    AuthDigestProvider file 
 +    AuthUserFile /etc/apache2/monserveur_htdigests/netdata.monsite.org 
 +    Require valid-user 
 +</Location> 
 +</code> 
 + 
 +Rédémarrer apache et un login / mot de passe serront demandés quand on accédera à netdata.monsite.org. 
 + 
 +====Netdata==== 
 + 
 +Basé sur la documentation de [[https://learn.netdata.cloud/docs/agent/daemon/config|la config]] et de [[https://learn.netdata.cloud/guides/configure/performance|l'optimisation]]. 
 + 
 +Pour modifier la configuration générale de Netdata, il faut aller dans son répertoire **/etc/netdata** et exécuter : 
 + 
 +<code bash> 
 +./edit-config netdata.conf 
 +</code> 
 + 
 +Il y a plusieurs sections comme ''[global]'', ''[web]''... 
 + 
 +On a déjà vu plus haut comment changer le port, visible dans la section ''[web]''
 + 
 +Penser à redémarrer Netdata à chaque modification de la config : 
 + 
 +<code bash> 
 +systemctl restart netdata 
 +</code> 
 + 
 +===Section [global]=== 
 + 
 +On change la valeur de hostname pour donner un nom au serveur : 
 + 
 +<code bash> 
 +hostname = Mon-Serveur 
 +</code> 
 + 
 +On coupe les logs car apache en produit aussi : 
 + 
 +<code bash> 
 +debug log = none 
 +error log = none 
 +access log = none 
 +</code> 
 + 
 +On va aussi changer la durée de conservation des données : il faut déterminer combien de place on souhaite allouer à Netdata, en fonction du nombre de metrics mesurées et d’autres paramètres. Voir le calculateur pour aider à trouver la bonne valeur, puis changer la valeur, par exemple pour 3500 metrics, toutes les secondes, conservées sur 6 mois (180 jours), cela représente 42Go. On augmente aussi le ''page cache size'' (32 par défaut) : 
 + 
 +<code bash> 
 +page cache size = 64 
 +dbengine multihost disk space = 42000 
 +</code> 
 + 
 +===Section [web]=== 
 + 
 +Puisque Netdata est derrière un proxy Apache, on désactive la compression gzip car apache s'en occupe déjà. 
 + 
 +<code bash> 
 +enable gzip compression = no 
 +</code> 
 + 
 +Enfin, on autorise uniquement les connections depuis localhost, le proxy se chargeant d’afficher Netdata sur le nom de domaine choisi : 
 + 
 +<code bash> 
 +bind to = localhost 
 +</code> 
 + 
 +===Config email=== 
 + 
 +Netdata envoie des [[https://learn.netdata.cloud/guides/step-by-step/step-05|notifications d'alerte]] quand la charge monte trop fort sur les composants surveillés. Par défaut, c'est envoyé par mail à l'utilisateur root du serveur. Changeons ça en modifiant le fichier de configuration adéquate. Toujours dans le dossier **/etc/netdata** : 
 + 
 +<code bash> 
 +./edit-config health_alarm_notify.conf 
 +</code> 
 + 
 +Changer la valeur suivante comme suit : 
 + 
 +<code bash> 
 +DEFAULT_RECIPIENT_EMAIL="moi@monsite.org" 
 +</code> 
 + 
 +====Commandes utiles==== 
 + 
 +Arrêter / démarrer Netdata : 
 + 
 +<code bash> 
 +systemctl stop netdata 
 +systemctl start netdata 
 +</code> 
 + 
 +Désinstaller complètement Netdata : 
 + 
 +<code bash> 
 +/usr/libexec/netdata/netdata-uninstaller.sh 
 +</code> 
 + 
 +Mettre à jour manuellement Netdata (normalement c’est automatique) : 
 + 
 +<code bash> 
 +/usr/libexec/netdata/netdata-updater.sh 
 +</code> 
 + 
 +====Liens pratiques==== 
 + 
 +  * [[https://learn.netdata.cloud/docs/agent/cheatsheet|La cheatsheet de Netdata]] 
 +  * [[https://learn.netdata.cloud/guides/step-by-step/step-00|Le guide pas à pas d'installation / configuration]] 
 + 
 +{{tag>n1c0 serveur monitoring futuretic }}
netdata_monitoring_de_serveur.1615419687.txt.gz · Dernière modification : 2021/03/10 23:41 de n1c0