Ricerca nel sito web

Come produrre e distribuire report sulle attività del sistema utilizzando i set di strumenti Linux - Parte 3


In qualità di ingegnere di sistema, avrai spesso bisogno di produrre report che mostrino l'utilizzo delle risorse del tuo sistema per assicurarti che: 1) vengano utilizzate in modo ottimale, 2) prevengano colli di bottiglia e 3) garantiscano la scalabilità, tra gli altri motivi.

Oltre ai noti strumenti Linux nativi utilizzati per controllare l'utilizzo del disco, della memoria e della CPU, per citare alcuni esempi, Red Hat Enterprise Linux 7 fornisce due set di strumenti aggiuntivi per migliorare i dati che è possibile raccogliere per i report: sysstat e dstat.

In questo articolo li descriveremo entrambi, ma iniziamo prima esaminando l’utilizzo degli strumenti classici.

Strumenti Linux nativi

Con df sarai in grado di segnalare l'utilizzo dello spazio su disco e degli inode da parte del file system. Devi monitorarli entrambi perché la mancanza di spazio ti impedirà di salvare ulteriori file (e potrebbe anche causare il crash del sistema), proprio come rimanere senza inode significa che non puoi collegare ulteriori file con i loro dati corrispondenti strutture, producendo così lo stesso effetto: non sarai in grado di salvare quei file su disco.


df -h 		[Display output in human-readable form]
df -h --total         [Produce a grand total]


df -i 		[Show inode count by filesystem]
df -i --total 	[Produce a grand total]

Con du puoi stimare l'utilizzo dello spazio file per file, directory o file system.

Ad esempio, vediamo quanto spazio viene utilizzato dalla directory /home, che include tutti i file personali dell'utente. Il primo comando restituirà lo spazio complessivo attualmente utilizzato dall'intera directory /home, mentre il secondo mostrerà anche un elenco disaggregato per sottodirectory:


du -sch /home
du -sch /home/*

Da non perdere:

  1. 12 esempi di comandi "df" per verificare l'utilizzo dello spazio su disco di Linux
  2. 10 esempi di comandi "du" per trovare l'utilizzo del disco di file/directory

Un'altra utility che non può mancare nel tuo set di strumenti è vmstat. Ti consentirà di vedere a colpo d'occhio informazioni su processi, utilizzo della CPU e della memoria, attività del disco e altro ancora.

Se eseguito senza argomenti, vmstat restituirà le medie dall'ultimo riavvio. Sebbene sia possibile utilizzare questa forma di comando di tanto in tanto, sarà più utile acquisire una certa quantità di campioni di utilizzo del sistema, uno dopo l'altro, con una separazione temporale definita tra i campioni.

Per esempio,


vmstat 5 10

restituirà 10 campioni prelevati ogni 5 secondi:

Come puoi vedere nell'immagine sopra, l'output di vmstat è diviso per colonne: procs (processi), memory, swap, io, sistema e cpu. Il significato di ciascun campo può essere trovato nelle sezioni DESCRIZIONE CAMPO nella pagina man di vmstat.

Dove può tornare utile vmstat? Esaminiamo il comportamento del sistema prima e durante un yum update:


vmstat -a 1 5

Tieni presente che man mano che i file vengono modificati sul disco, la quantità di memoria attiva aumenta, così come il numero di blocchi scritti sul disco (bo) e il tempo di CPU impiegato. dedicato ai processi utente (noi).

Oppure durante il processo di salvataggio di un file di grandi dimensioni direttamente su disco (causato da dsync):


vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

In questo caso possiamo vedere un numero ancora maggiore di blocchi scritti sul disco (bo), come era prevedibile, ma anche un aumento del tempo di attesa della CPU Operazioni di I/O da completare prima dell'elaborazione delle attività (wa).

Da non perdere: Vmstat – Monitoraggio delle prestazioni Linux

Altri strumenti Linux

Come accennato nell'introduzione di questo capitolo, ci sono altri strumenti che è possibile utilizzare per verificare lo stato e l'utilizzo del sistema (non sono forniti solo da Red Hat ma anche da altre principali distribuzioni supportate ufficialmente repository).

Il pacchetto sysstat contiene le seguenti utilità:

  1. sar (raccogliere, segnalare o salvare informazioni sull'attività del sistema).
  2. sadf (visualizza i dati raccolti da sar in più formati).
  3. mpstat (statistiche relative ai processori di report).
  4. iostat (riporta statistiche CPU e statistiche I/O per dispositivi e partizioni).
  5. pidstat (riporta statistiche per le attività Linux).
  6. nfsiostat (riporta statistiche di input/output per NFS).
  7. cifsiostat (riporta statistiche CIFS) e
  8. sa1 (raccoglie e archivia i dati binari nel file di dati giornaliero dell'attività del sistema.
  9. Strumenti sa2 (scrivi un rapporto giornaliero nella directory /var/log/sa).

mentre dstat aggiunge alcune caratteristiche extra alle funzionalità fornite da questi strumenti, insieme a più contatori e flessibilità. Puoi trovare una descrizione generale di ciascuno strumento eseguendo yum info sysstat o yum info dstat, rispettivamente, o controllando le singole pagine man dopo l'installazione.

Per installare entrambi i pacchetti:


yum update && yum install sysstat dstat

Il file di configurazione principale per sysstat è /etc/sysconfig/sysstat. In quel file troverai i seguenti parametri:


How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"

Quando è installato sysstat, due processi cron vengono aggiunti e abilitati in /etc/cron.d/sysstat. Il primo lavoro esegue lo strumento di contabilità delle attività di sistema ogni 10 minuti e memorizza i report in /var/log/sa/saXX dove XX è il valore giorno del mese.

Pertanto, /var/log/sa/sa05 conterrà tutti i rapporti sulle attività del sistema a partire dal 5 del mese. Ciò presuppone che stiamo utilizzando il valore predefinito nella variabile HISTORY nel file di configurazione sopra:


*/10 * * * * root /usr/lib64/sa/sa1 1 1

