Come installare Sysdig per monitorare il tuo sistema Linux

Il tuo sistema Linux è una piattaforma eccellente per server e desktop. Ma come qualsiasi altro sistema complesso, è fondamentale avere un monitoraggio adeguato per mantenere il sistema al massimo delle prestazioni. Fortunatamente, Sysdig è proprio dietro l’angolo!

Sysdig è uno strumento completo di monitoraggio per Linux che può monitorare il tuo sistema per minacce, errori, modelli di utilizzo e molto altro. E in questo tutorial imparerai ad installare Sysdig evidenziando particolari opzioni di configurazione per monitorare meglio il tuo sistema Linux.

Continua a leggere e non perdere mai più un “allarme”!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri seguirla, assicurati di avere quanto segue.

  • A Linux machine – This tutorial uses Ubuntu 20.04 LTS, but any Linux distributions will work.
  • A non-root user with sudo privileges.

Installazione di Sysdig su Linux

Lo strumento a riga di comando di Sysdig è generalmente disponibile nella maggior parte delle moderne distribuzioni Linux e puoi installare Sysdig come altri pacchetti che hai installato finora sul tuo computer.

1. Apri il tuo terminale e esegui il comando apt update di seguito per assicurarti di avere gli ultimi aggiornamenti dai repository della tua distribuzione. Questo comando aggiorna l’elenco dei pacchetti del sistema e potrebbe richiedere alcuni minuti per completare.

sudo apt update -y
Updating your System’s Package Lists

2. Successivamente, esegui il comando apt install di seguito per scaricare (curl) e installare i pacchetti necessari per Sysdig. Questo comando installa anche alcuni moduli aggiuntivi utilizzati in seguito in questo tutorial come segue:

  • gnupg – Il GNU Privacy Guard è uno strumento per la comunicazione sicura e la memorizzazione dei dati. Questo pacchetto consente di scaricare la chiave GPG pubblica di Sysdig per verificare la validità dei pacchetti di Sysdig.
  • software-properties-common – Fornisce un modo rapido per gestire le tue fonti software tramite l’ambiente della riga di comando o l’interfaccia grafica. Questo pacchetto ti consente di utilizzare il comando add-apt-repository per aggiungere i repository del pacchetto Sysdig.
  • linux-headers-$(uname -r) – Fornisce i file necessari per compilare i moduli del kernel per il tuo kernel in esecuzione. Questo pacchetto è richiesto perché potresti installare Sysdig su una macchina con un kernel stock più vecchio.
sudo apt install gnupg software-properties-common curl -y && sudo apt install linux-headers-$(uname -r) -y
Installing the Necessary Packages for Sysdig

3. Esegui il comando curl di seguito per aggiungere la chiave pubblica GPG (GPG) di Sysdig all’anello delle chiavi APT. Questo comando ti consente di verificare che i pacchetti scaricati da sysdig.com siano validi e non modificati.

curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -

Riceverai un messaggio OK dopo aver aggiunto con successo la chiave, come mostrato di seguito.

Adding the GPG key to APT”s Keyring

4. Ora, esegui il comando curl di seguito per scaricare silenziosamente (-s) i repository Sysdig come draios.list e aggiungerlo al tuo sistema. L’estensione .list comunica ad APT che il file è un elenco di URL per i repository, anziché un solo URL.

curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list

5. Esegui nuovamente il comando apt update di seguito per scaricare i nuovi repository di Sysdig e aggiornare l’elenco dei pacchetti di APT con le informazioni dei nuovi repository.

sudo apt update -y

Se la tua configurazione di APT è corretta, vedrai il seguente output.

Updating your APT’s Package Lists

6. Dopo aver scaricato i repository di Sysdig, esegui il comando apt install di seguito per installare sysdig sulla tua macchina. Questo comando scarica e installa il pacchetto sysdig e i pacchetti di supporto.

sudo apt install sysdig -y
Installing Sysdig

7. Infine, esegui il comando sysdig di seguito per verificare la versione di Sysdig installata sulla tua macchina.

sudo sysdig --version

Il numero di versione aiuta a determinare se il tuo pacchetto Sysdig è aggiornato. La versione fornisce anche informazioni su come il rilascio di Sysdig influisce sulle prestazioni del sistema.

