Ricerca nel sito web

20 strumenti da riga di comando indispensabili per monitorare le prestazioni di Linux


Essere un amministratore di sistema o di rete incaricato di monitorare ed eseguire il debug dei problemi di prestazioni del sistema Linux su base giornaliera è una responsabilità estremamente impegnativa.

Richiede una dedizione incrollabile, una profonda conoscenza dei sistemi Linux e un impegno costante per garantire prestazioni e affidabilità ottimali.

Dopo aver dedicato un decennio a lavorare come amministratore Linux nel settore IT, sono arrivato ad apprezzare davvero l'arduo compito di monitorare e garantire il funzionamento continuo dei sistemi.

Alla luce di ciò, abbiamo curato un elenco completo dei 20 principali strumenti di monitoraggio da riga di comando utilizzati di frequente. Questi preziosi strumenti possono rivelarsi indispensabili per ogni amministratore di sistema Linux/Unix, consentendogli di monitorare, diagnosticare e mantenere in modo efficiente l'integrità e le prestazioni dei propri sistemi.

Questi strumenti di monitoraggio sono disponibili in tutte le versioni di Linux e possono essere utili per monitorare e trovare le reali cause dei problemi di prestazioni. L'elenco di comandi mostrato qui è sufficiente per scegliere quello adatto al tuo scenario di monitoraggio.

1. In alto – Monitoraggio del processo Linux

Il comando Linux top è un programma di monitoraggio delle prestazioni utilizzato frequentemente da molti amministratori di sistema per monitorare le prestazioni di Linux ed è disponibile in molti sistemi operativi Linux/Unix-like.

Il comando top viene utilizzato per visualizzare tutti i processi in esecuzione e attivi in tempo reale in un elenco ordinato e lo aggiorna regolarmente. Visualizza utilizzo della CPU, utilizzo della memoria, memoria di swap, dimensione della cache, dimensione del buffer , PID di processo, Utente, Comandi e molto altro.

Mostra anche un elevato utilizzo della memoria e della CPU da parte dei processi in esecuzione. Il comando top è molto utile per gli amministratori di sistema per monitorare e intraprendere azioni correttive quando richiesto. Vediamo il comando top in azione.

top

2. VmStat: statistiche sulla memoria virtuale

Il comando Linux VmStat viene utilizzato per visualizzare le statistiche di memoria virtuale, thread del kernel, dischi, processi di sistema , Blocchi I/O, interruzioni, attività della CPU e molto altro ancora.

Installa VmStat su Linux

Per impostazione predefinita, il comando vmstat non è disponibile sui sistemi Linux, è necessario installare un pacchetto chiamato sysstat (un potente strumento di monitoraggio) che include un programma vmstat.

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

L'utilizzo comune del formato del comando vmstat è.

vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  43008 275212   1152 561208    4   16   100   105   65  113  0  1 96  3  0

3. Lsof: elenca i file aperti

Il comando lsof viene utilizzato in molti sistemi Linux/Unix per visualizzare un elenco di tutti i file e processi aperti. I file aperti inclusi sono file su disco, prese di rete, pipe, dispositivi e processi.

Uno dei motivi principali per utilizzare questo comando è quando un disco non può essere smontato e viene visualizzato l'errore relativo all'utilizzo o all'apertura dei file. Con questo comando puoi facilmente identificare quali file sono in uso.

Il formato più comune per il comando lsof è.

lsof

COMMAND     PID   TID TASKCMD             USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
systemd       1                           root  cwd       DIR                8,2      224        128 /
systemd       1                           root  rtd       DIR                8,2      224        128 /
systemd       1                           root  txt       REG                8,2  1567768  134930842 /usr/lib/systemd/systemd
systemd       1                           root  mem       REG                8,2  2714928  134261052 /usr/lib64/libm-2.28.so
systemd       1                           root  mem       REG                8,2   628592  134910905 /usr/lib64/libudev.so.1.6.11
systemd       1                           root  mem       REG                8,2   969832  134261204 /usr/lib64/libsepol.so.1
systemd       1                           root  mem       REG                8,2  1805368  134275205 /usr/lib64/libunistring.so.2.1.0
systemd       1                           root  mem       REG                8,2   355456  134275293 /usr/lib64/libpcap.so.1.9.0
systemd       1                           root  mem       REG                8,2   145984  134261219 /usr/lib64/libgpg-error.so.0.24.2
systemd       1                           root  mem       REG                8,2    71528  134270542 /usr/lib64/libjson-c.so.4.0.0
systemd       1                           root  mem       REG                8,2   371736  134910992 /usr/lib64/libdevmapper.so.1.02
systemd       1                           root  mem       REG                8,2    26704  134275177 /usr/lib64/libattr.so.1.1.2448
systemd       1                           root  mem       REG                8,2  3058736  134919279 /usr/lib64/libcrypto.so.1.1.1c
...

