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

Sysdig est un outil de surveillance et de dépannage de système open-source, multiplateforme, puissant et flexible pour Linux ; il fonctionne également sur 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 utiliseriez un mélange de divers outils de surveillance et de dépannage des performances de Linux y compris ceux énumérés ci-dessous pour effectuer les tâches de surveillance et de débogage de Linux :

  1. strace – découvrir les appels système et les signaux à un processus.
  2. tcpdump – surveillance du trafic réseau brut.
  3. netstat – surveillance des connexions réseau.
  4. htop – surveillance des processus en temps réel.
  5. iftop – surveillance de la bande passante réseau en temps réel
  6. lsof – voir 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, avec un incroyable support des conteneurs. Il vous permet de capturer, enregistrer, filtrer et examiner le comportement réel (flux d’événements) des systèmes Linux ainsi que des conteneurs.

Il est doté d’une interface en ligne de commande et d’une puissante interface utilisateur interactive (csysdig) qui vous permettent de surveiller en temps réel l’activité du système, ou d’effectuer une trace, de l’enregistrer pour une analyse ultérieure. Vous pouvez voir comment csysdig fonctionne dans la vidéo ci-dessous.

Fonctionnalités de Sysdig:

  • Il est rapide, stable et facile à utiliser, avec une documentation complète.
  • Offre une prise en charge native des technologies de conteneurs, y compris Docker, LXC.
  • Il est scriptable en Lua ; propose des ciseaux (scripts Lua légers) pour le traitement des événements système capturés.
  • Prise en charge utile du filtrage des sorties.
  • Prise en charge de la traçabilité du système et des applications.
  • Il peut être intégré avec Ansible, Puppet et Logstash.
  • Permet une analyse avancée des journaux.
  • Offre également des fonctionnalités d’analyse des attaques serveur Linux (forensics) pour les hackers éthiques et bien d’autres.

Dans cet article, nous allons vous montrer 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 sur Linux

L’installation du paquet 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 paquet depuis le dépôt 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 un accès à des zones critiques telles que le système de fichiers /proc, les périphériques /dev/sysdig* et doit charger automatiquement le module noyau sysdig-probe (au cas où il ne le serait pas); sinon utilisez la commande sudo.

L’exemple le plus basique est de 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
Watch Linux System Events

La sortie ci-dessus (données brutes) ne vous semble peut-être pas très claire, pour une sortie plus utile exécutez csysdig:

$ sudo csysdig 
Monitor Linux System Events

Note: Pour vraiment comprendre cet outil, vous devez utiliser sysdig qui produit des données brutes comme nous l’avons vu précédemment, à partir d’un système Linux en cours d’exécution: cela nécessite que vous compreniez comment utiliser les filtres et les ciseaux.

Mais si vous avez besoin d’une manière sans douleur d’utiliser sysdig – continuez avec csysdig.

Comprendre les Ciseaux et Filtres Sysdig

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

$ sudo sysdig -cl

La capture d’écran montre un échantillon de ciseaux sous différentes catégories.

View Sysdig Chisels

Si vous souhaitez obtenir plus d’informations sur un ciseau particulier, utilisez le drapeau -i:

$ sudo sysdig -i topprocs_cpu
View Sysdig Chisel Info

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.

A straightforward and commonest filter is a basic “class.field=value” check, you can also combine chisels with filters for even more powerful customizations.

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

$ sudo sysdig -l
View Sysdig Field Classes

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

Pour décharger la sortie sysdig dans un fichier pour une analyse ultérieure, utilisez le drapeau -w comme ceci.

Vous pouvez lire le fichier de vidage de trace en utilisant le drapeau -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
Create MongoDB Trace File

Surveillance des processus Linux

Pour lister les processus système, tapez:

$ sudo sysdig -c ps
Monitor Linux Processes

Surveiller les processus par utilisation du CPU

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

$ sudo sysdig -c topprocs_cpu
Monitor Processes by CPU Usage

Surveillance des connexions réseau et des E/S

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

$ sudo sysdig -c netstat
Monitor Network Connections

La commande suivante vous aidera à lister les principales connexions réseau par octets totaux:

$ sudo sysdig -c topconns

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

$ sudo sysdig -c topprocs_net    

Surveillance des E/S de fichiers système

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

$ sudo sysdig -c echo_fds
Monitor System IO

Pour lister 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 surveiller les goulots d’étranglement du système (appels système lents), exécutez cette commande :

$ sudo sysdig -c bottlenecks
Troubleshoot Linux Performance

Suivi du temps d’exécution d’un processus

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

$ sudo sysdig -w extime.scap -c proc_exec_time 
Track Process Execution Time

Ensuite, utilisez 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écouverte des lenteurs des entrées/sorties réseau

Cette commande simple vous aidera à détecter les lenteurs des entrées/sorties réseau :

$ sudo sysdig -c netlower     

Surveillance des entrées de fichiers journaux

La commande ci-dessous vous permet d’afficher chaque message écrit dans syslog, si vous êtes intéressé par les entrées de journal pour un processus spécifique, créez une trace et filtrez-la 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 avez un serveur HTTP tel qu’Apache ou Nginx en cours d’exécution sur votre 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] 
Monitor HTTP Requests

Affichage des shells de connexion et de l’activité des utilisateurs interactifs

La commande ci-dessous vous permettra de voir tous les identifiants de shell de connexion :

$ sudo sysdig -c list_login_shells

Enfin, vous pouvez afficher l’activité interactive des utilisateurs du système comme ceci :

$ sudo sysdig -c spy_users
Monitor User Activity

Pour plus d’informations d’utilisation et d’exemples, consultez les pages de manuel de 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, le réseautage et plus sur Linux
  2. pyDash – Un outil de surveillance des performances Linux basé sur le Web
  3. Perf – Un outil d’analyse et de surveillance 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 regroupe les fonctionnalités de nombreux outils en ligne de commande dans une interface remarquable, vous permettant ainsi d’explorer en profondeur les événements de votre système Linux pour collecter des données, les sauvegarder pour une analyse ultérieure et offre un incroyable support de conteneur.

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

Source:
https://www.tecmint.com/sysdig-system-monitoring-and-troubleshooting-tool-for-linux/