Recherche de site Web

Sysdig - Un puissant outil de surveillance et de dépannage du système pour Linux


Sysdig est un outil open source, multiplateforme, puissant et flexible de surveillance et de dépannage du système pour Linux ; il fonctionne également sous Windows et Mac OSX mais avec des fonctionnalités limitées et peut être utilisé pour l'analyse, l'inspection et le débogage du système.

Normalement, vous utiliserez une combinaison de divers outils de surveillance et de dépannage des performances Linux, y compris ceux répertoriés ci-dessous, pour effectuer les tâches de surveillance et de débogage Linux :

  1. strace – découvrez les appels système et les signaux d’un processus.
  2. tcpdump – surveillance brute du trafic réseau.
  3. netstat – surveillance des connexions réseau.
  4. htop – surveillance des processus en temps réel.
  5. iftop – surveillance de la bande passante du réseau en temps réel.
  6. lsof – affiche quels fichiers sont ouverts par quel processus.

Cependant, sysdig intègre ce que tous les outils ci-dessus et bien d'autres offrent dans un programme unique et simple, d'autant plus avec une prise en charge incroyable des conteneurs. Il vous permet de capturer, sauvegarder, filtrer et examiner le comportement réel (flux d'événements) des systèmes Linux ainsi que des conteneurs.

Il est livré avec une interface de ligne de commande et une puissante interface utilisateur interactive (csysdig) qui vous permettent de surveiller l'activité du système en temps réel, ou d'effectuer un vidage de trace et de l'enregistrer pour une analyse ultérieure. Vous pouvez regarder le fonctionnement de csysdig à partir de la vidéo ci-dessous.

Caractéristiques de Sysdig :

  • Il est rapide, stable et facile à utiliser et entièrement bien documenté.
  • Livré avec une prise en charge native des technologies de conteneurs, notamment Docker, LXC.
  • Il est scriptable en Lua ; propose des ciseaux (scripts Lua légers) pour traiter les événements système capturés.
  • Prend en charge le filtrage utile de la sortie.
  • Prend en charge le suivi du système et des applications.
  • Il peut être intégré à Ansible, Puppet et Logstash.
  • Activez un exemple d’analyse avancée des journaux.
  • Il offre également des fonctionnalités d’analyse (criminalistique) des attaques de serveur Linux pour les pirates éthiques et bien plus encore.

Dans cet article, nous montrerons comment installer sysdig sur un système Linux et l'utiliser avec des exemples de base d'analyse, de surveillance et de dépannage du système.

Comment installer Sysdig sous Linux

L'installation du package sysdig est aussi simple que d'exécuter la commande ci-dessous, qui vérifiera toutes les exigences ; si tout est en place, il téléchargera et installera le package à partir du référentiel Draios APT/YUM.

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Après l'avoir installé, vous devez exécuter sysdig en tant que root car il nécessite l'accès à des zones critiques telles que le système de fichiers /proc, /dev/sysdig* . les périphériques et doivent charger automatiquement le module noyau sysdig-probe (au cas où ce ne serait pas le cas) ; sinon, utilisez la commande sudo.

L'exemple le plus basique consiste à l'exécuter sans aucun argument, cela vous permettra de visualiser le flux d'événements de votre système Linux mis à jour en temps réel :

sudo sysdig

Le résultat ci-dessus (données brutes) n'a peut-être pas beaucoup de sens pour vous, pour un résultat plus utile, exécutez csysdig :

sudo csysdig 

Remarque : Pour avoir une idée réelle de cet outil, vous devez utiliser sysdig qui produit des données brutes comme nous l'avons vu précédemment, à partir d'un fichier en cours d'exécution. Système Linux : cela nécessite de comprendre comment utiliser les filtres et les ciseaux.

Mais si vous avez besoin d'un moyen simple d'utiliser sysdig, continuez avec csysdig.

Comprendre les ciseaux et les filtres Sysdig

Les ciseaux Sysdig sont des scripts Lua minimaux permettant d'examiner le flux d'événements sysdig afin d'effectuer des actions de dépannage utiles du système et bien plus encore. La commande ci-dessous vous aidera à afficher tous les ciseaux disponibles :

sudo sysdig -cl

La capture d'écran montre un exemple de liste de ciseaux sous différentes catégories.

Si vous souhaitez en savoir plus sur un ciseau en particulier, utilisez l'indicateur -i :

sudo sysdig -i topprocs_cpu

Les filtres Sysdig ajoutent plus de puissance au type de sortie que vous pouvez obtenir à partir des flux d'événements, ils vous permettent de personnaliser la sortie. Vous devez les spécifier à la fin d'une ligne de commande.

Un filtre simple et le plus courant est une vérification de base « class.field=value ». Vous pouvez également combiner des ciseaux avec des filtres pour des personnalisations encore plus puissantes.

Pour afficher une liste des classes de champs disponibles, des champs et de leurs descriptions, tapez :


sudo sysdig -l

Création d'un fichier de trace du système Linux

Pour vider la sortie sysdig dans un fichier pour une analyse ultérieure, utilisez l'indicateur -w comme ceci.

Vous pouvez lire le fichier de vidage de trace à l'aide de l'indicateur -r :


sudo sysdig -r trace.scap

L'option -s est utilisée pour spécifier la quantité d'octets de données à capturer pour chaque événement système. Dans cet exemple, nous filtrons les événements pour le processus mongod.

sudo sysdig -s 3000 -w trace.scap
sudo sysdig -r trace.scap proc.name=mongod

Surveillance des processus Linux

Pour répertorier les processus système, tapez :

sudo sysdig -c ps

Surveiller les processus par utilisation du processeur

Pour surveiller les principaux processus par pourcentage d'utilisation du processeur, exécutez cette commande :

sudo sysdig -c topprocs_cpu

Surveillance des connexions réseau et des E/S

Pour afficher les connexions réseau du système, exécutez :

sudo sysdig -c netstat

La commande suivante vous aidera à répertorier les principales connexions réseau par nombre total d'octets :

sudo sysdig -c topconns

Ensuite, vous pouvez également répertorier les principaux processus par E/S réseau comme suit :

sudo sysdig -c topprocs_net    

Surveillance des E/S des fichiers système

Vous pouvez afficher les données lues et écrites par les processus sur le système comme ci-dessous :

sudo sysdig -c echo_fds

Pour répertorier les principaux processus par octets de disque (lecture + écriture), utilisez :

sudo sysdig -c topprocs_file   

Dépannage des performances d'un système Linux

Pour garder un œil sur les goulots d'étranglement du système (appels système lents), exécutez cette commande :

sudo sysdig -c bottlenecks

Suivre le temps d'exécution d'un processus

Pour suivre le temps d'exécution d'un processus, vous pouvez exécuter cette commande et vider la trace dans un fichier :

sudo sysdig -w extime.scap -c proc_exec_time 

Utilisez ensuite un filtre pour vous concentrer sur les détails d'un processus particulier (postgres dans cet exemple), comme suit :

sudo sysdig -r extime.scap proc.name=postgres

Découvrez les E/S réseau lentes

Cette commande simple vous aidera à détecter les E/S réseau lentes :

sudo sysdig -c netlower     

Surveillance des entrées du fichier journal

La commande ci-dessous vous aide à afficher chaque message écrit dans syslog. Si vous êtes intéressé par les entrées de journal pour un processus spécifique, créez un vidage de trace et filtrez-le en conséquence, comme indiqué précédemment :

sudo sysdig -c spy_syslog      

Vous pouvez imprimer toutes les données écrites par n'importe quel processus dans un fichier journal comme suit :

sudo sysdig -c spy_logs   

Surveillance des requêtes du serveur HTTP

Si vous disposez d'un serveur HTTP tel qu'Apache ou Nginx en cours d'exécution sur notre système, consultez le journal des requêtes du serveur avec cette commande :

sudo sysdig -c httplog    
sudo sysdig -c httptop   [Print Top HTTP Requests] 

Afficher les shells de connexion et l'activité interactive des utilisateurs

La commande ci-dessous vous permettra d'afficher tous les identifiants du shell de connexion :

sudo sysdig -c list_login_shells

Enfin et surtout, vous pouvez afficher l'activité interactive des utilisateurs du système comme suit :

sudo sysdig -c spy_users

Pour plus d'informations et d'exemples d'utilisation, lisez les pages de manuel sysdig et csysdig :

man sysdig 
man csysdig

Référence : https://www.sysdig.org/

Consultez également ces outils utiles de surveillance des performances Linux :

  1. BCC – Outils de traçage dynamique pour la surveillance des performances Linux, la mise en réseau et plus encore
  2. pyDash – Un outil Web de surveillance des performances Linux
  3. Perf - Un outil de surveillance et d'analyse des performances pour Linux
  4. Collectl : un outil avancé de surveillance des performances tout-en-un pour Linux
  5. Netdata – Un outil de surveillance des performances en temps réel pour les systèmes Linux
Conclusion

Sysdig rassemble les fonctionnalités de nombreux outils de ligne de commande dans une interface remarquable, vous permettant ainsi d'approfondir les événements de votre système Linux pour collecter des données, les enregistrer pour une analyse ultérieure et offre une incroyable prise en charge des conteneurs.

Pour poser des questions ou partager des réflexions sur cet outil, utilisez le formulaire de commentaires ci-dessous.