Come mostrato di seguito, 0.28.0 è l’ultima versione di sysdig al momento della scrittura di questo testo. Il tuo numero di versione potrebbe essere diverso.

Verifying Sysdig Version Installed

Monitoraggio dei sistemi Linux con csysdig

Ora che hai installato Sysdig, puoi utilizzarlo per monitorare ciò che sta accadendo nel tuo sistema. Lo strumento a riga di comando di Sysdig ha molte opzioni che ti permettono di visualizzare diverse informazioni sul sistema e la sua attività. Un esempio di base è il comando csysdig.

Esegui il comando csysdig senza alcuna opzione per vedere cosa sta accadendo nel tuo sistema in tempo reale. Il comando mostrerà l’attività di tutti i processi attualmente in esecuzione.

Tieni presente che devi eseguire i comandi di Sysdig con i privilegi di sudo per avere pieno accesso al tuo sistema. Alcune attività di sistema potrebbero essere nascoste di default agli utenti non root, come ad esempio l’output del file system /proc. Sysdig richiede anche i privilegi di sudo per caricare automaticamente i simboli del kernel necessari per svolgere molte delle sue funzionalità, come il modulo del kernel sysdig-probe

sudo csysdig

Se incontri il seguente errore, dovrai reinstallare il pacchetto ncurses-term. Il pacchetto ncurses-term tende a corrompersi dopo una nuova installazione di Sysdig. Sysdig dipende dal pacchetto ncurses-term per supportare la sua interfaccia utente ncurses.

Getting an Error while Running csysdig

Se il comando csysdig ha successo, otterrai l’output seguente organizzato in schede.

Description
PID The Process ID that assigned by the Linux kernel. You use PIDs to identify and manage processes.
PPID The parent process ID of the process. You use PPID to trace the process back through its parent processes. Together, PID and PPID uniquely identify a process on your system.
CPU The percentage of CPU used by the application since it started can be seen on a scale from 0 to 100%, where 100% equals total CPU usage. You use CPU usage to find applications that are hogging system resources.
USER The name of the user that started the process. You use USER to find out who is executing a process you are interested in.
TH The name of the user that started the process. You use USER to find out who is executing a process you are interested in.
VIRT The total amount of virtual memory used by the application. You use VIRT to find applications that are hogging your system’s memory.
RES The number of resident memory pages a process has, as mapped to physical memory. You use RES to find applications that are hogging your system’s memory.
FILE The disk’s file descriptor used by the application. You use FILE to see which files are being read or written frequently, usually an indication of I/O activity.
NET The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second.
Command The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second.

A prima vista, l’interfaccia csysdig sembra simile agli strumenti di monitoraggio come htop.

Monitoring System Processes using Csysdig

Premendo F2, le schede superiori cambieranno per mostrare un nuovo set di informazioni organizzate in schede a sinistra, come mostrato di seguito.

Sysdig chiama queste “viste” perché sono diverse visualizzazioni del sistema, organizzate in base al tipo di informazioni che mostrano, offrendo più contesto. E poiché queste viste sono basate su script LUA, puoi personalizzare gli script per estrarre dati diversi dal sistema e cambiare la vista come preferisci.

Viewing System Information via the Csysdig Views

Di default, gli script LUA si trovano nella directory /usr/share/sysdig/chisels, come mostrato di seguito.

ls /usr/share/sysdig/chisels
Listing files (scripts) in the /usr/share/sysdig/chisels directory

Monitorare i Processi che Consumano CPU con i Chisels di Sysdig

Sysdig offre diversi chisels pronti all’uso che raccolgono automaticamente specifiche informazioni di sistema, conosciute come “chisels“. Forse stai riscontrando prestazioni lente sulla tua CPU. In tal caso, l’esecuzione del comando sysdig con un chisel specificato ti consente di vedere quali applicazioni/processi stanno occupando la maggior parte del tuo utilizzo della CPU.

1. Esegui il comando sysdig qui sotto per elencare i chisels disponibili.

sudo sysdig -cl

Lo screenshot sottostante mostra solo alcuni scalpelli. Ma puoi trovare e apprendere l’elenco completo di tutti gli scalpelli disponibili nella documentazione ufficiale.

Gli scalpelli Sysdig sono anche script LUA. Puoi creare i tuoi scalpelli per monitorare informazioni specifiche di sistema o implementare la tua vista, ma questo argomento esula dallo scopo di questo tutorial.

