Sysdig – Uno strumento potente per il monitoraggio e la risoluzione dei problemi di sistema su Linux

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

Normalmente, si utilizzerebbe una combinazione di vari strumenti di monitoraggio e risoluzione dei problemi delle prestazioni di Linux, inclusi quelli elencati di seguito, per eseguire attività di monitoraggio e debug di Linux:

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

Tuttavia, sysdig integra ciò che tutti gli strumenti sopra citati e molti altri offrono in un singolo e semplice programma, ancora di più con un incredibile supporto ai container. Consente di catturare, salvare, filtrare ed esaminare il vero comportamento (flusso di eventi) dei sistemi Linux così come dei container.

È dotato di un’interfaccia a riga di comando e di un potente UI interattiva (csysdig) che ti permette di monitorare l’attività del sistema in tempo reale, o eseguire un tracciato di dump 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 esaustivamente ben documentata.
  • Viene fornito con il supporto nativo per le tecnologie container, incluso Docker, LXC.
  • È scriptabile in Lua; offre scalpelli (script Lua leggeri) per elaborare gli eventi di sistema catturati.
  • Supporta il filtraggio utile dell’output.
  • Supporta il tracciamento di sistema e applicativo.
  • Può essere integrato con Ansible, Puppet e Logstash.
  • Abilita l’analisi avanzata dei log di esempio.
  • Offre anche funzionalità di analisi degli attacchi ai server Linux (forensi) per hacker etici e molto altro ancora.

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

Come installare Sysdig in Linux

L’installazione del pacchetto sysdig è semplice come eseguire il comando qui sotto, che verificherà 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, è necessario eseguire sysdig come root perché richiede accesso a aree critiche come il sistema di file /proc, i dispositivi /dev/sysdig* e deve caricare automaticamente il modulo del kernel sysdig-probe (nel caso non lo faccia); altrimenti utilizzare il comando sudo.

L’esempio più basilare è eseguirlo senza argomenti, questo ti permetterà di visualizzare lo stream degli eventi del sistema Linux aggiornato in tempo reale:

$ sudo sysdig
Watch Linux System Events

Il precedente output (dati grezzi) forse non ha molto senso per te, per un output più utile esegui csysdig:

$ sudo csysdig 
Monitor Linux System Events

Nota: Per avere un’idea reale di questo strumento, è necessario utilizzare sysdig che produce dati grezzi come abbiamo visto prima, da un sistema Linux in esecuzione: questo richiede che tu capisca come utilizzare filtri e scalpelli.

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

Comprensione di Scalpelli e Filtri di Sysdig

Gli scalpelli di Sysdig sono script Lua minimi per esaminare lo stream degli eventi di sysdig per eseguire azioni utili di risoluzione dei problemi di sistema e altro ancora. Il comando qui sotto ti aiuterà a visualizzare tutti gli scalpelli disponibili:

$ sudo sysdig -cl

Lo screenshot mostra un elenco di campioni di scalpelli suddivisi in diverse categorie.

View Sysdig Chisels

Se desideri ottenere ulteriori informazioni su un particolare scalpello, utilizza il flag -i:

$ sudo sysdig -i topprocs_cpu
View Sysdig Chisel Info

I filtri di Sysdig aggiungono più potenza al tipo di output che puoi ottenere dagli stream di eventi, ti consentono di personalizzare l’output. Dovresti specificarli alla fine di una riga di comando.

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

Per visualizzare un elenco delle classi di campi disponibili, campi e le loro descrizioni, digita:

$ sudo sysdig -l
View Sysdig Field Classes

Creazione di un file di traccia di sistema Linux

Per scaricare l’output di sysdig in un file per un’analisi successiva, utilizza 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
Create MongoDB Trace File

Monitoraggio dei processi Linux

Per elencare i processi di sistema, digita:

$ sudo sysdig -c ps
Monitor Linux Processes

Monitoraggio dei processi per utilizzo della CPU

Per monitorare i processi principali per percentuale di utilizzo della CPU, esegui questo comando:

$ sudo sysdig -c topprocs_cpu
Monitor Processes by CPU Usage

Monitoraggio delle connessioni di rete e I/O

Per visualizzare le connessioni di rete di sistema, esegui:

$ sudo sysdig -c netstat
Monitor Network Connections

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

$ sudo sysdig -c topconns

Inoltre, puoi elencare i processi principali per I/O di rete come segue:

$ sudo sysdig -c topprocs_net    

Monitoraggio dell’I/O di file di sistema

Puoi visualizzare i dati letti e scritti dai processi sul sistema come segue:

$ sudo sysdig -c echo_fds
Monitor System IO

Per elencare i processi principali per byte di disco (lettura + scrittura), utilizza:

$ sudo sysdig -c topprocs_file   

Risoluzione dei problemi delle prestazioni di un sistema Linux

Per monitorare i colli di bottiglia del sistema (chiamate di sistema lente), eseguire questo comando:

$ sudo sysdig -c bottlenecks
Troubleshoot Linux Performance

Tracciare il tempo di esecuzione di un processo

Per tracciare il tempo di esecuzione di un processo, è possibile eseguire questo comando e scaricare la traccia in un file:

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

Quindi utilizzare un filtro per concentrarsi sui dettagli di un particolare processo (postgres in questo esempio) come segue:

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

Scoprire le lentezze dell’I/O di rete

Questo semplice comando ti aiuterà a individuare le lentezze dell’I/O di rete:

$ sudo sysdig -c netlower     

Osservare le voci del file di registro

Il comando seguente ti aiuta a visualizzare ogni messaggio scritto nel syslog, se sei interessato alle voci di registro di un processo specifico, crea una traccia e filtra di conseguenza come mostrato in precedenza:

$ sudo sysdig -c spy_syslog      

È possibile stampare qualsiasi dato scritto da un processo su 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, consulta il registro delle richieste del server con questo comando:

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

Visualizzare le shell di accesso e l’attività degli utenti interattivi

Il comando seguente ti permetterà di visualizzare tutti gli ID delle shell di accesso:

$ sudo sysdig -c list_login_shells

Per ultimo, puoi mostrare l’attività interattiva degli utenti di sistema in questo modo:

$ sudo sysdig -c spy_users
Monitor User Activity

Per ulteriori informazioni sull’uso e esempi, leggere le pagine man di sysdig e csysdig:

$ man sysdig 
$ man csysdig

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

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

  1. BCC – Strumenti di tracciamento dinamico per il monitoraggio delle prestazioni, la rete e altro su Linux
  2. pyDash – Un tool di monitoraggio delle prestazioni di Linux basato sul web
  3. Perf – Uno strumento di monitoraggio e analisi delle prestazioni per Linux
  4. Collectl: Un avanzato strumento di monitoraggio delle prestazioni all-in-one per Linux
  5. Netdata – Uno strumento di monitoraggio delle prestazioni in tempo reale per i sistemi Linux
Conclusione

Sysdig unisce funzionalità di numerosi strumenti a riga di comando in un’interfaccia straordinaria, consentendoti così di approfondire gli eventi del tuo sistema Linux per raccogliere dati, salvarli per un’analisi successiva e offre un’incredibile supporto ai container.

Per fare domande o condividere pensieri su questo strumento, utilizza il modulo di feedback qui sotto.

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