4. Tcpdump – Analizzatore di pacchetti di rete

Il comando tcpdump è uno dei programmi analizzatore di pacchetti di rete o sniffer di pacchetti da riga di comando più utilizzati per catturare o filtrare Pacchetti >TCP/IP ricevuti o trasferiti su un'interfaccia specifica su una rete.

Fornisce inoltre un'opzione per salvare i pacchetti acquisiti in un file per un'analisi successiva. tcpdump è quasi disponibile in tutte le principali distribuzioni Linux.

tcpdump -i enp0s3

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093
10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options 
10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45
10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33
10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
...

5. Netstat – Statistiche di rete

netstat è uno strumento della riga di comando per monitorare le statistiche dei pacchetti di rete in entrata e in uscita nonché le statistiche dell'interfaccia. È uno strumento molto utile per ogni amministratore di sistema per monitorare le prestazioni della rete e risolvere i problemi relativi alla rete.

netstat -a | more

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN
tcp        0      0 tecmint:domain          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:postgres      0.0.0.0:*               LISTEN
tcp        0      0 tecmint:ssh             192.168.0.124:45611     ESTABLISHED
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:postgres      [::]:*                  LISTEN
udp        0      0 0.0.0.0:mdns            0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp        0      0 tecmint:domain          0.0.0.0:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
udp        0      0 tecmint:bootpc          _gateway:bootps         ESTABLISHED
...

Sebbene al giorno d'oggi netstat sia stato deprecato a favore del comando ss, potresti ancora scoprire netstat nel tuo toolkit di rete.

6. Htop – Monitoraggio del processo Linux

htop è uno strumento di monitoraggio dei processi Linux interattivo e in tempo reale molto avanzato, che è molto simile al top command di Linux ma ha alcune funzionalità avanzate come un user- interfaccia intuitiva per gestire i processi, tasti di scelta rapida, viste verticali e orizzontali dei processi e molto altro.

htop

htop è uno strumento di terze parti, che non viene fornito con i sistemi Linux, è necessario installarlo utilizzando lo strumento di gestione dei pacchetti del sistema.

Per ulteriori informazioni sull'installazione di htop leggi il nostro articolo – Installa Htop (Linux Process Monitoring) in Linux.

7. Iotop: monitora l'I/O del disco Linux

Anche iotop è molto simile al top command e al programma htop, ma ha una funzione di contabilità per monitorare e visualizzare in tempo reale I/O del disco e processi.

Lo strumento iotop è molto utile per trovare il processo esatto e le letture/scritture su disco altamente utilizzate dei processi.

Installa Iotop su Linux

Per impostazione predefinita, il comando iotop non è disponibile sotto Linux ed è necessario installarlo come mostrato.

sudo yum install iotop      [On Older CentOS/RHEL & Fedora]
sudo dnf install iotop      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install iotop  [On Debian/Ubuntu & Mint]
sudo pacman -S iotop        [On Arch Linux]

L'utilizzo comune del formato del comando iotop è.

iotop

8. Iostat – Statistiche di input/output

iostat è un semplice strumento che raccoglierà e mostrerà le statistiche dei dispositivi di archiviazione input e output del sistema. Questo strumento viene spesso utilizzato per tracciare i problemi di prestazioni dei dispositivi di archiviazione, inclusi dispositivi, dischi locali e dischi remoti come NFS .

Installa Iostat su Linux

Per ottenere il comando iostat, devi installare un pacchetto chiamato sysstat come mostrato.

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