Showing Sysdig Chisels

2. Successivamente, esegui il comando sottostante per visualizzare le informazioni dettagliate (-i) su uno specifico scalpello, come ad esempio topprocs_cpu in questa demo.

sudo sysdig -i topprocs_cpu

Puoi vedere tutte le informazioni sullo scalpello topprocs_cpu di seguito, inclusi il nome dello scalpello, la categoria e una breve descrizione di ciò che fa lo scalpello.

In questo esempio, lo scalpello topprocs_cpu è categorizzato come Utilizzo della CPU e mostra il processo principale definito dall’utilizzo della CPU più elevato.

Una volta compresa la funzionalità di uno scalpello, puoi iniziare a utilizzarlo.

Showing All Information About the topprocs_cpu Chisel

3. Esegui il comando sysdig di seguito, specificando lo scalpello corretto (-c topprocs_cpu) per trovare le applicazioni che utilizzano la maggior quantità di CPU nel tuo sistema.

sudo sysdig -c topprocs_cpu

Sysdig cattura i primi 10 processi che consumano la CPU in questa demo e li stampa sul terminale. Il processo più intensivo per la CPU verrà visualizzato in cima (sshd), rendendoli più rapidi da individuare.

Listing the process defined by the highest CPU utilization.

Monitoraggio delle informazioni di sistema filtrate

In alcuni casi, l’output è enorme, rendendo difficile filtrare le informazioni di sistema in base a uno scalpello specifico. Fortunatamente, Sysdig offre una potente opzione di filtraggio che utilizza la sintassi Lua in modo da poter effettuare un filtraggio efficace.

Supponiamo che tu stia cercando solo i processi sshd che contribuiscono a un elevato utilizzo della CPU. Puoi definire un’ espressione di filtro specificando un PID o un nome di processo specifico.

Esegui il comando sysdig di seguito per mostrare solo il processo sshd che utilizza molta CPU.

sudo sysdig proc.name=sshd

Come mostrato di seguito, otterrai un output filtrato senza ottenere altre informazioni sui processi.

Dall’output, puoi ottenere ulteriori informazioni sul processo sshd, ad esempio perché il processo sshd utilizza più CPU o memoria, e così via.

Listing the SSHD process

Creazione di un file di log eventi per monitorare il tuo sistema

Una delle grandi caratteristiche offerte da Sysdig sono i file di log eventi, che ti consentono di raccogliere tutte le informazioni su ciò che la tua applicazione o il sistema fa per analisi future. I file di log eventi forniscono le stesse informazioni degli output della riga di comando negli esempi precedenti, ma vengono salvati su un file su disco.

1. Esegui il comando di seguito per creare un file (-w) chiamato ata.scap nella tua directory home, dove Syslog archivierà tutti gli output di sysdig.

L’estensione del file .scap consente di salvare flussi di dati in forma di testo leggibile dall’uomo.

sudo sysdig -w ata.scap

2. Successivamente, esegui il comando ls -la di seguito per elencare tutti i file nella directory di lavoro.

ls -la

Noterai un nuovo file chiamato ata.scap nella tua directory home, come mostrato di seguito.

Listing All Files in Home Directory

3. Infine, esegui il comando seguente per far sì che Sysdig legga (-r) il file di registro degli eventi di Sysdig (ata.scap) e stampi il comportamento del tuo sistema quando accedi al server tramite SSH.

sudo sysdig -r ata.scap
Viewing the ata.scap File

Conclusioni

In questo articolo hai imparato come installare Sysdig su Ubuntu 20.04 e utilizzare csysdig per raccogliere informazioni sul sistema, sulle applicazioni e sulla sicurezza. Hai anche toccato l’argomento della creazione di un file di registro degli eventi che ti consente di registrare il comportamento del tuo sistema.

A questo punto, ti sei reso conto che avere Sysdig installato nel tuo sistema ti fornisce strumenti potenti. E questi strumenti ti aiutano a ottenere maggiori informazioni su come funzionano il tuo sistema, le tue applicazioni e l’infrastruttura.

Ora, con questa nuova conoscenza, perché non impari a decodificare il tuo traffico HTTP con Sysdig? O come individuare i collo di bottiglia delle applicazioni con i tracer di Sysdig?

Source:
https://adamtheautomator.com/sysdig/