Netdata : La plateforme d’observabilité, de surveillance et de dépannage en temps réel

Introduction

Dans un monde où les infrastructures informatiques deviennent de plus en plus complexes, la surveillance des systèmes en temps réel est important pour maintenir leur performance et anticiper les problèmes. Netdata s’impose comme une solution open source offrant une observabilité complète et une surveillance en temps réel des systèmes, des applications et des infrastructures. Cet outil interessant permet aux administrateurs système et aux développeurs de comprendre rapidement le comportement de leurs systèmes et d’intervenir en cas de dysfonctionnement.

Dans cet article, nous allons découvrir les fonctionnalités de Netdata, comment l’installer et l’utiliser, et pourquoi il est devenu un outil indispensable pour l’observabilité et le dépannage des systèmes modernes

Prérequis

Avant de commencer, voici les prérequis pour utiliser Netdata :

  • Un serveur Ubuntu prêt à être configuré.
  • Accès root (ou administratif) pour l’installation.
  • Une compréhension de base des concepts d’observabilité et de surveillance des systèmes.

Use Case

Dans ce cas d’utilisation, imaginons une équipe DevOps responsable de la gestion d’une infrastructure complexe hébergeant un site web en production. Pour garantir des performances optimales, l’équipe décide d’installer Netdata sur le serveur de production tournant sur Ubuntu 22 afin de surveiller les ressources critiques du système, telles que le CPU, la mémoire, les disques, le réseau, ainsi que les processus actifs sur chaque machine.

Principales fonctionnalités

Observabilité en temps réel

L’une des forces majeures de Netdata est sa capacité à collecter et afficher des données en temps réel. Il peut surveiller plus de 2000 métriques système différentes, telles que l’utilisation du CPU, la mémoire, le trafic réseau, l’activité disque, et bien plus encore. Ces données sont présentées sous forme de graphiques dynamiques, mis à jour chaque seconde, offrant ainsi une vue précise et en temps réel de l’évolution de l’état du système.

Surveillance des applications et services

Netdata va au-delà de la simple surveillance matérielle en offrant des intégrations pour surveiller les bases de données (MySQL, PostgreSQL), les serveurs web (Nginx, Apache), les conteneurs (Docker, Kubernetes), et bien d’autres services. Cela vous permet d’avoir une vue d’ensemble de votre infrastructure, tant au niveau matériel que logiciel.

Alertes et notifications personnalisées

Pour faciliter le dépannage, Netdata permet de configurer des alertes personnalisées basées sur des seuils définis. Par exemple, vous pouvez recevoir une notification lorsque l’utilisation du CPU dépasse 90 % pendant plus de 5 minutes, ou lorsqu’un disque approche de la saturation. Les notifications peuvent être envoyées via email, Slack, Discord, et d’autres services.

Architecture distribuée et faible impact sur les ressources

Netdata est conçu pour être léger et n’utilise que peu de ressources système, ce qui le rend idéal pour une utilisation sur des machines de production. En outre, il prend en charge l’architecture distribuée, vous permettant de surveiller plusieurs nœuds à partir d’un seul tableau de bord central (fonctionnalité payante).

Interface web intuitive

L’interface Web de Netdata est l’un de ses points forts. Grâce à son design simple et interactif, les utilisateurs peuvent facilement naviguer entre les différentes métriques, zoomer sur des périodes spécifiques et analyser les tendances à travers des graphiques détaillés. Cela rend le dépannage plus rapide et plus efficace.

Inscription à Netdata Cloud

Netdata Cloud propose une solution pratique et centralisée pour installer et gérer Netdata sur plusieurs systèmes, sans nécessiter de configurations locales complexes. C’est une option idéale si vous recherchez une solution clé en main avec une gestion centralisée de vos nœuds (serveurs) et un accès à une interface Cloud pour surveiller l’ensemble de vos infrastructures en temps réel.

Commencez par vous inscrire gratuitement sur Netdata Cloud. Une fois inscrit, vous aurez accès à une interface appelée “space” où vous pourrez gérer et surveiller vos serveurs ou nœuds connectés.

Gestion des Spaces

Un Space dans Netdata est un conteneur de haut niveau utilisé pour organiser les membres de votre équipe, définir les niveaux d’accès, et gérer les nœuds à surveiller. Vous pouvez créer plusieurs Spaces, mais il est généralement conseillé de n’en utiliser qu’un seul pour centraliser toutes vos métriques et nœuds. Pour ajouter un nouvel Space, cliquez sur le bouton vert dans la barre latérale.

Gestion des Rooms

Chaque Space peut contenir plusieurs Rooms, qui sont des sous-sections permettant de mieux organiser vos serveurs. Un Room peut héberger aucun ou plusieurs nœuds, facilitant ainsi la gestion de votre infrastructure. Pour créer un Room, accédez à l’icône Settings dans la barre latérale, puis sélectionnez Rooms.

