Ricerca nel sito web

Sysdig: un potente strumento di monitoraggio e risoluzione dei problemi del sistema per Linux


Sysdig è uno strumento di monitoraggio e risoluzione dei problemi del sistema open source, multipiattaforma, potente e flessibile per Linux; funziona anche su Windows e Mac OSX ma con funzionalità limitate e può essere utilizzato per l'analisi, l'ispezione e il debug del sistema.

Normalmente, utilizzeresti un mix di vari strumenti di monitoraggio delle prestazioni e risoluzione dei problemi di Linux, inclusi quelli elencati di seguito per eseguire le attività di monitoraggio e debug di Linux:

  1. strace: rileva chiamate di sistema e segnali a un processo.
  2. tcpdump: monitoraggio del traffico di rete non elaborato.
  3. netstat – monitoraggio delle connessioni di rete.
  4. htop – monitoraggio del processo in tempo reale.
  5. iftop: monitoraggio della larghezza di banda della rete in tempo reale.
  6. lsof: visualizza quali file vengono aperti da quale processo.

Tuttavia, sysdig integra ciò che tutti gli strumenti di cui sopra e molti altri offrono in un unico e semplice programma, soprattutto con uno straordinario supporto per i contenitori. Ti consente di acquisire, salvare, filtrare ed esaminare il comportamento reale (flusso di eventi) dei sistemi Linux e dei contenitori.

Viene fornito con un'interfaccia a riga di comando e una potente interfaccia utente interattiva (csysdig) che ti consente di osservare l'attività del sistema in tempo reale o eseguire un dump della traccia e salvare per un'analisi successiva. Puoi vedere come funziona csysdig dal video qui sotto.

Caratteristiche di Sysdig:

  • È veloce, stabile e facile da usare con una documentazione completa e ben documentata.
  • Viene fornito con il supporto nativo per le tecnologie container, tra cui Docker, LXC.
  • È scriptabile in Lua; offre scalpelli (script Lua leggeri) per l'elaborazione degli eventi di sistema catturati.
  • Supporta un utile filtraggio dell'output.
  • Supporta il tracciamento del sistema e delle applicazioni.
  • Può essere integrato con Ansible, Puppet e Logstash.
  • Abilita l'analisi avanzata del registro dei campioni.
  • Offre inoltre funzionalità di analisi (forense) degli attacchi ai server Linux per hacker etici e molto altro ancora.

In questo articolo mostreremo come installare sysdig su un sistema Linux e utilizzarlo con esempi di base di analisi, monitoraggio e risoluzione dei problemi del sistema.

Come installare Sysdig su Linux

Installare il pacchetto sysdig è facile come eseguire il comando seguente, che controllerà tutti i requisiti; se tutto è a posto, scaricherà e installerà il pacchetto dal repository 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

Dopo averlo installato, devi eseguire sysdig come root perché richiede l'accesso ad aree critiche come il file system /proc, /dev/sysdig* dispositivi e necessita di caricare automaticamente il modulo del kernel sysdig-probe (nel caso in cui non lo sia); altrimenti usa il comando sudo.

L'esempio più semplice è eseguirlo senza argomenti, questo ti consentirà di visualizzare il flusso di eventi del tuo sistema Linux aggiornato in tempo reale:

sudo sysdig

L'output di cui sopra (dati grezzi) forse non ha molto senso per te, per un output più utile esegui csysdig:

sudo csysdig 

Nota: per avere un'idea reale di questo strumento, devi utilizzare sysdig che produce dati grezzi come abbiamo visto prima, da un file in esecuzione Sistema Linux: questo richiede che tu capisca come usare filtri e scalpelli.

Ma se hai bisogno di un modo indolore per utilizzare sysdig, continua con csysdig.

Comprensione degli scalpelli e dei filtri Sysdig

Gli scalpelli Sysdig sono script Lua minimi per esaminare il flusso di eventi sysdig per eseguire azioni utili per la risoluzione dei problemi del sistema e altro ancora. Il comando seguente ti aiuterà a visualizzare tutti gli scalpelli disponibili:

sudo sysdig -cl

La schermata mostra un elenco campione di scalpelli suddivisi in diverse categorie.

Se vuoi trovare maggiori informazioni su un particolare scalpello, usa il flag -i:

sudo sysdig -i topprocs_cpu

I filtri Sysdig aggiungono più potenza al tipo di output che puoi ottenere dai flussi di eventi e ti consentono di personalizzare l'output. Dovresti specificarli alla fine di una riga di comando.

