Recherche de site Web

Comment surveiller les performances d'Ubuntu à l'aide de Netdata


Netdata est un outil gratuit et open source de surveillance et de dépannage en temps réel pour les serveurs cloud, les conteneurs, les applications et l'infrastructure informatique sur site. Il fournit des mesures système très granulaires et en temps réel telles que les performances du processeur, l'utilisation de la RAM et du disque et les statistiques de bande passante, pour n'en citer que quelques-unes.

De plus, Netdata fournit également des visualisations de métriques interactives accessibles sur un navigateur Web, ainsi que des alarmes intelligentes qui aident à dépanner les pannes du système.

La technologie de pointe et la popularité de Netdata lui ont valu une place dans le cloud Forbes des 100 étoiles montantes en 2020, ce qui n’est pas une mince affaire. En fait, au moment de la rédaction de ce guide, il a reçu près de 50 000 étoiles Github.

Vous pouvez utiliser deux manières pour installer Netdata. Vous pouvez immédiatement exécuter un script automatisé sur un shell BASH. Cela met à jour vos systèmes et lance l'installation de Netdata. Vous pouvez également cloner le référentiel Git de Netdata et ensuite exécuter le script automatisé. La première méthode est simple et directe et c'est sur cela que nous nous concentrerons dans ce guide.

Dans cet article, nous verrons comment installer Netdata sur Ubuntu pour surveiller en temps réel, les performances et l'état des serveurs et des applications.

Plateformes prises en charge

Netdata prend en charge les distributions Ubuntu LTS suivantes :

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Comment installer Netdata dans Ubuntu Linux

Pour commencer l'installation, exécutez la commande ci-dessous sur votre terminal bash pour télécharger et exécuter le script.

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

Lors de l'exécution du script, les événements suivants se produisent :

  • Le script découvre automatiquement votre distribution Linux, met à jour la liste des packages et installe tous les packages logiciels requis.
  • La dernière arborescence des sources netdata est téléchargée sur le chemin /usr/src/netdata.git.
  • Le script installe netdata en exécutant le script ./netdata-installer.sh à partir de l'arborescence source.
  • Une mise à jour est effectuée sur cron.daily pour garantir que netdata est mis à jour quotidiennement.

Au fur et à mesure de l'exécution du script, vous recevrez des conseils sur la manière d'accéder à Netdata sur un navigateur et de le gérer en tant que service systemd.

L'installation prend un certain temps, alors donnez-lui environ 10 minutes et revenez. Enfin, vous obtiendrez le résultat ci-dessous à mesure que le script termine l’installation.

Une fois installé, démarrez, activez et vérifiez l'état de Netdata comme indiqué.

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

Par défaut, Netdata écoute sur le port 19999 et cela peut être confirmé à l'aide de la commande netstat comme indiqué.

sudo netstat -pnltu | grep netdata

Si UFW est en cours d'exécution, essayez d'ouvrir le port 19999 car cela sera nécessaire lors de l'accès à Netdata sur le navigateur.

sudo ufw allow 19999/tcp
sudo ufw reload

Enfin, pour accéder à Netdata, passez à votre navigateur et parcourez l'URL suivante

http://server-ip:19999/

C'est ce qui vous accueille une fois que vous parcourez l'URL. En fait, vous réaliserez que vous n’aurez pas besoin de vous connecter. Toutes les mesures du système seront affichées comme indiqué.

Vous pouvez parcourir différents graphiques en cliquant sur vos mesures préférées dans la barre latérale droite du tableau de bord. Par exemple, pour consulter les statistiques de l'interface réseau, cliquez sur l'option « Interfaces réseau ».

Sécuriser Netdata avec l'authentification de base sur Ubuntu

Jusqu'à présent, tout le monde peut accéder au tableau de bord Netdata et jeter un coup d'œil aux différentes métriques du système. Cela équivaut à une faille de sécurité et nous voulons absolument l’éviter.