Cliquez sur le bouton gris à droite pour procéder à la création d’un Room. Une fois le Room créé, vous pouvez y ajouter des nœuds pour regrouper les serveurs sous une même catégorie. Pour ce faire, accédez aux détails du Room en cliquant sur le chevron dans la colonne Actions du tableau.

Gestion des Nodes

Pour ajouter un nœud (serveur) dans le Room que vous venez de créer, allez dans Settings > Rooms, puis sélectionnez le Room approprié. Vous devrez voir une interface similaire à l’image ci-dessus. Cliquez sur le bouton gris à droite, et un pop-up s’affichera avec une commande à utiliser.

Choisissez la plateforme sur laquelle vous souhaitez installer Netdata (Linux, macOS, etc.), puis copiez le script d’installation généré par Netdata Cloud pour votre système.

Installation de Netdata

Connectez-vous à votre serveur via SSH et collez le script d’installation que vous avez copié depuis Netdata Cloud. Ce script télécharge et installe Netdata, active les services nécessaires, et connecte automatiquement votre nœud à l’interface Cloud. Voici un exemple de commande à exécuter :

Le script s’assure que Netdata est configuré correctement et qu’il est prêt à envoyer des données à l’interface Netdata Cloud.

    Vérification

    Sur l’interface principale de Netdata Cloud, lorsque vous appuyez sur “All nodes” en haut à gauche, vous avez la possibilité de sélectionner un Room parmi ceux que vous avez créés. Cela changera le contexte de visualisation pour n’afficher que les données relatives aux nodes du Room sélectionné.

    Accès à Netdata Local

    Si vous préférez accéder à Netdata directement depuis l’instance installée sur votre serveur, plutôt que via l’interface app.netdata.cloud, vous pouvez suivre les étapes ci-dessous pour consulter les métriques de votre serveur localement.

    Par défaut, l’interface Web de Netdata est accessible sur le port 19999. Pour y accéder, ouvrez votre navigateur et entrez l’adresse IP de votre serveur suivie du port :

    http://your-server-ip:19999

    Cependant, si vous avez configuré un pare-feu, comme UFW (Uncomplicated Firewall), l’accès au port 19999 pourrait être bloqué.

    Vérification du pare-feu (UFW)

    Si vous utilisez UFW, vous pouvez vérifier son statut et, si nécessaire, ouvrir le port 19999 avec la commande suivante :

    sudo ufw allow 19999/tcp

    Ensuite, rechargez UFW pour appliquer les changements :

    sudo ufw reload

    Sécurisation de Netdata en local

    Pour garantir la sécurité de votre installation Netdata, il est important de protéger l’accès à l’interface de surveillance. Si vous avez précédemment ouvert le port 19999 pour accéder à Netdata depuis l’extérieur, il est recommandé de le fermer.

    Pour UFW (Uncomplicated Firewall) :

    sudo ufw deny 19999/tcp

    Configurer un Reverse Proxy

    Pour sécuriser davantage l’accès à Netdata, il est conseillé de configurer un reverse proxy. Cela permet non seulement de restreindre l’accès via un port standard (comme le port 80 pour HTTP ou 443 pour HTTPS), mais aussi d’ajouter une couche de sécurité avec SSL/TLS et une authentification basique.

    Utilisation de CloudPanel

    Si vous utilisez CloudPanel, vous pouvez facilement mettre en place cette configuration en suivant les instructions disponibles sur le lien suivant : Sécuriser un site avec CloudPanel. CloudPanel offre une interface graphique simplifiée pour mettre en place cette configuration de manière sécurisée.

    Dans notre cas, imaginons que nous avons configuré le reverse proxy pour accéder à Netdata via le sous-domaine netdata.exemple.com.

    Dépannage

    Si vous avez installer netdata en passant par le dépôts de paquets Ubuntu comme ci-dessous :

    sudo apt update
    sudo apt install netdata

    Et pour une raison données vous ne souhaitez pas desinstaller votre installation et l’installer par la methode enoncé ci dessous vous pouvez suivre ces etapes afin de corriger certains problemes comme passer à une version plus recente de netdata et gerer l’affichage des logs. Voici normalement ce que vous devez obtenir comme interface si vous êtes passé par le depot d’ubuntu lors de l’installation.

    Installer le plugin systemd-journal

    Vous pouvez remarquer l’absence de l’onglet “Logs” ainsi que la nouvelle interface graphique offert par netdata cloud. Cela est dû au fait que certains plugins ne sont pas installés par défaut, notamment le plugin permettant de surveiller les logs du journal système systemd.

    Pour résoudre ce problème ainsi que activer l’onglet “Logs”, suivez les étapes ci-dessous pour installer le plugin nécessaire.

    Ajouter le dépôt officiel de Netdata

    Tout d’abord, vous devez ajouter le dépôt officiel de Netdata à votre système. Cela garantit que vous installerez toujours la version la plus récente et complète de Netdata, y compris les plugins supplémentaires comme celui pour systemd.

    Exécutez la commande suivante pour ajouter le dépôt :

    curl -s https://packagecloud.io/install/repositories/netdata/netdata/script.deb.sh | sudo bash

    Installer le plugin systemd-journal

    Une fois le dépôt ajouté, vous pouvez installer le plugin Netdata pour systemd en utilisant la commande suivante :

    sudo apt-get install netdata-plugin-systemd-journal

    Cette commande installera le plugin qui permettra à Netdata de lire et afficher les journaux système à partir de journald.

    Vérifier l’onglet “Logs” dans l’interface

    Une fois le service redémarré, accédez de nouveau à l’interface Web de Netdata. Vous devriez maintenant avoir l’onglet “Logs” qui vous permet de visualiser en temps réel les journaux système collectés par systemd.

    Vous remarquerez désormais l’apparition de nouveaux onglets dans l’interface de Netdata, améliorant ainsi l’observabilité de votre système. Cependant, pour que les logs système s’affichent pleinement et que vous puissiez bénéficier de toutes les fonctionnalités avancées, il est nécessaire de configurer Netdata Cloud.

    Afficher les logs dans Netdata

    Pour afficher les logs dans Netdata, il est nécessaire de prouver que vous êtes le propriétaire de l’instance Netdata que vous utilisez. Cette vérification se fait via Netdata Cloud, une étape indispensable pour garantir que seules les personnes autorisées peuvent accéder aux informations sensibles, comme les logs.

    Voici les étapes détaillées pour configurer l’affichage des logs dans Netdata :

    Créer un compte sur Netdata Cloud

    Netdata impose de passer par leur plateforme Cloud pour accéder à certaines fonctionnalités sensibles, comme les logs. La première étape est donc de créer un compte sur Netdata Cloud si c’est pas déjà fait. Une fois inscrit, vous pourrez “revendiquer” votre instance Netdata locale.

    Autoriser l’instance Netdata

    Ensuite, vous devez associer votre instance locale à votre compte Netdata Cloud. Voici comment procéder :

    Ouvrez l’interface Web de votre instance Netdata à travers le reverse proxy configuré (pour notre cas c’est netdata.exemple.com). En haut à droite de l’interface ou bien au niveau de l’onglet Logs, cliquez sur le bouton “Sign in”. Lors de la connexion, Netdata vous demandera d’autoriser l’URL de votre instance locale netdata.exemple.com. Cette étape est nécessaire pour valider que vous êtes bien le propriétaire de l’instance. Une fois cette action effectuée, Netdata génère un fichier aléatoire contenant un code secret au niveau de votre serveur.

    Récupérer le code secret

    Une fois l’autorisation effectuée, vous êtes redirigé sur votre instance Netdata locale, appuyez ensuite en haut à droite sur le bouton connect, dans la fenêtre qui s’affiche, sélectionnez l’espace de travail déjà existant. Netdata vous donnera une commande à exécuter sur votre serveur pour récupérer le code secret nécessaire à l’authentification. Exécutez la commande sur votre serveur, puis renseignez le champ avec le code obtenu. Cette étape permet de finaliser l’authentification et d’autoriser l’affichage des logs dans votre interface Netdata.

    Affichage des logs

    Une fois que le code secret a été validé par Netdata Cloud, vous pourrez actualiser l’ecran et accéder à l’onglet Logs. Vous verrez alors les journaux système et d’autres informations sensibles directement dans l’interface.

    Conclusion

    Netdata se présente comme une solution de surveillance puissante, flexible et en temps réel pour tous types d’infrastructures. Que vous gériez un ou plusieurs serveurs, Netdata offre une visibilité approfondie sur les performances système, les ressources réseau, et bien plus encore, grâce à son interface intuitive et ses visualisations détaillées.

    En combinant l’efficacité du monitoring local avec l’accessibilité de Netdata Cloud, vous pouvez centraliser et organiser la surveillance de vos serveurs de manière structurée via les Spaces et Rooms. Cette organisation permet de gérer facilement une infrastructure complexe, tout en profitant de l’installation rapide et de la simplicité d’utilisation.

    Architecte logiciel & CTO * Plus de publications

    Architecte logiciel, Développeur d'application diplomé d'ETNA, la filière d'alternance d'Epitech, j'ai acquis une expertise solide dans le développement d'applications, travaillant sur des projets complexes et techniquement diversifiés. Mon expérience englobe l'utilisation de divers frameworks et langages, notamment Symfony, Api Platform, Drupal, Zend, React Native, Angular, Vue.js, Shell, Pro*C...

    Contributeurs

    0 0 votes
    Évaluation de l'article
    guest
    0 Commentaires
    Le plus ancien
    Le plus récent Le plus populaire
    Commentaires en ligne
    Afficher tous les commentaires

    Ingénierie informatique (SSII)

    Applize crée des logiciels métiers pour accompagner les entreprises dans la transition vers le zéro papier.


    Avez-vous un projet en tête ? Discutons-en.