10. Outils de surveillance système pour Ubuntu Server : guide complet

Maîtriser les outils de surveillance système pour Ubuntu Server est essentiel pour garantir des performances optimales, diagnostiquer les problèmes et maintenir la fiabilité du système. Dans ce tutoriel, nous explorerons les meilleurs outils de surveillance système disponibles pour les serveurs Ubuntu, notamment la surveillance des ressources en temps réel, les E/S disque, l’activité réseau et les tableaux de bord de serveur.


Article précédent:

01. Introduction à Ubuntu Server – SysOSX: AI & Cloud

02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud

03.Maîtriser la ligne de commande Linux pour Ubuntu Server – SysOSX: AI & Cloud

04. Gestion des utilisateurs et des autorisations sur Ubuntu Server : guide complet – SysOSX: AI & Cloud

05. Notions de base sur les réseaux pour Ubuntu Server : guide complet – SysOSX: AI & Cloud

06. Installation et gestion des logiciels sur Ubuntu Server : guide complet – SysOSX: AI & Cloud

07.Application des correctifs et mise à jour d’Ubuntu Server : guide complet – SysOSX: AI & Cloud

08. Sécuriser votre serveur Ubuntu : étapes pratiques de durcissement et de protection – SysOSX: AI & Cloud

09. Audit et journalisation du serveur Ubuntu



Utiliser htop et top pour la surveillance des ressources en temps réel

Introduction à htop et top

Les deux htop et top sont des outils en ligne de commande essentiels pour surveiller les ressources système en temps réel. Ils affichent des informations telles que l’utilisation du processeur, la consommation de mémoire et les processus en cours d’exécution.

Installation et exécution de htop (il est installé par défaut)

Pour installer htop, exécutez :

sudo apt update
sudo apt install htop

Pour lancer htop, tapez simplement :

htop

Fonctionnalités clés et cas d’utilisation de htop

htop est idéal pour :

  1. Identifier les processus gourmands en ressources: vous pouvez trier les processus par utilisation du processeur ou de la mémoire pour trouver rapidement les processus gourmands en ressources.
  2. Arrêter les processus: utilisez F9 pour mettre fin aux processus qui ne répondent pas ou qui posent problème directement depuis l’interface de htop .
  3. Surveiller les threads: développez les processus pour afficher les threads individuels et leur utilisation des ressources.
  4. Personnaliser les colonnes: appuyez sur F2 pour configurer l’affichage et ajouter ou supprimer des métriques comme les E/S disque ou l’utilisation du réseau.

Utiliser top

top est un outil plus simple, préinstallé sur les serveurs Ubuntu. Pour l’exécuter :

top

Commandes clés pour top:

  • Appuyez sur Shift + p pour trier par utilisation du processeur.
  • Appuyez sur Shift + m pour trier par utilisation de la mémoire.
  • Appuyez sur q pour quitter.

Installation et configuration de sysstat pour les métriques de performance

Qu’est-ce que sysstat?

sysstat est une suite d’outils permettant de collecter et de signaler les métriques de performance du système au fil du temps. Elle comprend des utilitaires comme iostat, vmstat, et sar.

Installation de sysstat

Pour installer sysstat:

sudo apt update
sudo apt install sysstat

Configuration de sysstat

Activez la collecte de données en modifiant le fichier de configuration :

sudo nano /etc/default/sysstat

Modifiez ENABLED="false" par ENABLED="true". Enregistrez, quittez, puis redémarrez le service :

sudo systemctl restart sysstat

Utiliser sysstat : les outils

  • iostat: surveiller les performances d’E/S disque.iostat
  • vmstat: surveiller les statistiques de mémoire, de processeur et d’E/S.vmstat
  • sar: générer des rapports historiques sur l’activité du système. sar -u 5 10 # CPU usage every 5 seconds for 10 intervals

Surveillance des E/S disque et de l’activité réseau

Surveillance des E/S disque avec iotop

Utilisez des outils comme iostat (de sysstat) ou iotop pour surveiller les E/S disque en temps réel.

Pour installer iotop:

sudo apt update
sudo apt install iotop

Exécutez iotop avec la commande :

sudo iotop

Cependant, certains utilisateurs peuvent rencontrer l’erreur suivante lors de l’exécution de iotop:

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %

Comment corriger l’erreur iotop .