L'utilizzo comune del formato del comando iostat è.

iostat

Linux 4.18.0-193.el8.x86_64 (tecmint)   04/05/2021      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.21    0.03    0.59    2.50    0.00   96.67

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.95        83.35        89.63    1782431    1916653

9. IPTraf: monitoraggio LAN IP in tempo reale

IPTraf è un'utilità di monitoraggio della rete in tempo reale (IP LAN) open source basata su console per Linux. Raccoglie una varietà di informazioni come il monitoraggio del traffico IP che passa sulla rete, comprese informazioni sui flag TCP, dettagli ICMP, suddivisioni del traffico TCP/UDP, pacchetti di connessione TCP e conteggi di byte.

Raccoglie inoltre informazioni sulle statistiche generali e dettagliate dell'interfaccia di TCP, UDP, IP, ICMP, non IP, errori di checksum IP, attività dell'interfaccia, ecc.

10. Psacct o Acct: monitora l'attività dell'utente

Gli strumenti psacct o acct sono molto utili per monitorare l'attività di ciascun utente sul sistema. Entrambi i demoni vengono eseguiti in background e tengono sotto controllo l'attività complessiva di ciascun utente sul sistema e anche le risorse che vengono consumate da loro.

Questi strumenti sono molto utili per gli amministratori di sistema per tenere traccia dell'attività di ciascun utente, ad esempio cosa sta facendo, quali comandi ha emesso, quante risorse vengono utilizzate, per quanto tempo sono attivi sul sistema, ecc.

11. Monit – Monitoraggio dei processi e dei servizi Linux

Monit è un'utilità di supervisione dei processi open source e basata sul Web gratuita che monitora e gestisce automaticamente processi di sistema, programmi, file, directory, autorizzazioni, checksum e file system.

Monitora servizi come Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH e così via. Lo stato del sistema può essere visualizzato dalla riga di comando o utilizzando la propria interfaccia web.

Per l'installazione e la configurazione, leggi il nostro articolo – Come installare e configurare il programma Monit (monitoraggio dei processi e dei servizi Linux).

12. NetHogs: monitora la larghezza di banda della rete per processo

NetHogs è un piccolo programma open source (simile al top command di Linux) che tiene traccia di ogni attività di rete del processo sul tuo sistema. Tiene inoltre traccia della larghezza di banda del traffico di rete in tempo reale utilizzata da ciascun programma o applicazione.

nethogs

Per l'installazione e l'utilizzo, leggi il nostro articolo: Monitorare la larghezza di banda della rete Linux utilizzando NetHogs

13. iftop – Monitoraggio della larghezza di banda della rete

iftop è un'altra utility di monitoraggio del sistema open source gratuita basata su terminale che visualizza un elenco frequentemente aggiornato dell'utilizzo della larghezza di banda della rete (host di origine e destinazione) che passa attraverso l'interfaccia di rete sul tuo sistema.

iftop è analogo a "top" nel contesto dell'utilizzo della rete, proprio come "top" fornisce informazioni dettagliate sull'utilizzo della CPU.

iftop appartiene alla stimata famiglia "top" di strumenti di monitoraggio della rete. Progettato specificatamente per osservare un'interfaccia di rete selezionata dall'utente, esegue il rendering dei dati in tempo reale sull'utilizzo corrente della larghezza di banda tra due host specificati.

iftop

Per l'installazione e l'utilizzo, leggi il nostro articolo: iftop – Monitorare l'utilizzo della larghezza di banda della rete

14. Monitorix – Monitoraggio del sistema e della rete

Monitorix è un'utilità leggera e gratuita progettata per eseguire e monitorare il maggior numero possibile di risorse di sistema e di rete nei server Linux/Unix.

Dispone di un server web HTTP integrato che raccoglie regolarmente informazioni sul sistema e sulla rete e le visualizza in grafici. Monitora carico medio e utilizzo del sistema, allocazione della memoria, stato del driver del disco, servizi di sistema, rete porte, statistiche di posta (Sendmail, Postfix, Dovecot, ecc.), MySQL statistiche e molto altro ancora.

