Ceci est une ancienne révision du document !
Table des matières
Netdata - Monitoring de serveur
Petite description de Netdata dans le 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 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.
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
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.
Les commandes suivantes créent un user stats, créent un dossier /home/stats/www/netdata.monsite.org et attribue les droits à Apache sur ce dossier.
adduser stats mkdir /home/stats/www/netdata.monsite.org chown -R www-data: /home/stats/www/netdata.monsite.org
On active les modules nécessaires dans apache :
cd /etc/apache2/mods-available a2enmod auth_digest headers proxy rewrite systemctl restart apache2.service
Netdata
La 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 :
bash <(curl -Ss https://my-netdata.io/kickstart.sh) --stable-channel --disable-telemetry
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 :
cd /etc/netdata ./edit-config netdata.conf
Dans ce fichier, modifier la valeur 19999 par 15999 ici :
[web] ... default port = 15999 ...
Et redémarrer Netdata :
systemctl restart netdata
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 :
<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>
Activer ce virtual host :
a2ensite netdata.monsite.org.conf systemctl restart apache2.service
Créer un certificat SSL en lançant la commande suivante et suivre les instructions :
certbot --apache
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 :
<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>
Désormais, Netdata est accessible sur l'URL netdata.monsite.org.