Comment surveiller les performances d’Ubuntu à l’aide de Netdata
Netdata est un outil gratuit et opensource 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 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 mesures interactives accessibles sur un navigateur Web, ainsi que des alarmes intelligentes qui aident à résoudre les pannes du système.
La technologie de pointe et la popularité de Netdata lui ont valu une place dans le Forbes Cloud 100 rising stars 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.
Il existe deux façons d’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 exécuter ensuite le script automatisé. La première méthode est simple et directe et c’est ce sur quoi nous nous concentrerons dans ce guide.
Dans cet article, nous allons voir comment vous pouvez installer Netdata sur Ubuntu pour surveiller en temps réel, les performances et la surveillance de la santé des serveurs et des applications.
Plates-formes 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)
Au cours 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 paquets et installe tous les paquets logiciels requis.
- La dernière arborescence des sources netdata est téléchargée dans le chemin d’accès /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 s’assurer que netdata est mis à jour quotidiennement.
Au fur et à mesure de l’exécution du script, vous recevrez des conseils sur la façon d’accéder à Netdata sur un navigateur et sur la façon 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 lorsque le script terminera 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, faites un effort pour 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 naviguez sur l’URL suivante
http://server-ip:19999/
C’est ce qui vous accueille une fois que vous naviguez sur l’URL. En fait, vous vous rendrez compte que vous n’aurez pas besoin de vous connecter. Toutes les métriques du système seront affichées comme indiqué.
Vous pouvez parcourir différents graphiques en cliquant sur vos indicateurs préférés 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écurisation de Netdata avec l’authentification de base sur Ubuntu
Jusqu’à présent, n’importe qui peut accéder au tableau de bord Netdata et jeter un coup d’œil aux différentes mesures du système. Il s’agit d’une faille de sécurité et nous voulons absolument éviter cela.
Dans cet esprit, nous allons configurer l’authentification HTTP de base. Nous devons installer le paquet 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 agira comme le 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 à l’intérieur du 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 n’accorde aux utilisateurs autorisés que l’accès au tableau de bord Netdata à l’aide de 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 de serveur et votre 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 de bouclage 127.0.0.1 et du port 19999 qui est le port par défaut sur lequel Netdata écoute. La directive keepalive définit le nombre maximal de connexions inactives qui peuvent rester ouvertes.
Tronçon 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 du bloc du serveur Nginx. La première ligne spécifie l’adresse IP externe que Nginx doit écouter lorsque les clients envoient leurs demandes. La directive server_name spécifie le nom de domaine du serveur et demande à Nginx d’exécuter le bloc de serveur lorsque les clients appellent 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 l’option « Authentification requise » sur le titre, qui peut ensuite être personnalisée 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.
Chapitre 3 :
La dernière section est le bloc d’emplacement qui est contenu dans le bloc serveur. Celui-ci 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 entrent en vigueur.
sudo systemctl restart nginx
Pour tester si la configuration s’est bien déroulée, poursuivez et parcourez l’adresse IP de votre serveur
http://server-ip
Une fenêtre contextuelle d’authentification s’affiche comme indiqué ci-dessous. Indiquez votre nom d’utilisateur et votre mot de passe, puis appuyez sur ENTRÉE.
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 à 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.









