NETDATA : Supervisez vos serveurs !

Netdata est un outil de supervision en temps réel pour les systèmes Linux qui va nous permettre de visualiser les éléments cardinaux d’un système (processeur, mémoire, débit du disque dur, traffic réseau, application, etc.). C’est assez exhaustif et vous serez surpris du nombres d’éléments visualisables ! 

Développé en langage C, l’installation est simple et les ressources utilisées sont extrêmement faibles.

Le projet est disponible sur github et une démonstration est également accessible.

Entrons dans le vif du sujet et rendons Netdata accessible par un sous-domaine. Nous partons du principe que vous avez un environnement LEMP fonctionnel sous Debian 8 « Jessie ».

1°) Mise à jour du système :

apt-get update && apt-get dist-upgrade

2°) Installation des dépendances :

apt-get install zlib1g-dev gcc make git autoconf autogen automake pkg-config

3°) Installation de « netdata » :

cd /opt
git clone https://github.com/firehol/netdata.git netdata --depth=1
cd netdata
./netdata-installer.sh

Vous pouvez spécifier un autre répertoire en ajoutant un argument –install à la commande ci-dessus.

./netdata-installer.sh --install /opt

Une fois l’installation terminée, un fichier de configuration sera créé au chemin suivant :etc/netdata/netdata.confEt c’est tout ! (enfin presque…)

Le programme devrait être démarré et accessible à l’adresse suivante :http://127.0.0.1:19999(ou votre IP/Nom de domaine :19999)

Vous pouvez aussi vous assurer que le processus soit actif :

root@scwdeb ~# ps aux | grep "netdata" | grep -v grep
 netdata   2564  0.2  0.6 1105152 13680 ?       SNl  09:16   0:42 ./netdata
 root     15478  0.8  0.1   7024  2380 ?        SN   13:16   0:06 /usr/libexec/netdata/plugins.d/apps.plugin 1
 netdata  15498  0.1  0.1  13344  3060 ?        SN   13:17   0:01  /bin/bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1
 netdata  15531  1.1  0.2  14432  4236 ?        SN   13:17   0:08 /bin/bash /usr/libexec/netdata/plugins.d/charts.d.plugin 1
 netdata  26568  0.0  0.0   5812   664 ?        SN   13:29   0:00 sleep 0.995
 netdata  26578  0.0  0.0   5812   688 ?        SN   13:29   0:00 sleep 0.2

Pour tuer le processus, on fera simplement :

killall netdata

Pour plus d’informations, n’hésitez pas à consulter le wiki, il est considérablement renseigné.

4°) Configuration du vhost Nginx en sous-domaine :

Important : La configuration ci-dessous est personnelle, dans le sens où les paramètres décris sont en corrélation avec mes besoins, en terme de sécurité notamment ou encore de performance. Adaptez donc ce fichier ou référez-vous au vhost proposé par l’auteur.

On créé notre vhost :

nano /etc/nginx/sites-enabled/netdata.conf

et on y renseigne :

 upstream backend {
    server 127.0.0.1:19999;
    keepalive 64;
    }

    server{
    listen 80;
    server_name netdata.mondomaine.fr;
    return 301 https://$server_name$request_uri;
    }

    server {
    listen 443 ssl http2;
    server_name netdata.mondomaine.fr;

    charset utf-8;

    ssl on;
    ssl_certificate /home/cert/0001_chain.pem;
    ssl_certificate_key /home/cert/privkey.pem;

    include /etc/nginx/conf.d/ssl.conf;

    auth_basic "Zone restreinte:"; #cf. paragraphe suivant.
    auth_basic_user_file /etc/nginx/.htpasswd; #cf. paragraphe suivant.

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
    }

Netdata étant en accès libre, si vous souhaitez le protéger par une authentification, procédez comme suit : 

On installe apache2-utils :

apt-get install apache2-utils

puis on génère un fichier .htpasswd :

htpasswd -c /etc/nginx/.htpasswd nomutilisateur

Il ne nous reste plus qu’à ajouter à notre vhost les lignes suivantes :
auth_basic « Zone restreinte: »;
auth_basic_user_file /etc/nginx/.htpasswd;On relance nginx :

systemctl restart nginx.service

5°) Paramètres divers:

Vous trouverez dans cette section du wiki les fichiers de configuration de divers paramètres : logrotate, init.d, etc.

Vous pouvez désormais vous rendre sur netdata.mondomaine.fr