Il tuo sistema Linux è un'eccellente piattaforma per server e desktop. Ma come qualsiasi altro sistema complesso, disporre di un monitoraggio adeguato è fondamentale per mantenere il sistema al massimo. Fortunatamente, Sysdig è proprio dietro l'angolo!
Sysdig è uno strumento di monitoraggio Linux completo in grado di monitorare il tuo sistema per minacce, errori, modelli di utilizzo e molti altri. E in questo tutorial imparerai a installare Sysdig evidenziando particolari opzioni di configurazione lungo il percorso su come monitorare meglio il tuo sistema Linux.
Continua a leggere e non perdere mai più un "avviso"!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri seguire, assicurati di avere quanto segue.
- Una macchina Linux – Questo tutorial utilizza Ubuntu 20.04 LTS, ma qualsiasi distribuzione Linux funzionerà.
- Un utente non root con privilegi sudo.
Installazione di Sysdig su Linux
Lo strumento da riga di comando Sysdig è in genere 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 ed esegui apt update
comando di seguito per assicurarti di avere gli ultimi aggiornamenti dai repository della tua distribuzione. Questo comando aggiorna gli elenchi dei pacchetti del tuo sistema e il completamento potrebbe richiedere alcuni minuti.
sudo apt update -y
2. Quindi, esegui apt install
comando qui sotto per scaricare (curl
) e install
i pacchetti necessari per Sysdig. Questo comando installa anche alcuni moduli aggiuntivi usati più avanti in questo tutorial come segue:
gnupg
– GNU Privacy Guard è uno strumento per la comunicazione sicura e l'archiviazione dei dati. Questo pacchetto consente di scaricare la chiave GPG pubblica di Sysdig per verificare la validità dei pacchetti Sysdig.
software-properties-common
– Fornisce un modo rapido per gestire le sorgenti software tramite l'ambiente della riga di comando o la GUI. Questo pacchetto ti consente di utilizzare iladd-apt-repository
comando per aggiungere i repository dei pacchetti Sysdig.
linux-headers-$(uname -r)
– Fornisce i file necessari per creare i moduli del kernel per il kernel in esecuzione. Questo pacchetto è necessario perché potresti installare Sysdig su una macchina con un kernel stock precedente.
sudo apt install gnupg software-properties-common curl -y && sudo apt install linux-headers-$(uname -r) -y
3. Esegui curl
comando seguente per aggiungere la chiave pubblica GPG di Sysdig (GPG
) al portachiavi del tuo APT. Questo comando 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 correttamente la chiave, come mostrato di seguito.
4. Ora esegui curl
comando di seguito per silenziosamente (-s
) scarica i repository Sysdig come draios.list
e aggiungilo al tuo sistema. Il .list
l'estensione dice al tuo APT che il file è un elenco di URL per i repository, piuttosto che un solo URL.
curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list
5. Riesegui il apt update
comando seguente per scaricare i nuovi repository Sysdig e aggiornare gli elenchi dei pacchetti di APT con le informazioni sui nuovi repository.
sudo apt update -y
Vedrai il seguente output se il tuo APT è configurato correttamente.
6. Dopo aver scaricato i repository Sysdig, eseguire apt install
comando di seguito a install sysdig
sulla tua macchina. Questo comando scarica e installa sysdig
pacchetto e i relativi pacchetti di supporto.
sudo apt install sysdig -y
7. Infine, esegui sysdig
comando seguente per verificare la versione di Sysdig installata sulla tua macchina.
sudo sysdig --version
Il numero di versione aiuta a determinare se il pacchetto Sysdig è aggiornato. La versione fornisce anche informazioni sul fatto che il rilascio di Sysdig influisca o meno sulle prestazioni del sistema.
Come mostrato di seguito, 0.28.0 è l'ultima versione di sysdig al momento della stesura di questo documento. Il tuo numero di versione potrebbe essere diverso.
Monitoraggio di sistemi Linux con csysdig
Ora che hai installato Sysdig, puoi usare Sysdig per vedere cosa sta succedendo con il tuo sistema. Lo strumento da riga di comando Sysdig ha molti flag che ti offrono viste diverse del tuo sistema e della sua attività. L'esempio più semplice è il csysdig
comando.
Esegui il comando csysdig
senza alcun flag per vedere cosa sta succedendo sul tuo sistema in questo momento. Il comando ti mostrerà l'attività di tutti i processi attualmente in esecuzione.
Nota che devi eseguire i comandi Sysdig con
sudo
privilegio di avere pieno accesso al tuo sistema. Alcune attività di sistema potrebbero essere nascoste per impostazione predefinita da utenti non root, come l'output del file system /proc. Sysdig richiede anchesudo
privilegi per caricare automaticamente i simboli del kernel necessari per eseguire molti dei suoi trucchi, come il modulo del kernel sysdig-probe
sudo csysdig
Se riscontri il seguente errore, dovrai reinstallare il ncurses-term
pacchetto. Il ncurses-term
il pacchetto tende a danneggiarsi dopo una nuova installazione di Sysdig. Sysdig dipende dal ncurses-term
pacchetto per supportare la sua interfaccia utente ncurses.
Se il csysdig
comando è riuscito, otterrai il seguente output organizzato in schede.
Descrizione | |
PID | L'ID del processo assegnato dal kernel Linux. Utilizzi i PID per identificare e gestire i processi. |
PPID | L'ID del processo padre del processo. Si utilizza PPID per risalire al processo attraverso i suoi processi padre. Insieme, PID e PPID identificano in modo univoco un processo sul tuo sistema. |
CPU | La percentuale di CPU utilizzata dall'applicazione dall'avvio può essere visualizzata su una scala da 0 a 100%, dove 100% corrisponde all'utilizzo totale della CPU. Utilizzi l'utilizzo della CPU per trovare applicazioni che stanno monopolizzando le risorse di sistema. |
UTENTE | Il nome dell'utente che ha avviato il processo. Utilizzi USER per scoprire chi sta eseguendo un processo che ti interessa. |
ES | Il nome dell'utente che ha avviato il processo. Utilizzi USER per scoprire chi sta eseguendo un processo che ti interessa. |
VIRT | La quantità totale di memoria virtuale utilizzata dall'applicazione. Utilizzi VIRT per trovare applicazioni che occupano la memoria del tuo sistema. |
RES | Il numero di pagine di memoria residenti di un processo, mappate sulla memoria fisica. Utilizzi RES per trovare applicazioni che occupano la memoria del tuo sistema. |
FILE | Il descrittore di file del disco utilizzato dall'applicazione. Utilizzi FILE per vedere quali file vengono letti o scritti frequentemente, in genere un'indicazione dell'attività di I/O. |
NET | Il descrittore di socket di rete utilizzato dall'applicazione. Utilizzi NET per vedere quali connessioni di rete vengono utilizzate dal processo e quanti dati vengono trasferiti in byte al secondo. |
Comando | Il descrittore di socket di rete utilizzato dall'applicazione. Utilizzi NET per vedere quali connessioni di rete vengono utilizzate dal processo e quanti dati vengono trasferiti in byte al secondo. |
A prima vista, l'interfaccia csysdig sembra simile a strumenti di monitoraggio come htop.
Premi F2 e le schede in alto cambieranno per visualizzare un nuovo insieme di informazioni organizzate in schede sulla sinistra, come mostrato di seguito.
Sysdig chiama queste "viste" perché sono viste di sistema diverse, 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 modificare la vista come preferisci.
Per impostazione predefinita, gli script LUA si trovano in /usr/share/sysdig/chisels directory, come mostrato di seguito.
ls /usr/share/sysdig/chisels
Monitoraggio dei processi che consumano CPU con gli scalpelli Sysdig
Sysdig offre diversi scalpelli pronti per l'uso che raccolgono automaticamente informazioni di sistema specifiche, note come "scalpelli". Forse stai riscontrando prestazioni lente sulla tua CPU. In tal caso, eseguire il sysdig
comando con uno scalpello specifico ti consente di visualizzare quali applicazioni/processi stanno assorbendo la maggior parte dell'utilizzo della tua CPU.
1. Esegui sysdig
comando seguente per elencare gli scalpelli disponibili.
sudo sysdig -cl
Lo screenshot qui sotto mostra solo alcuni scalpelli. Ma puoi trovare e conoscere l'elenco completo di tutti gli scalpelli disponibili nella documentazione ufficiale.
Anche gli scalpelli Sysdig sono script LUA. Puoi crea i tuoi scalpelli per monitorare informazioni di sistema specifiche o implementare la tua vista, ma questo argomento esula dallo scopo di questo tutorial.
2. Quindi, esegui il comando seguente per visualizzare le informazioni dettagliate (-i
) su uno scalpello specifico, come topprocs_cpu
in questa demo.
sudo sysdig -i topprocs_cpu
Puoi vedere tutte le informazioni sullo scalpello topprocs_cpu di seguito, incluso il nome dello scalpello, la categoria e una breve descrizione di ciò che fa lo scalpello.
In questo esempio, lo scalpello topprocs_cpu è classificato come Utilizzo CPU e mostra il processo principale definito dall'utilizzo più elevato della CPU.
Una volta compresa la funzionalità di uno scalpello, puoi iniziare a utilizzare quello scalpello.
3. Esegui sysdig
comando seguente, specificando lo scalpello giusto (-c topprocs_cpu
) per trovare le applicazioni che utilizzano la quantità maggiore di CPU nel sistema.
sudo sysdig -c topprocs_cpu
Sysdig cattura i primi 10 processi che consumano CPU in questa demo e li stampa sul terminale. Il processo che richiede più CPU verrà visualizzato in alto (sshd), rendendolo più veloce da trovare.
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 eseguire un filtraggio efficace.
Supponiamo che tu stia cercando solo processi sshd che contribuiscono a un elevato utilizzo della CPU. È possibile definire un'espressione di filtro tramite un PID o un nome di processo specifico.
Esegui il seguente sysdig
comando per mostrare solo il sshd
processo che utilizza molta CPU.
sudo sysdig proc.name=sshd
Come mostrato di seguito, otterrai un output filtrato senza ottenere altre informazioni sul processo.
Dall'output, puoi ottenere maggiori informazioni sul processo sshd, ad esempio perché il processo sshd utilizza più CPU o memoria e così via.
Creazione di un file di registro eventi per monitorare il tuo sistema
Una delle fantastiche funzionalità offerte da Sysdig sono i file di registro degli eventi, che consentono di raccogliere tutte le informazioni su ciò che la tua applicazione o il sistema fa per un'analisi successiva. I file di registro eventi forniscono le stesse informazioni degli output della riga di comando negli esempi precedenti, ma vengono salvati in un file su disco.
1. Esegui il comando seguente per creare un file (-w
) chiamato ata.scap
nella tua home directory, dove Syslog memorizzerà tutti i sysdig
uscite.
L'estensione del file .scap consente di salvare flussi di dati sotto forma di testo leggibile.
sudo sysdig -w ata.scap
2. Quindi, esegui ls -la
comando seguente per elencare tutti i file nella directory di lavoro.
ls -la
Noterai un nuovo file chiamato ata.scap nella tua home directory, come mostrato di seguito.
3. Infine, esegui il comando seguente per consentire a Sysdig di leggere (-r
) il file di registro eventi Sysdig (ata.scap
) e stampa il comportamento del tuo sistema quando esegui SSH nel tuo server.
sudo sysdig -r ata.scap
Conclusione
In questo articolo, hai imparato come installare Sysdig su Ubuntu 20.04 e usare csysdig per raccogliere il tuo sistema, applicazioni e informazioni sulla sicurezza. Hai anche accennato alla creazione di un file di registro 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 potenti strumenti. E questi strumenti ti aiutano a ottenere maggiori informazioni su come funzionano il tuo sistema, le tue applicazioni e la tua infrastruttura.
Ora, con questa nuova conoscenza, perché non imparare a decodificare il tuo traffico HTTP con Sysdig? O come rintracciare i colli di bottiglia delle applicazioni con i traccianti Sysdig?