Sysdig è uno strumento di monitoraggio e risoluzione dei problemi del sistema multipiattaforma open source. È utile per gli amministratori di sistema esperti e per coloro che hanno il primo assaggio della riga di comando di Linux. Può darci un sacco di informazioni su ciò che accade effettivamente sui nostri server, container o desktop durante le normali operazioni.
Sysdig viene fornito con un'interfaccia a riga di comando, ma ha anche un'interfaccia utente Web per coloro che sono più inclini alla GUI.
Sysdig raccoglie i dati di sistema e consente all'utente di filtrare e monitorare questi dati in molti modi. Puoi acquisire il traffico da/verso un container o una VM, utilizzare i filtri per fare in modo che il sistema mostri solo eventi rilevanti come "se il processo X è in ascolto sulla porta Y" e puoi aggregare gli eventi insieme in rappresentazioni grafiche delle tendenze a lungo termine .
La più grande forza di Sysdig è la sua profondità di intuizione. Sysdig può dirti dove stanno avvenendo tutte le letture del tuo disco, quanti pacchetti invia/riceve ogni container o se uno dei tuoi server web è inattivo. Fa anche il possibile e esegue il backup di queste informazioni con dati binari pertinenti (se registrati).
La maggior parte del nostro tempo come amministratori di sistema è dedicato alla risoluzione di problemi difficili da riprodurre o identificare. Il motivo per cui è così difficile eseguire il debug di questi problemi è che non ci sono abbastanza informazioni per continuare.
Sysdig può darci informazioni sufficienti per risolvere questi problemi. Una volta che abbiamo queste informazioni, la nostra risoluzione dei problemi diventa molto più semplice:spesso sembra di avere un superpotere.
Sysdig funziona sulla maggior parte delle principali distribuzioni, tra cui CentOS, Ubuntu, Debian, Fedora Core, Arch Linux, Gentoo e persino OSX. L'installazione è abbastanza semplice; non richiede la compilazione del codice sorgente (sì!), e c'è anche una pagina GitHub ufficiale che contiene le istruzioni di installazione per ogni distribuzione che Sysdig supporta ufficialmente.
Per questo articolo, installeremo Sysdig su un server Debian 11. Il processo è abbastanza semplice e non richiede una conoscenza approfondita di Linux per iniziare.
Prerequisiti
Per installare sysdig, dobbiamo avere:
- Una connessione ssh al nostro server remoto.
- Accesso root o sudo.
Aggiornamento del sistema
È una buona idea aggiornare il sistema prima di procedere. Possiamo farlo eseguendo:
sudo apt-get update && sudo apt-get upgrade -y
Una volta eseguiti gli aggiornamenti, eseguire i seguenti comandi per installare le dipendenze richieste. libc6 è la libreria standard C usata da Sysdig per fare la maggior parte del suo lavoro pesante. curl è uno strumento che recupera i file utilizzando il protocollo HTTP o HTTPS ed è quello che useremo per scaricare sysdig. libcurl3 è una dipendenza per curl.
sudo apt install libc6 libcurl3 gnupg -y
sudo apt install software-properties-common curl -y
Installazione di Syndig su Debian 11
Ora che il sistema è aggiornato, scarichiamo e installiamo Sysdig. Esegui il comando seguente per scaricare e installare sysdig.
sudo curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
A seconda delle specifiche del tuo server, l'operazione potrebbe richiedere del tempo. Quindi, per favore, sii paziente mentre questo download e l'installazione sono terminati.
Esempio di output:
Una volta completata l'installazione, possiamo verificare se Sysdig è installato correttamente eseguendo il comando seguente.
sysdig --version
Se l'installazione ha avuto successo, questo comando restituirà i dettagli della versione di sysdig come mostrato di seguito.
Puoi anche controllare le varie capacità di sysdig eseguendo il comando seguente.
sysdig -h
Utilizzo di Sysdig
Ora che abbiamo installato Sysdig, esaminiamo alcuni dei comandi di base in Sysdig.
La prima cosa che dobbiamo fare è eseguire il comando seguente per iniziare a catturare l'attività del sistema. Usiamo il comando sysdig per monitorare il sistema. Eseguiamo il comando sysdig con il prefisso sudo, che è necessario perché csysdig richiede l'accesso root o sudo per funzionare.
sudo csysdig
Esempio di output:
Quando sysdig inizia a catturare gli eventi, sysdig inizierà a popolare l'interfaccia con le informazioni. Dopo aver eseguito il comando precedente, i dati di sistema si aggiornavano ogni due secondi. Questo è controllato dalla variabile refresh_rate, che per impostazione predefinita è 2 secondi. Questo può essere regolato usando il file di configurazione di sysdig.
Nell'output sopra, vedrai colonne come PID, Nome, CPU e Comm. Queste sono descrizioni di colonne e possono essere visualizzate passandoci sopra con il mouse. La sintassi dei nomi delle colonne è [nome campo]- [descrittore campo].
I campi a cui teniamo di più di solito includono:
- PID - il PID del processo che ha generato l'evento.
- PPID:il PID del processo padre per un determinato processo.
- %CPU:quanto tempo CPU sta utilizzando un processo.
- USER - il nome utente dell'utente responsabile del processo.
- RES:la quantità di memoria non scambiata utilizzata da un processo.
- Comando - la riga di comando che ha avviato il processo.
Naturalmente, ci sono molte altre colonne che puoi usare per approfondire l'attività del sistema. E Sysdig può essere personalizzato in base alle tue esigenze.
Poiché i dati di sistema si aggiornano continuamente, può essere difficile capire cosa sta succedendo. Possiamo interrompere l'esecuzione di sysdig premendo CTRL + C . Una volta cancellata l'interfaccia, possiamo eseguire un comando sysdig con opzioni e filtri per ottenere i dati che desideriamo.
Il sistema di sistema è sysdig [opzioni] [filtri].
Il meccanismo di filtraggio di Sysdig è molto potente e può essere utilizzato per trovare esattamente quello che stai cercando. I filtri, simili a tcpdump, consistono in una catena di una o più espressioni primitive che sono collegate da congiunzioni ("e", "o") e opzionalmente terminate da una disgiunzione ("non"). Per mostrare tutti i filtri che possiamo usare con sysdig, esegui il comando seguente.
sysdig -l
Otterrai un elenco con un gran numero di filtri con una breve descrizione di ciascuno come mostrato di seguito.
Dal momento che è impossibile coprirli tutti, tratteremo alcuni filtri comunemente usati.
Inizieremo con il filtro - proc.name=che ci consente di filtrare per nomi di processi specifici.
Ad esempio, per cercare tutti gli eventi per il nome del processo "nano", possiamo eseguire il comando seguente.
sudo sysdig proc.name=nano
Esempio di output:
Puoi anche utilizzare operatori come "o" e "e" per ottenere dati più specifici. Ad esempio, puoi ottenere tutti gli eventi per "nano" o "vi".
sudo sysdig proc.name=cat or proc.name=vi
Esegui il comando seguente per visualizzare gli eventi relativi alla rete. Puoi vedere a quali porte sono collegate, indirizzi MAC e molte altre in tempo reale.
sudo sysdig -c netstat
Esempio di output:
Esegui il comando seguente per ottenere i principali processi che consumano CPU.
sudo sysdig -c topprocs_cpu
Esempio di output:
Per acquisire l'attività del sistema e salvarla per un'analisi successiva, utilizzare l'opzione -w, seguita da un nome file. Nell'esempio seguente, catturiamo tutto l'output da sysdig in un file chiamato "sysdig-output.scap"
sudo sysdig -w sysdig-output.scap
Questo comando dice a sysdig di emettere i dati continuamente finché non vengono fermati premendo CTRL+C . Con il tempo, il file aumenterà di dimensioni. Puoi utilizzare -C opzione per acquisire l'attività di sistema in un file con una dimensione massima di un numero specificato di MB.
Ad esempio, il comando seguente creerà un nuovo file ogni 1 MB e memorizzerà l'attività di sistema in esso.
sudo sysdig -C 1 -w sysdig-output.scap
Esegui il comando ls -l per vedere il file appena creato con il nome "sysdig-output.scap", come mostrato di seguito.
ls -l
L'output è il seguente:
Conclusione
Sysdig ha un gran numero di funzionalità e può essere utilizzato come un ottimo strumento per la risoluzione dei problemi e l'analisi delle prestazioni. E poiché è open source, puoi anche estenderne le funzionalità tramite scalpelli per soddisfare le tue esigenze.
In questo articolo, abbiamo trattato alcuni dei comandi di base per iniziare con sysdig. Per ulteriori letture su sysdig e sui suoi casi d'uso, vedere la sua pagina della documentazione.