Introduction

Netdata est un outil en temps réel de surveillance des performances et de l'intégrité des systèmes et des applications. Il s'agit d'un agent de surveillance hautement optimisé qui peut être installé sur des serveurs Linux.

On va installer Netdata et apprendre comment empêcher l'accès public à son interface Web, car Netdata ne fournit pas l'authentification par lui-même.

Installer et configurer Netdata

Pour installer la dernière version de Netdata, vous pouvez utiliser un script bash fourni par Netdata.

Exécutez simplement le script suivant dans votre terminal :

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

L’installation est automatisée, le script déploie les dépendances nécessaires manquantes , il faut valider certaines fois en appuyant sur ENTRÉE.

Une fois installé, Netdata est automatiquement démarré et activé sur systemd.

Vérifiez l'état via systemctl :

systemctl status netdata

Vous pouvez désormais accéder à l'interface Web de Netdata via <votre_ip>:19999

Maintenant, nous devons nous assurer que Netdata écoute uniquement 127.0.0.1car nous ne souhaitons pas que l'interface Web soit accessible sur Internet.

Ouvrez le fichier de configuration /etc/netdata/netdata.conf avec un éditeur de votre choix :

nano /etc/netdata/netdata.conf

Recherchez la section [web], décommentez le paramètre bind to et remplacez-le par ce qui suit :

bind to = 127.0.0.1

Installation de NGINX

Nous allons installer NGINX pour configurer un proxy inverse afin que nous puissions accéder à l'interface Web Netdata en toute sécurité.

Il faut donc installer NGINX et apache2-utils en exécutant les commandes suivantes, apache2-utils est nécessaire pour la deuxième partie de cette étape :

apt install nginx apache2-utils -y

Configuration de l'authentification

Exécutez cette commande pour créer une paire nom d'utilisateur-mot de passe :

htpasswd -c /etc/nginx/.htpasswd user1

Appuyez sur Entrée et saisissez le mot de passe de user1 à l'invitation.

Confirmez que la paire nom d'utilisateur-mot de passe a été créée en exécutant :

cat /etc/nginx/.htpasswd

Configuration de Nginx

Créez votre fichier de configuration pour Netdata :

nano /etc/nginx/conf.d/netdata.conf

Mettez les lignes suivantes dans le fichier. Remplacez netdata.example.com par votre propre nom de domaine :

server {
      listen 80;
      server_name plex.example.com;

      location / {
          proxy_pass http://127.0.0.1:19999;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          
          auth_basic "Protected";
          auth_basic_user_file /etc/nginx/.htpasswd;
          
          proxy_pass http://backend;
          proxy_http_version 1.1;
          proxy_pass_request_headers on;
          proxy_set_header Connection "keep-alive";
          proxy_store off;
      }
}

Enregistrez et fermez ce fichier.

Vérifiez ensuite la configuration pour vérifier si tout va bien.

nginx -t

Rechargez Nginx pour que la modification prenne effet :

systemctl reload nginx

Ouvrez votre navigateur et accédez au nom de domaine ou sous-domaine précédemment enregistré.

Activer le HTTPS

Pour chiffrer le trafic HTTP lorsque vous visitez le serveur Netdata, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt.

apt-get install software-properties-common -y
add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install certbot python3-certbot-nginx -y

Exécutez ensuite la commande suivante pour obtenir et installer le certificat TLS :

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d netdata.example.com

Le certificat doit maintenant être obtenu et installé automatiquement, vous pouvez accéder à l'interface Web de Netdata via HTTPS :