Un filtro semplice e più comune è un controllo di base "class.field=value", puoi anche combinare scalpelli con filtri per personalizzazioni ancora più potenti.

Per visualizzare un elenco delle classi di campo disponibili, dei campi e delle relative descrizioni, digitare:


sudo sysdig -l

Creazione del file di traccia del sistema Linux

Per eseguire il dump dell'output di sysdig in un file per un'analisi successiva, utilizzare il flag -w in questo modo.

Puoi leggere il file di dump della traccia utilizzando il flag -r:


sudo sysdig -r trace.scap

L'opzione -s viene utilizzata per specificare la quantità di byte di dati da acquisire per ciascun evento di sistema. In questo esempio, stiamo filtrando gli eventi per il processo mongod.

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

Monitoraggio dei processi Linux

Per elencare i processi di sistema, digitare:

sudo sysdig -c ps

Monitorare i processi in base all'utilizzo della CPU

Per osservare i processi principali in base alla percentuale di utilizzo della CPU, esegui questo comando:

sudo sysdig -c topprocs_cpu

Monitoraggio delle connessioni di rete e degli I/O

Per visualizzare le connessioni di rete del sistema, eseguire:

sudo sysdig -c netstat

Il seguente comando ti aiuterà a elencare le principali connessioni di rete in byte totali:

sudo sysdig -c topconns

Successivamente, puoi anche elencare i processi principali in base all'I/O di rete come segue:

sudo sysdig -c topprocs_net    

Monitoraggio dell'I/O dei file di sistema

È possibile emettere i dati letti e scritti dai processi sul sistema come di seguito:

sudo sysdig -c echo_fds

Per elencare i processi principali in base ai byte del disco (lettura + scrittura), utilizzare:

sudo sysdig -c topprocs_file   

Risoluzione dei problemi relativi alle prestazioni del sistema Linux

Per tenere d'occhio i colli di bottiglia del sistema (chiamate di sistema lente), esegui questo comando:

sudo sysdig -c bottlenecks

Tieni traccia del tempo di esecuzione di un processo

Per tenere traccia del tempo di esecuzione di un processo, puoi eseguire questo comando e scaricare la traccia in un file:

sudo sysdig -w extime.scap -c proc_exec_time 

Quindi utilizza un filtro per eliminare i dettagli di un particolare processo (postgres in questo esempio) come segue:

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

Scopri Rete lenta I/0

Questo semplice comando ti aiuterà a rilevare l'I/0 di rete lento:

sudo sysdig -c netlower     

Visualizzazione delle voci del file di registro

Il comando seguente ti aiuta a visualizzare ogni messaggio scritto su syslog, se sei interessato alle voci di log per un processo specifico, crea un dump di traccia e filtralo di conseguenza come mostrato prima:

sudo sysdig -c spy_syslog      

È possibile stampare qualsiasi dato scritto da qualsiasi processo in un file di registro come segue:

sudo sysdig -c spy_logs   

Monitoraggio delle richieste del server HTTP

Se hai un server HTTP come Apache o Nginx in esecuzione sul nostro sistema, esamina il registro delle richieste del server con questo comando:

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

Visualizza shell di accesso e attività utente interattiva

Il comando seguente ti consentirà di visualizzare tutti gli ID della shell di accesso:

sudo sysdig -c list_login_shells

Ultimo ma non meno importante, puoi mostrare l'attività interattiva degli utenti del sistema in questo modo:

sudo sysdig -c spy_users

Per ulteriori informazioni ed esempi sull'utilizzo, leggere le pagine man di sysdig e csysdig:

man sysdig 
man csysdig

Riferimento: https://www.sysdig.org/

Controlla anche questi utili strumenti di monitoraggio delle prestazioni di Linux:

  1. BCC: strumenti di tracciamento dinamico per il monitoraggio delle prestazioni Linux, la rete e altro ancora
  2. pyDash: uno strumento di monitoraggio delle prestazioni Linux basato sul Web
  3. Perf: uno strumento di monitoraggio e analisi delle prestazioni per Linux
  4. Collectl: uno strumento avanzato di monitoraggio delle prestazioni tutto in uno per Linux
  5. Netdata: uno strumento di monitoraggio delle prestazioni in tempo reale per sistemi Linux
Conclusione

Sysdig riunisce funzionalità di numerosi strumenti da riga di comando in un'unica straordinaria interfaccia, consentendoti così di scavare in profondità negli eventi del tuo sistema Linux per raccogliere dati, salvarli per analisi successive e offre un incredibile supporto per i contenitori.

Per porre domande o condividere opinioni su questo strumento, utilizzare il modulo di feedback riportato di seguito.