Dans cette optique, nous allons configurer l'authentification HTTP de base. Nous devons installer le package apache2-utils qui fournit le programme htpasswd qui sera utilisé pour configurer le nom d'utilisateur et le mot de passe de l'utilisateur. De plus, nous installerons le serveur Web Nginx qui fera office de proxy inverse.

Pour installer le serveur Web Nginx et le package apache2-utils, exécutez la commande.


sudo apt install nginx apache2-utils

Avec Nginx et apache2-utils installés, nous allons créer un fichier de configuration dans le répertoire /etc/nginx/conf.d. Cependant, n'hésitez pas à utiliser le répertoire sites-available si vous utilisez Nginx à d'autres fins que Netdata.


sudo vim /etc/nginx/conf.d/default.conf

Dans le fichier de configuration, nous allons d'abord demander à Nginx de proxy les requêtes entrantes pour le tableau de bord Netdata. Par la suite, nous ajouterons une invite d'authentification de base qui accorde uniquement aux utilisateurs autorisés l'accès au tableau de bord Netdata en utilisant l'authentification par nom d'utilisateur/mot de passe.

Voici la configuration complète. N'oubliez pas de remplacer les directives server_ip et example.com par votre propre adresse IP et nom de serveur.


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

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    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://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

Comprenons la configuration, section par section.

Section 1:


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

Nous avons spécifié un module amont appelé netdata-backend qui fait référence au serveur Web intégré de Netdata à l'aide de l'adresse loopback 127.0.0.1< et le port 19999 qui est le port par défaut sur lequel Netdata écoute. La directive keepalive définit le nombre maximum de connexions inactives pouvant rester ouvertes.

Section 2:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Il s'agit de la section principale de blocage du serveur Nginx. La première ligne spécifie l'adresse IP externe que Nginx doit écouter lorsque les clients envoient leurs requêtes. La directive server_name spécifie le nom de domaine du serveur et demande à Nginx d'exécuter le bloc serveur lorsque les clients invoquent le nom de domaine au lieu de l'adresse IP externe.

Les deux dernières lignes indiquent l'authentification HTTP simple qui nécessite que l'utilisateur se connecte à l'aide d'un nom d'utilisateur et d'un mot de passe. Le module auth_basic déclenche la fenêtre contextuelle du nom d'utilisateur/mot de passe sur le navigateur avec « Authentification requise » sur le titre qui peut ensuite être personnalisé selon vos préférences.

Le module auth_basic_user_file pointe vers le nom du fichier qui contiendra le nom d'utilisateur et le mot de passe de l'utilisateur autorisé à accéder au tableau de bord de Netdata – Dans ce cas netdata-access. Nous créerons ce fichier plus tard.

Section 3:

La dernière section est le bloc location qui est contenu dans le bloc serveur. Cela gère le proxy et le transfert des requêtes entrantes vers le serveur Web Nginx.


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://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }

Pour l'authentification, nous allons créer un nom d'utilisateur et un mot de passe pour un utilisateur appelé tecmint à l'aide de l'utilitaire htpasswd et stocker les informations d'identification dans le fichier netdata-access. .


sudo htpasswd -c /etc/nginx/netdata-access tecmint

Fournissez le mot de passe et confirmez-le.

Ensuite, redémarrez le serveur Web Nginx pour que les modifications prennent effet.


sudo systemctl restart nginx

Pour tester si la configuration s'est bien déroulée, continuez et parcourez l'adresse IP de votre serveur


http://server-ip

Une fenêtre contextuelle d'authentification apparaîtra comme indiqué ci-dessous. Fournissez votre nom d'utilisateur et votre mot de passe et appuyez sur ENTER.

Par la suite, vous aurez accès au tableau de bord Netdata.

Cela nous amène à la fin de notre sujet d’aujourd’hui. Vous venez d'apprendre comment installer l'outil de surveillance Netdata et configurer l'authentification HTTP de base sur Ubuntu. N'hésitez pas à consulter d'autres graphiques sur diverses métriques du système.