Ici, nous verrons les étapes pour installer Sysdig, un système Linux ou un outil de surveillance de serveur sur CentOS, Redhat, Debian Ubuntu 20.04/18.04/16.04 ainsi que d'autres versions non-LTS, y compris Linux Mint et Elementary OS.
Qu'est-ce que l'outil de surveillance Sysdig Linux ?
Sysdig est un outil alternatif open-source pour top, iotop, iftop, strace, tcpdump, htop, iftop, lsof et le suivi des transactions. Il fournit un aperçu complet de l'utilisation du CPU, de la mémoire, des E/S, des utilisateurs et plus directement sur le terminal de commande dans une interface bien structurée. Sysdig peut être installé sur presque tous les systèmes d'exploitation, même sur Windows et OS X.
exigences
- Serveur ou poste de travail Ubuntu
- Pour exécuter toutes les commandes de ce didacticiel, car on devrait avoir un accès utilisateur root ou avec un utilisateur non root avec droits sudo .
Étape 1 :Mettre à jour le système
Exécutez la commande de mise à jour du système pour vous assurer que tous les référentiels et autres packages installés sont dans leur dernier état.
sudo apt update
Étape 2 :Installez Sysdig sur différents systèmes Linux
Ubuntu 20.04/18.04 ou version antérieure
Dans le dernier système d'exploitation d'Ubuntu et de Linux Mint, nous n'avons pas besoin d'ajouter de référentiel et pouvons installer Sysdig en utilisant une seule commande, c'est-à-dire
sudo apt install sysdig
Cependant, dans Debian et d'autres distributions Linux basées sur celle-ci, exécutez le script ci-dessous qui ajoutera non seulement son dépôt mais installera également le Sysdig.
Avant le script, exécutez la commande pour installer curl et d'autres propriétés logicielles communes qui aident l'APT à gérer efficacement les logiciels provenant de différentes sources.
sudo apt -y install software-properties-common curl
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
L'installation est entièrement automatisée et ne nécessite aucune autre intervention.
Installation de Sysdig sur CentOS, RHEL, Fedora, Amazon Linux
Ajouter le dépôt yum
sudo rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
sudo curl -s -o /etc/yum.repos.d/draios.repo https://s3.amazonaws.com/download.draios.com/stable/rpm/draios.repo
sudo yum -y install sysdig
ou
sudo dnf -y install sysdig
Installation de Sysdig sur CentOS
Installation de Docker Sysdig
docker pull sysdig/sysdig
docker run -i -t --name sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro sysdig/sysdig
Étape 3 :Comment utiliser les commandes Sysdig
La première commande simple de Sysdig pour afficher le processus en cours d'exécution, la consommation de mémoire par eux et plus encore ; tapez simplement :
sudo csysdig
Nous l'exécutons avec sudo car Sysdig doit accéder à certaines zones cruciales du système telles que le système de fichiers /proc, les périphériques /dev/sysdig* et bien plus encore pour vous fournir la charge actuelle et d'autres informations.
Quelque chose comme la sortie ci-dessous, vous verrez…
PID :PID de processus.
CPU :Quantité de CPU utilisée par le processus.
TH :Nombre de threads que contient le processus.
VIRT :Mémoire virtuelle totale pour le processus.
RES : Mémoire résidente non échangée pour le processus.
FILE :bande passante d'E/S de fichier totale (entrée + sortie) générée par le processus, en octets par seconde.
NET :bande passante d'E/S réseau totale (entrée + sortie) générée par le processus, en octets par seconde.
Commande :La ligne de commande complète du processus
Commande Sysdig pour voir le processus système
Dans la capture d'écran ci-dessus , vous pouvez voir les processus en cours d'exécution, la commande et leur impact sur l'utilisation du système (charge CPU et mémoire). Le menu ou l'affectation des touches se trouve en bas. Appuyez sur F2 fera apparaître un autre menu, ici vous pouvez choisir ce que vous voulez regarder.
Commande Quick Sysdig pour surveiller le système Linux
Vous pouvez voir dans la capture d'écran ci-dessus les éléments clés que nous devons surveiller s'affichent sur le panneau latéral gauche du terminal de commande. Avec les touches fléchées, vous pouvez choisir ce qui vous intéresse, puis appuyer sur Entrée touche qui basculera l'interface vers le filtre correspondant.
Par exemple, pour tester les connexions nous avons sélectionné cela et ce qui suit montré.
Surveillance des connexions à l'aide de Sysdig
Cela vous montre quelles connexions sont actuellement connectées au serveur, par exemple, les sessions SSH actives avec le serveur multimédia plex. Si vous voulez creuser plus profondément pour en savoir plus, appuyez sur F6 .
Analyse approfondie des connexions réseau
De la même manière, sélectionnez Erreurs L'option affichera tous les processus qui ont échoué. Ils sont triés en fonction de la fréquence à laquelle ils se produisent.
Pour connaître le processus et le CPU total utilisé par eux, sélectionnez le "Process CPU " et appuyez sur Entrée Clé.
PID :Processus PID.
TOT :Quantité totale de CPU utilisée par le processus (utilisateur + système).
UTILISATEUR :Quantité de CPU utilisateur utilisée par le processus.
SYS :Quantité de CPU système utilisée par le processus.
SYSCALLS :Nombre d'appels système par seconde effectués par le processus.
Commande :La ligne de commande complète du processus.
processus et CPU total
Sous Liste des fichiers ouverts , par exemple, vous trouverez une liste de tous les fichiers auxquels vous accédez actuellement et qui ou quel programme y accède.
E/S par type : vous montre quel processus ou quel déclencheur est en train d'écrire et de lire combien sur le support de données. Il s'agit du taux de transfert, le nombre total de données déplacées ne peut pas être consulté ici.
BPS IN : Octets par seconde lus à partir des FD du type spécifique.
BPS OUT :octets par seconde écrits dans les FD du type spécifique.
IOPS :Nombre d'opérations d'E/S pour la catégorie d'E/S spécifiée. Cela compte toutes les opérations sur le fichier, y compris ouvrir, fermer, lire, écrire, stat, etc. Par conséquent, cette valeur peut être non K8s Services zéro même si les octets d'E/S pour le fichier sont zéro.
TIME :temps passé par les processus à effectuer toute opération d'E/S (y compris l'attente) de ce type.
Type d'E/S :Type d'E/S. Peut être un fichier, répertoire, ipv4, ipv6, pipe, Unix, signal, événement, inotifMesos Frameworks y
E/S par type
Sous Espionner les utilisateurs , vous trouverez une liste de tous les processus qui ont été appelés par les utilisateurs - pas le système ou d'autres processus. Ici, vous pouvez voir les listes de toutes les commandes qui sont exécutées de manière interactive, c'est-à-dire qui ont un shell comme processus parent. Le résultat Fichiers est l'affichage de toute l'activité de l'utilisateur, triée par heure.
HEURE :Heure à laquelle la commande a été exécutée.
USER :Nom de l'utilisateur exécutant la commande.
SHELL :Pid du shell où cette commande a été exécutée. Cela correspond essentiellement à un "identifiant de session". Vous pouvez classer ou trier par cette colonne pour isoler une session utilisateur interactive spécifique.
Commande :La commande exécutée, y compris les arguments.
De même , nous pouvons explorer d'autres options pour surveiller nos systèmes Linux.
Si vous souhaitez obtenir des détails particuliers sur le système, tels que le processeur, le réseau, etc., vous pouvez également utiliser la commande directe correspondante. Comme dans la version pure Commandline, il y a tellement de paramètres, de variables et de filtres que je ne veux pas tous les lister ici. Vous pouvez trouver une liste complète de toutes les fonctions dans le Wiki Sysdig officiel.
En voici quelques-uns :
Pour surveiller directement le processus en fonction de l'utilisation du processeur, la commande est :
sudo sysdig -c topprocs_cpu
Commande de moniteur de processus CPU sysdig
La commande pour surveiller les deux connexions réseau
sudo sysdig -c netstat
Toutes les connexions réseau Linux
Pour voir les principales connexions réseau et traiter par entrée/sortie réseau
sudo sysdig -c topconns
sudo sysdig -c topprocs_net
D'autres commandes rapides peuvent être vues en utilisant la commande :
sudo sysdig -cl
Voici les commandes par catégorie :
Par exemple, je veux voir le journal des requêtes HTTP, la première commande donnée dans la liste ci-dessous. Pour l'utiliser, tapez simplement
sudo sysdig -c httplog
Celui en gras est la commande…
Category: Application --------------------- httplog HTTP requests log httptop Top HTTP requests memcachelog memcached requests log Category: CPU Usage ------------------- spectrogram Visualize OS latency in real time. subsecoffset Visualize subsecond offset execution time. topcontainers_cpu Top containers by CPU usage topprocs_cpu Top processes by CPU usage Category: Errors ---------------- topcontainers_error Top containers by number of errors topfiles_errors Top files by number of errors topprocs_errors top processes by number of errors Category: I/O ------------- echo_fds Print the data read and written by processes. fdbytes_by I/O bytes, aggregated by an arbitrary filter field fdcount_by FD count, aggregated by an arbitrary filter field fdtime_by FD time group by iobytes Sum of I/O bytes on any type of FD iobytes_file Sum of file I/O bytes spy_file Echo any read/write made by any process to all files. Optionally, you can provide the name of one file to only intercept reads /writes to that file. stderr Print stderr of processes stdin Print stdin of processes stdout Print stdout of processes topcontainers_file Top containers by R+W disk bytes topfiles_bytes Top files by R+W bytes topfiles_time Top files by time topprocs_file Top processes by R+W disk bytes udp_extract extract data from UDP streams to files. Category: Logs -------------- spy_logs Echo any write made by any process to a log file. Optionally, export the events around each log message to file. spy_syslog Print every message written to syslog. Optionally, export the events around each syslog message to file. Category: Misc -------------- around Export to file the events around the time range where the given filter matches. Category: Net ------------- iobytes_net Show total network I/O bytes spy_ip Show the data exchanged with the given IP address spy_port Show the data exchanged using the given IP port number topconns Top network connections by total bytes topcontainers_net Top containers by network I/O topports_server Top TCP/UDP server ports by R+W bytes topprocs_net Top processes by network I/O Category: Performance --------------------- bottlenecks Slowest system calls fileslower Trace slow file I/O netlower Trace slow network I/0 proc_exec_time Show process execution time scallslower Trace slow syscalls topscalls Top system calls by number of calls topscalls_time Top system calls by time Category: Security ------------------ list_login_shells List the login shell IDs shellshock_detect print shellshock attacks spy_users Display interactive user activity Category: System State ---------------------- lscontainers List the running containers lsof List (and optionally filter) the open file descriptors. netstat List (and optionally filter) network connections. ps List (and optionally filter) the machine processes. Category: Tracers ----------------- tracers_2_statsd Export spans duration as statds metrics. Use the -i flag to get detailed information about a specific chisel
Pour connaître toutes les commandes associées et d'autres informations avec un exemple pour sysdig
et csysdig
outils, vous pouvez voir leur page de manuel :
man sysdig
man csysdig
Notes de fin pour Sysdig
Sysdig est un outil très complet pour suivre l'état actuel et la charge de votre système. Avec Csysdig il vous offre une interface interactive basée sur la ligne de commande confortable dans la console pour travailler efficacement. Vous pouvez créer des scripts efficaces et créer vos propres fichiers journaux personnalisés à l'aide de l'outil de ligne de commande lui-même.
Autres tutoriels Linux :
- Comment modifier le délai d'expiration du menu GRUB au démarrage ?
- Tutoriel sur l'installation du serveur OpenSSH sur Ubuntu 20.04 LTS