È progettato per monitorare le prestazioni complessive del sistema e aiuta a rilevare guasti, colli di bottiglia, attività anomale, ecc.

Per l'installazione e l'utilizzo, leggi il nostro articolo: Monitorix, uno strumento di monitoraggio del sistema e della rete per Linux

15. Arpwatch – Monitoraggio attività Ethernet

Arpwatch è un tipo di programma progettato per monitorare la risoluzione degli indirizzi (modifiche degli indirizzi MAC e IP) di Ethernet traffico di rete su una rete Linux.

Tiene costantemente d'occhio il traffico Ethernet e produce un registro delle modifiche alle coppie di indirizzi IP e MAC insieme a un timestamp su una rete. Dispone inoltre di una funzione per inviare avvisi e-mail agli amministratori quando viene aggiunto o modificato un abbinamento. È molto utile per rilevare lo spoofing ARP su una rete.

Per l'installazione e l'utilizzo, leggi il nostro articolo: Arpwatch per monitorare l'attività Ethernet

16. Suricata – Monitoraggio della sicurezza della rete

Suricata è un sistema di sicurezza di rete, rilevamento delle intrusioni e monitoraggio preventivo open source ad alte prestazioni per Linux, FreeBSD e Windows.

È stato progettato e posseduto da una fondazione senza scopo di lucro OISF (Open Information Security Foundation).

Per l'installazione e l'utilizzo, leggi il nostro articolo: Suricata – Un sistema di rilevamento e prevenzione delle intrusioni di rete

17. VnStat PHP – Monitoraggio della larghezza di banda della rete

VnStat PHP è un'applicazione frontend basata sul web per lo strumento di networking più popolare chiamato "vnstat". VnStat PHP monitora l'utilizzo del traffico di rete in una modalità grafica gradevole.

Visualizza l'utilizzo totale del traffico di rete IN e OUT in formato orario, giornaliero, mensile, report e riepilogo completo.

Per l'installazione e l'utilizzo, leggi il nostro articolo: Monitoraggio dell'utilizzo della larghezza di banda della rete

18. Nagios – Monitoraggio rete/server

Nagios è un potente sistema di monitoraggio open source leader che consente agli amministratori di rete/sistema di identificare e risolvere i problemi relativi ai server prima che incidano sui principali processi aziendali.

Con il sistema Nagios, gli amministratori possono monitorare Linux, Windows, switch, router e stampanti remoti su un'unica finestra. Mostra avvisi critici e indica se qualcosa è andato storto nella tua rete/server, aiutandoti indirettamente ad avviare i processi di riparazione prima che si verifichino.

Per l'installazione, la configurazione e l'utilizzo, leggi il nostro articolo – Installa il sistema di monitoraggio Nagios per monitorare host Linux/Windows remoti

19. Nmon: monitora le prestazioni di Linux

Strumento Nmon (sta per Nigel's Performance Monitor), che viene utilizzato per monitorare tutte le risorse Linux come CPU, memoria, utilizzo del disco, rete, processi principali, NFS, kernel e molto altro. Questo strumento è disponibile in due modalità: modalità online e modalità di acquisizione.

La modalità online viene utilizzata per il monitoraggio in tempo reale e la modalità di acquisizione viene utilizzata per archiviare l'output in formato CSV per l'elaborazione successiva.

Per l'installazione e l'utilizzo, leggi il nostro articolo: Installa lo strumento Nmon (monitoraggio delle prestazioni) in Linux

20. Collectl: strumento di monitoraggio delle prestazioni tutto in uno

Collectl è un'altra utility potente e ricca di funzionalità basata su riga di comando, che può essere utilizzata per raccogliere informazioni sulle risorse del sistema Linux come utilizzo della CPU, memoria, rete, inode, processi, nfs, TCP , prese e molto altro ancora.

Per l'installazione e l'utilizzo, leggi il nostro articolo: Installa lo strumento Collectl (monitoraggio delle prestazioni all-in-one) in Linux

Vorremmo sapere che tipo di programmi di monitoraggio utilizzi per monitorare le prestazioni dei tuoi server Linux. Se abbiamo perso qualche strumento importante che vorresti includere in questo elenco, informaci tramite i commenti e non dimenticare di condividerlo.