Linux: comando “sar” per la raccolta e il reporting delle statistiche di sistema
Quando si tratta di monitorare e analizzare le prestazioni dei sistemi Linux, uno degli strumenti più potenti e versatili disponibili è il comando sar
(System Activity Reporter). Ogni amministratore di sistema dovrebbe conoscere questo comando, che fa parte del pacchetto sysstat
, un insieme di strumenti dedicati alla raccolta di statistiche dettagliate del sistema.
Il pacchetto sysstat
comprende una serie di comandi e utilità progettati per raccogliere e visualizzare dati statistici riguardanti l’utilizzo della CPU, della memoria, dei dispositivi di storage, della rete, e molti altri aspetti critici delle prestazioni del sistema. Tra questi comandi, sar
si distingue per la capacità di raccogliere dati a intervalli regolari e fornire report dettagliati, utili per la diagnosi e il troubleshooting di problemi di sistema.
Per utilizzare sar
è necessaria la preconfigurazione del servizio sysstat
e l’abilitazione della raccolta dei dati di sistema tramite il demone cron
. Una volta configurato, sar
può recuperare e visualizzare dati storici, diventando così uno strumento essenziale non solo per il monitoraggio in tempo reale ma anche per l’analisi retrospettiva.
sar
utilizza un formato tabellare per mostrare le informazioni raccolte. Ad esempio, eseguendo il comando sar -u
si ottiene un report sull’utilizzo della CPU, con dettagli quali la percentuale di tempo trascorso dal processore in user mode, system mode e idle. Altri comandi includono sar -r
per la memoria, sar -b
per il throughput I/O dei dispositivi di blocco, e sar -n
per le statistiche di rete.
Oltre alla capacità di visualizzare dati in tempo reale, sar
può anche salvare i dati raccolti in file di log, utilizzabili successivamente per analisi dettagliate e per identificare trend nelle prestazioni del sistema. Questa funzione è particolarmente utile per individuare e prevedere colli di bottiglia, consumi eccessivi di risorse e potenziali fallimenti del sistema.
L’importanza di strumenti come sar
nella gestione di sistemi complessi è notevole. In un ambiente dove i downtime possono avere costi significativi, la possibilità di monitorare continuamente le prestazioni del sistema e prendere decisioni informate sulla base di dati concreti è inestimabile.
In conclusione, il comando sar
e il pacchetto sysstat
sono risorse fondamentali per chiunque lavori con sistemi Linux. La loro capacità di fornire una visione dettagliata e storica delle prestazioni del sistema li rende strumenti indispensabili per l’ottimizzazione e la gestione proattiva delle risorse.
Sintassi di base e opzioni per la raccolta delle metriche di sistema
La sintassi del comando sar
può sembrare complessa a prima vista, ma una volta compreso il suo funzionamento, rappresenta uno strumento insostituibile per la gestione e il monitoraggio delle prestazioni del sistema. Il comando di base per sar
è strutturato come segue:
sar [opzioni] [intervallo] [conteggio]
L’intervallo rappresenta il tempo in secondi tra due raccolte consecutive di dati, mentre il conteggio indica quante volte verrà ripetuta la raccolta. Ad esempio, sar -u 5 3
raccoglierà e riporterà l’utilizzo della CPU ogni 5 secondi per 3 volte.
Ecco alcune delle opzioni più comuni per l’uso del comando sar
:
-u
: Fornisce statistiche sulla CPU, come il tempo trascorso in modalità utente, modalità di sistema e in stato di inattività.-r
: Riporta l’utilizzo della memoria, includendo dati su memoria libera, utilizzata, buffer e cache.-b
: Mostra il throughput I/O dei dispositivi di blocco, inclusi operazioni per secondo, letture e scritture al secondo.-n
: Offre dettagli sulle statistiche di rete, segmentato in sotto-opzioni come-n DEV
per i dati di rete specifici dell’interfaccia e-n EDEV
per gli errori di rete.-q
: Riporta le statistiche sui carichi di sistema (load averages) e sull’attività dei task.-d
: Fornisce dati sull’utilizzo dei dischi, come letture e scritture effettuate sul disco.
Una caratteristica fondamentale di sar
è la capacità di lavorare con dati storici. I dati raccolti da sar
vengono generalmente memorizzati in file binari di registro, situati nella directory /var/log/sa/
con prefisso sa
seguito dal giorno del mese. Per visualizzare questi dati, è possibile utilizzare il parametro -f
seguito dal percorso del file di log:
sar -f /var/log/sa/sa10
Un altro parametro utile è -s
per specificare l’orario di inizio della raccolta dati e -e
per l’orario di fine, ad esempio:
sar -s 08:00:00 -e 12:00:00 -u
Questo comando raccoglierà i dati sull’utilizzo della CPU dalle 08:00 alle 12:00 in un dato giorno. La combinazione di queste opzioni consente un’elevata personalizzazione nella raccolta e analisi dei dati di sistema, offrendo agli amministratori la flessibilità necessaria per concentrarsi su aspetti specifici delle prestazioni.
Infine, il comando sar
supporta anche l’output in diversi formati, incluse le opzioni per eseguire script e creare report personalizzati utilizzando il parametro -o
per salvare l’output in un file specifico, che può essere successivamente analizzato con altri strumenti come sadf
.
In sintesi, comprendere la sintassi e le opzioni disponibili del comando sar
è essenziale per sfruttare al meglio le sue potenti capacità di monitoraggio delle prestazioni. Utilizzando in modo efficace sar
, gli amministratori possono ottenere una visione chiara e dettagliata delle metriche critiche del sistema, facilitando la manutenzione preventiva e la risoluzione dei problemi.
Monitoraggio delle risorse di CPU, memoria, I/O e rete con ‘sar’
Il monitoraggio delle risorse di sistema è una componente cruciale per garantire prestazioni ottimali e prevenire problemi prima che diventino critici. In ambiente Linux, uno degli strumenti più potenti ed efficienti per la raccolta e il reporting delle statistiche di sistema è il comando sar
(System Activity Reporter). Utilizzando sar
, gli amministratori di sistema possono ottenere dati dettagliati relativi a risorse chiave come CPU, memoria, I/O (input/output) e rete, permettendo una gestione più accurata e informata dell’infrastruttura.
Monitoraggio della CPU: Con l’opzione -u
, sar
fornisce una panoramica completa dell’utilizzo della CPU. Queste statistiche includono il tempo trascorso in modalità utente, modalità di sistema e inattività (idle), nonché altri stati specifici come il tempo passato in modalità di attesa (I/O wait). Ad esempio, con il comando sar -u 1 5
, si otterranno dati sull’utilizzo della CPU ogni secondo per cinque secondi, permettendo di identificare facilmente eventuali picchi di uso o pattern di consumo anomali.
Monitoraggio della memoria: Utilizzando sar -r
si può accedere a dettagli completi sull’utilizzo della memoria del sistema. Le informazioni riportate includono la quantità di memoria libera e utilizzata, così come i dati relativi a buffer e cache. Questo livello di dettaglio è cruciale per identificare problemi di memoria insufficiente e ottimizzare l’allocazione delle risorse.
Monitoraggio dell’I/O: L’opzione -b
mostra il throughput I/O dei dispositivi di blocco, offrendo dati su operazioni per secondo, letture e scritture al secondo. Il monitoraggio dell’I/O è vitale per individuare colli di bottiglia e problemi di prestazioni legati ai dischi di memoria e altri dispositivi di blocco.
Monitoraggio della rete: Per le statistiche di rete, l’opzione -n
fornisce informazioni essenziali su traffico e prestazioni delle interfacce di rete. I sotto-parametri come -n DEV
e -n EDEV
permettono di segmentare i dati in base all’interfaccia specifica e agli errori di rete, rispettivamente, dando una chiara visione dello stato delle connessioni di rete.
L’aspetto forse più interessante di sar
è la sua capacità di gestire e lavorare con dati storici. I dati raccolti possono essere salvati in file binari nella directory /var/log/sa/
. Utilizzando il parametro -f
, questi file possono essere letti e analizzati successivamente, consentendo una revisione dettagliata delle performance storiche del sistema. Ad esempio, con sar -f /var/log/sa/sa15
si ottengono i dati raccolti il giorno 15.
La combinazione di parametri come -s
e -e
permette di specificare intervalli temporali precisi per l’analisi dei dati raccolti, rendendo sar
estremamente flessibile. Ad esempio, con sar -s 08:00:00 -e 12:00:00 -u
, si possono ottenere le statistiche sull’utilizzo della CPU tra le 8:00 e le 12:00 di un dato giorno.
Inoltre, sar
supporta l’output in formati diversi e la creazione di report personalizzati. Utilizzando il parametro -o
, i dati raccolti possono essere salvati in file per ulteriori analisi o visualizzazioni con strumenti come sadf
. Questo livello di personalizzazione permette di integrare sar
in script automatizzati per il monitoraggio continuo e la generazione di report periodici.
In sintesi, il comando sar
rappresenta uno strumento indispensabile per il monitoraggio delle prestazioni in ambiente Linux. La sua ricchezza di opzioni e capacità di gestione dei dati storici lo rendono una scelta eccellente per ogni amministratore di sistema, facilitando sia la manutenzione preventiva che la risoluzione tempestiva dei problemi.
Come configurare ‘sar’ per il monitoraggio periodico
Configurare sar
per un monitoraggio periodico delle risorse di sistema in Linux è un processo semplice che garantisce un’analisi continua e dettagliata delle prestazioni del sistema. sar
, parte del pacchetto sysstat, può essere configurato per raccogliere dati a intervalli regolari e generare report automatici utili per diagnosi approfondite e ottimizzazione delle risorse. Ecco come procedere:
1. Installazione del pacchetto sysstat: Prima di tutto, assicurarsi che il pacchetto sysstat, che include sar
, sia installato. Su distribuzioni basate su Debian, come Ubuntu, usare il comando:
sudo apt-get install sysstat
Su distribuzioni basate su Red Hat, come CentOS o Fedora, il comando sarà:
sudo yum install sysstat
2. Abilitare il servizio sysstat: Dopo l’installazione, abilitare il servizio sysstat per avviare il monitoraggio automatico:
sudo systemctl enable sysstat sudo systemctl start sysstat
3. Configurare la frequenza di raccolta dati: La frequenza con cui sar
raccoglie i dati può essere configurata modificando il file /etc/cron.d/sysstat
:
sudo nano /etc/cron.d/sysstat
All’interno di questo file, si trovano linee che specificano gli intervalli di tempo per il campionamento delle statistiche. Ad esempio, per raccogliere dati ogni 10 minuti:
*/10 * * * * root /usr/lib/sysstat/sa1 1 1
Questo comando indica a sa1
di raccogliere dati ogni 10 minuti. sa1
è un’utility parte del pacchetto sysstat, utilizzata da cron per raccogliere dati di sistema.
4. Consultare i file di log: I dati raccolti da sar
sono memorizzati in /var/log/sa/
. È possibile visualizzare questi dati utilizzando il comando sar
con l’opzione -f
per specificare il file di log:
sar -f /var/log/sa/sa10
Questo comando mostrerà i dati raccolti il giorno 10 del mese.
5. Configurare la durata della conservazione dei log: La durata della conservazione dei log di sar
può essere configurata modificando il file /etc/sysconfig/sysstat
(o /etc/default/sysstat
su alcune distribuzioni), cambiando il valore di HISTORY
:
HISTORY=28
Questo esempio configura la conservazione dei log per 28 giorni. Puoi regolare il valore in base alle tue esigenze.
6. Automatizzare report personalizzati: Per creare report personalizzati automatizzati, puoi usare script di shell che invocano sar
con opzioni specifiche e salvarli su file o inviarli tramite email. Ad esempio, uno script potrebbe raccogliere dati sull’uso della CPU ogni giorno e inviare un report per email:
#!/bin/bash DATE=$(date +%Y%m%d) sar -u -f /var/log/sa/sa$(date +%d) > /home/user/reports/cpu_usage_$DATE.txt mail -s "CPU Usage Report for $DATE" user@example.com < /home/user/reports/cpu_usage_$DATE.txt
Tramite questi passaggi, puoi configurare sar
per il monitoraggio periodico, ottenendo così un sistema efficiente per la raccolta di dati e il reporting delle risorse di sistema in ambiente Linux. L’approccio flessibile e personalizzabile di sar
lo rende uno strumento indispensabile per monitorare e ottimizzare le prestazioni del sistema.
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.