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:
- strace – individua le chiamate di sistema e i segnali a un processo.
- tcpdump – monitoraggio del traffico di rete non elaborato.
- netstat – monitoraggio delle connessioni di rete.
- htop – monitoraggio dei processi in tempo reale.
- iftop – monitoraggio della larghezza di banda di rete in tempo reale.
- 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

Il precedente output (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, è 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.

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

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

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

Monitoraggio dei processi Linux
Per elencare i processi di sistema, digita:
$ sudo sysdig -c ps

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

Monitoraggio delle connessioni di rete e I/O
Per visualizzare le connessioni di rete di sistema, esegui:
$ sudo sysdig -c netstat

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

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

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

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]

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

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:
- BCC – Strumenti di tracciamento dinamico per il monitoraggio delle prestazioni, la rete e altro su Linux
- pyDash – Un tool di monitoraggio delle prestazioni di Linux basato sul web
- Perf – Uno strumento di monitoraggio e analisi delle prestazioni per Linux
- Collectl: Un avanzato strumento di monitoraggio delle prestazioni all-in-one per Linux
- 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/