Il secondo lavoro genera ogni giorno alle 23:53 un riepilogo giornaliero della contabilità del processo e lo archivia nei file /var/log/sa/sarXX, dove XX ha lo stesso significato dell'esempio precedente:


53 23 * * * root /usr/lib64/sa/sa2 -A

Ad esempio, potresti voler generare le statistiche di sistema dalle 9:30 alle 17:30 del 6 del mese in un file .csv file che può essere facilmente visualizzato utilizzando LibreOffice Calc o Microsoft Excel (questo approccio ti consentirà anche di creare tabelle o grafici):


sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

In alternativa, puoi utilizzare il flag -j invece di -d nel comando sadf sopra per visualizzare le statistiche del sistema in JSON formato, che potrebbe essere utile se è necessario utilizzare i dati in un'applicazione Web, ad esempio.

Infine, vediamo cosa ha da offrire dstat. Tieni presente che se eseguito senza argomenti, dstat assume -cdngy per impostazione predefinita (abbreviazione rispettivamente di CPU, disco, rete, pagine di memoria e statistiche di sistema) e ne aggiunge uno linea ogni secondo (l'esecuzione può essere interrotta in qualsiasi momento con Ctrl + C):


dstat

Per generare le statistiche in un file .csv, utilizza il flag –output seguito da un nome di file. Vediamo come appare su LibreOffice Calc:

Ti consiglio vivamente di controllare la pagina man di dstat insieme alla pagina man di sysstat in formato PDF per comodità di lettura. Troverai molte altre opzioni che ti aiuteranno a creare report personalizzati e dettagliati sulle attività del sistema.

Da non perdere: Sysstat – Strumento di monitoraggio delle attività di utilizzo di Linux

Riepilogo

In questa guida abbiamo spiegato come utilizzare sia gli strumenti nativi di Linux che le utilità specifiche fornite con RHEL 7 per produrre report sull'utilizzo del sistema. Prima o poi, arriverai a fare affidamento su questi rapporti come migliori amici.

Probabilmente avrai utilizzato altri strumenti che non abbiamo trattato in questo tutorial. Se è così, sentiti libero di condividerli con il resto della community insieme ad eventuali altri suggerimenti/domande/commenti che potresti avere, utilizzando il modulo sottostante.

Restiamo in attesa della vostra risposta.