Ce problème survient parce que le noyau ne dispose pas de la fonctionnalité CONFIG_TASK_DELAY_ACCT , qui est requise pour que iotop affiche les pourcentages SWAPIN et IO. Heureusement, cela peut être résolu en mettant à jour la configuration de GRUB.

Étapes pour corriger l’erreur

  • Modifiez le fichier de configuration de GRUB :
sudo nano /etc/default/grub
  • Ajoutez l’option delayacct à l’entrée GRUB_CMDLINE_LINUX_DEFAULT . Si la ligne est initialement vide (GRUB_CMDLINE_LINUX_DEFAULT=""), mettez-la à jour comme suit : GRUB_CMDLINE_LINUX_DEFAULT="delayacct" Si la ligne contient déjà d’autres options, ajoutez delayacct aux options existantes, en les séparant par un espace. Par exemple :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash delayacct"
  • Mettez à jour GRUB pour appliquer les modifications :
sudo update-grub
  • Redémarrez le serveur :
 sudo reboot

    Après le redémarrage, l’erreur devrait être résolue et iotop fonctionnera correctement.

    Utiliser `iotop

    Une fois le problème résolu, vous pouvez exécuter iotop pour surveiller les E/S disque :

    sudo iotop
    
    

    Ce que vous pouvez faire avec iotop

    • Identifier les processus qui provoquent une forte activité d’E/S disque.
    • Surveiller les opérations de lecture/écriture en temps réel.
    • Trier les processus par utilisation du disque.

    Surveillance de l’activité réseau

    Utiliser iftop

    Pour installer iftop:

    sudo apt update
    sudo apt install iftop
    

    Exécutez iftop avec la commande :

    sudo iftop
    
    

    Utiliser nload

    Pour installer nload:

    sudo apt update
    sudo apt install nload
    

    Exécutez nload avec la commande :

    nload
    
    

    Configuration de tableaux de bord de serveur avec Cockpit

    Qu’est-ce que Cockpit ?

    Cockpit est un tableau de bord graphique basé sur le Web pour surveiller et gérer les serveurs. Il fournit des informations en temps réel sur le processeur, la mémoire, l’utilisation du disque et l’activité réseau.

    Installation de Cockpit

    Pour installer Cockpit :

    sudo apt update
    sudo apt install cockpit
    

    Accès à Cockpit

    Démarrez le service Cockpit :

    sudo systemctl start cockpit.socket
    sudo systemctl enable cockpit.socket
    

    Accédez au tableau de bord en naviguant vers :

    https://<your-server-ip>:9090
    
    

    Fonctionnalités de Cockpit

    • Surveiller visuellement les performances du système.
    • Gérer les services, les journaux et les comptes utilisateur.
    • Afficher l’utilisation du disque et l’activité réseau.

    Bien que des outils comme htop, sysstat, et Cockpit soient excellents pour la plupart des besoins de surveillance de serveur, il existe d’autres outils avancés qui peuvent fournir des informations plus approfondies et une meilleure visualisation pour les environnements complexes. Voici quelques outils de surveillance supplémentaires à envisager :

    Prometheus et Grafana

    Prometheus

    Prometheus est une boîte à outils open source de surveillance et d’alerte conçue pour la fiabilité et l’évolutivité. Elle est largement utilisée dans les environnements cloud natifs et convient particulièrement bien à la surveillance des systèmes distribués et des microservices.

    Fonctionnalités clés :

    • Base de données de séries temporelles : stocke efficacement les métriques avec des horodatages.
    • Langage de requête puissant (PromQL) pour analyser les métriques.
    • Système d’alerte : intégré à des outils comme Alertmanager pour les notifications.
    • Architecture basée sur le pull : Prometheus récupère activement les métriques auprès des cibles.

    Cas d’utilisation :

    • Surveiller l’utilisation du processeur, de la mémoire et du disque sur plusieurs serveurs.
    • Suivre les métriques spécifiques aux applications (par exemple, la latence des requêtes HTTP, les taux d’erreur).
    • Générer des alertes pour les métriques inhabituelles ou les défaillances du système.

    Instructions d’installation :
    Pour installer Prometheus sur Ubuntu :

    sudo apt update
    wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
    tar xvf prometheus-2.44.0.linux-amd64.tar.gz
    cd prometheus-2.44.0.linux-amd64
    ./prometheus
    

    Accédez à Prometheus en naviguant vers :

    http://<your-server-ip>:9090
    
    

    Veuillez noter que Prometheus et Cockpit utilisent tous deux le port 9090 par défaut ; si vous les utilisez en même temps, vous voudrez peut-être changer le port par défaut :
    Résolution du conflit de port entre Prometheus et Cockpit

    Option 1 : changer le port de Prometheus

    Vous pouvez configurer Prometheus pour qu’il utilise un autre port en modifiant son fichier de configuration.

    • Ouvrez le fichier de configuration de Prometheus :
     nano prometheus.yml
    
    • Ajoutez ou modifiez l’indicateur --web.listen-address dans la commande de démarrage de Prometheus ou le fichier de service pour spécifier un autre port (par exemple, 9091) :
    --web.listen-address=:9091
    
    • Redémarrez Prometheus pour appliquer les modifications :
     sudo systemctl restart prometheus
    
    • Accédez à Prometheus en utilisant le nouveau port :
     http://<your-server-ip>:9091
    

      Option 2 : changer le port de Cockpit

      Le port par défaut de Cockpit peut également être modifié si vous préférez conserver Prometheus sur le port 9090.

      • Créez un fichier de configuration personnalisé pour Cockpit :
      sudo nano /lib/systemd/system/cockpit.socket
      
      • Ajoutez les lignes suivantes pour spécifier un nouveau port (par exemple, 9092) : ListenStream=9092
      • Redémarrez le service Cockpit :
      systemctl daemon-reload
      systemctl restart cockpit.socket
      
      • Accédez à Cockpit en utilisant le nouveau port : https://<your-server-ip>:9092

      Option 3 : utiliser un proxy inverse

      Si changer les ports n’est pas idéal, vous pouvez utiliser un proxy inverse (par exemple, Nginx ou Apache) pour associer les deux services à des URL différentes tout en conservant leurs ports par défaut.

      Par exemple :

      • Prometheus: 
      http://<your-server-ip>/prometheus
      
      • Cockpit: 
      http://<your-server-ip>/cockpit
      

        Recommandation

        Si vous utilisez fréquemment les deux outils :

        Documentez les modifications de port pour référence future ou pour les autres administrateurs.

        Modifiez Prometheus pour utiliser le port 9091 , car Cockpit est plus couramment accessible via son port par défaut 9090.


        Grafana

        Grafana est une puissante plateforme de visualisation qui s’intègre parfaitement à Prometheus. Elle vous permet de créer des tableaux de bord dynamiques pour visualiser les métriques et les tendances.

        Fonctionnalités clés :

        • Prise en charge de plusieurs sources : fonctionne avec Prometheus, Elasticsearch, MySQL, etc.
        • Tableaux de bord personnalisés : créez des graphiques interactifs, des cartes thermiques et des tableaux.
        • Alertes : configurez des alertes basées sur des seuils pour les métriques clés.
        • Partage : partagez facilement les tableaux de bord avec les équipes.

        Cas d’utilisation :

        • Visualiser les métriques de performance des serveurs collectées par Prometheus.
        • Surveiller les tendances au fil du temps pour une meilleure planification des capacités.
        • Afficher les données de plusieurs sources dans un tableau de bord unifié.

        Instructions d’installation :
        Pour installer Grafana sur Ubuntu :

        sudo apt update
        sudo apt install -y software-properties-common
        sudo wget -q -O - https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > /dev/null
        sudo echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
        sudo apt update
        sudo apt install grafana
        sudo systemctl start grafana-server
        sudo systemctl enable grafana-server
        sudo systemctl status grafana-server
        

        Accédez à Grafana en naviguant vers :

        http://<your-server-ip>:3000
        
        

        Nagios

        Nagios est l’un des outils de surveillance d’infrastructure les plus populaires. Il fournit une surveillance et des alertes complètes pour les serveurs, les périphériques réseau et les applications. Il est hautement personnalisable et prend en charge les plugins pour des fonctionnalités étendues.

        Fonctionnalités clés :

        • Surveiller l’état des serveurs : suivre l’utilisation du processeur, de la mémoire, du disque, etc.
        • Surveillance du réseau : détecter les problèmes liés aux routeurs, commutateurs et pare-feu.
        • Alertes : envoyer des notifications par e-mail, SMS ou via des intégrations avec Slack.
        • Vaste bibliothèque de plugins : surveiller les bases de données, les serveurs Web et d’autres services.

        Cas d’utilisation :

        • Surveiller les serveurs et applications critiques dans les environnements de production.
        • Recevoir des alertes lorsque l’espace disque est insuffisant ou que l’utilisation du processeur est élevée.
        • Surveiller la disponibilité et le temps de fonctionnement des périphériques réseau.

        Instructions d’installation :
        Pour installer Nagios sur Ubuntu :

        sudo apt install nagios4 nagios-plugins
        sudo a2enmod rewrite cgi
        systemctl restart apache2
        sudo systemctl status nagios4
        sudo systemctl enable nagios4
        sudo systemctl start nagios4
        
        

        Nagios nécessite une configuration supplémentaire pour définir les cibles de surveillance. Pour une configuration détaillée, consultez la documentation Nagios.


        Netdata : outil de surveillance système en temps réel

        Netdata est un outil de surveillance léger et en temps réel qui fournit des informations détaillées sur les performances du système. Il est facile à installer et dispose d’une belle interface Web pour visualiser les métriques.


        Étape 1 : mettre à jour les paquets système

        Assurez-vous que votre système est à jour en exécutant les commandes suivantes dans le terminal :

        sudo apt update
        sudo apt upgrade
        

        Étape 2 : installer Netdata

        Installez Netdata à partir du dépôt Ubuntu par défaut :

        sudo apt install netdata
        
        

        Étape 3 : configurer Netdata

        Modifiez le fichier de configuration de Netdata pour autoriser l’accès à distance :

        sudo nano /etc/netdata/netdata.conf
        
        

        Localisez le champ bind socket to IP et remplacez 127.0.0.1 par l’adresse IP de votre serveur :

        [global]
        bind socket to IP = <your-server-ip>
        
        

        Enregistrez le fichier et redémarrez le service Netdata :

        sudo systemctl restart netdata
        
        

        Étape 4 : configurer le pare-feu

        Autorisez l’accès au port par défaut de Netdata (19999) et activez le pare-feu :

        sudo ufw allow 19999
        sudo ufw allow OpenSSH
        sudo ufw enable
        sudo ufw status
        

        Étape 5 : accéder à l’interface Web de Netdata

        Ouvrez votre navigateur Web et naviguez vers :

        http://<your-server-ip>:19999
        


        Comparaison des outils

        OutilIdéal pourFacilité d’utilisationVisualisationAlertes
        PrometheusCollecte de métriques à grande échelleModéréeLimitéeOui
        GrafanaTableaux de bord avancésFacileExcellenteOui
        NagiosSurveillance de l’infrastructureModéréeBasiqueOui
        NetdataSurveillance légère en temps réelFacileExcellenteOui

        Conclusion

        Surveiller votre serveur Ubuntu est essentiel pour maintenir les performances, diagnostiquer les problèmes et éviter les temps d’arrêt. Des outils comme htop, top, sysstat, Cockpit et d’autres offrent aux administrateurs la possibilité de surveiller efficacement les ressources. Que vous préfériez les outils en ligne de commande ou les tableaux de bord graphiques, ce guide couvre tout ce dont vous avez besoin pour mettre en place un système de surveillance robuste.

        À suivre : Journalisation et surveillance centralisées

        Dans le prochain article, nous nous concentrerons sur la journalisation et la surveillance centralisées afin de rationaliser davantage la gestion des serveurs et le suivi des performances. Les sujets abordés seront les suivants :

        • Configurer rsyslog ou syslog-ng pour la journalisation centralisée.
        • Transférer les journaux vers un serveur de journalisation distant pour une meilleure organisation et analyse.
        • Intégrer votre serveur Ubuntu à des plateformes de surveillance robustes comme Nagios, Zabbix, ou Prometheus pour mieux comprendre l’état de santé et les performances du système.

        Restez à l’écoute pour apprendre à centraliser votre infrastructure de journalisation et à tirer parti des outils de surveillance pour optimiser efficacement les opérations de vos serveurs !

        2 thoughts on “10. System Monitoring Tools for Ubuntu Server: A Comprehensive Guide”

        Laisser un commentaire