Che cos'è il monitoraggio della rete Linux?
Il monitoraggio delle reti Linux si occupa di controllare, analizzare, segnalare e ottimizzare le reti basate su Linux. Poiché questo sistema operativo è lo standard di fatto sulla maggior parte dei server, delle reti aziendali e dei servizi cloud, il monitoraggio della rete Linux è un'area importante su cui ogni amministratore di rete deve concentrarsi.
Il monitoraggio della rete per Linux non è molto diverso da quello di qualsiasi altro sistema operativo. Le metriche che vengono raccolte sono le stesse, ma i metodi per raccoglierle sono diversi. Come di consueto per i sistemi Linux, sono disponibili gratuitamente un buon numero di applicazioni CLI che consentono di svolgere alcune attività di monitoraggio della rete. Si tratta di strumenti di base, che non possono sostituire un software di monitoraggio di rete completo che supporta un numero infinito di dispositivi, controlli e sistemi operativi.
La maggior parte di questi piccoli strumenti di rete Linux servono come base per molti altri più grandi e sono adatti per controlli rapidi o per l'automazione di compiti di monitoraggio specifici in assenza di una soluzione di monitoraggio più completa. Soprattutto nelle reti di piccole dimensioni o come primo passo nella risoluzione dei problemi, gli strumenti di monitoraggio Linux di base possono fornire le prime informazioni.
Il monitoraggio delle reti Linux è quindi costituito sia da applicazioni di base (per lo più basate su CLI) sia da sistemi di monitoraggio della rete e del traffico di rete più grandi, piuttosto complessi e avanzati.
Come monitorare il traffico di rete sugli host Linux?
Per monitorare il traffico di rete su Linux, ci sono alcune strade possibili da percorrere. La prima opzione, quella per cui opta la stragrande maggioranza degli amministratori di rete, è uno strumento di monitoraggio della rete pienamente capace. Questi strumenti sono avanzati e offrono una grande scelta di opzioni di monitoraggio e gestione per gli host Linux. La maggior parte di essi include la possibilità di monitorare tutto il traffico su un dispositivo, spesso in tempo reale. Questa è di gran lunga l'opzione più comune e completa.
Un'altra via per il monitoraggio del traffico di rete su Linux è un packet sniffer. Si tratta di una soluzione completa in quanto cattura tutti i pacchetti, ma richiede tempo e risorse e non è l'opzione più facile da usare.
In terzo luogo, una via più semplice, anche se limitata, è l'uso del firewall di Linux per tracciare il traffico su base individuale. iptables offre una serie di parametri -nvL
che mostrano le statistiche sul traffico per ogni regola. Insieme a iptables -L
per mostrare le regole correnti, è una visione abbastanza sufficiente del traffico di rete su un singolo host.
Strumenti di base per il monitoraggio della rete Linux
Il monitoraggio della rete per Linux significa utilizzare alcuni strumenti di rete disponibili gratuitamente in qualsiasi distribuzione Linux, oppure scegliere una soluzione avanzata per il monitoraggio della rete. Nelle reti aziendali, questa non è una scelta, poiché gli strumenti di base di Linux da soli non sono in grado di soddisfare tutte le esigenze di monitoraggio di una grande infrastruttura di rete. Una soluzione di monitoraggio completa è quindi una necessità, non un'opzione.
Ma le piccole aziende, con pochi computer e topologie di rete abbastanza semplici, possono trovare gli strumenti di monitoraggio di Linux sufficienti, anche se non ottimali. Per ogni amministratore di rete interessato, presentiamo alcuni degli strumenti utili per il monitoraggio della rete in Linux per mostrarne le possibilità.
netstat (ss)
netstat, che nella maggior parte delle distribuzioni recenti è stato sostituito da ss, è uno strumento per visualizzare il contenuto di /proc/net
. Si concentra sulla visualizzazione delle informazioni sulla connessione e sulla tabella di routing su tutte le porte locali. Non è utile per monitorare gli host remoti, ma può fornire una rapida idea del traffico locale ed è considerato uno strumento di base per il monitoraggio del traffico di rete in Linux.
Un esempio molto breve del suo output può essere:
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 127.0.0.1.62132 127.0.0.1.http ESTABLISHED
tcp4 0 0 127.0.0.1.http * LISTEN
tcpdump
tcpdump è uno sniffer, un programma che cattura i pacchetti da un'interfaccia di rete e li interpreta per voi. Comprende tutti i protocolli Internet di base e può essere utilizzato per salvare interi pacchetti da ispezionare in seguito. Pur non essendo raffinato come uno strumento di monitoraggio della rete Linux che fa uso dei protocolli di flusso, fornisce un dump grezzo dei pacchetti su un'interfaccia da analizzare in seguito o in tempo reale.
Wireshark è un'interfaccia grafica per tcpdump.
ping
ping utilizza ICMP per inviare richieste di eco a host remoti per verificare se sono attivi (e predisposti per rispondere). Come strumento di rete per Linux, è del tipo più elementare, in quanto informa solo se un host è raggiungibile e risponde. Tuttavia, per una rapida risoluzione dei problemi, può valere la pena di lanciare un terminale e provare il comando ping per includere ed escludere immediatamente una serie di cause per il problema riscontrato.

traceroute / tracepath
traceroute e tracepath sono due strumenti di rete per Linux che mostrano il percorso verso una destinazione e sono quindi utilizzati per risolvere i problemi di routing su Linux. Tecnicamente, traceroute è il più avanzato e utilizza vari protocolli come TCP, UDP e ICMP per trovare il percorso corretto, mentre tracepath implementa solo UDP. traceroute può manipolare i pacchetti, mentre tracepath si ferma all'invio.
Un esempio di esecuzione di traceroute per trovare il percorso verso www.checkmk.com:
# traceroute www.checkmk.com
traceroute to www.checkmk.com (45.133.11.28), 30 hops max, 60 byte packets
1 kl****** (172.27.224.1) 0.546 ms 0.494 ms 0.661 ms
2 192.168.0.1 (192.168.0.1) 16.455 ms 6.095 ms 20.363 ms
3 * * *
4 89-75-5-97.infra.chello.pl (89.75.5.97) 34.704 ms 26.233 ms 32.822 ms
5 pl-krk07a-ra1-ae-0-1499.aorta.net (84.116.193.21) 66.906 ms 66.897 ms 41.181 ms
6 pl-ktw01a-rc1-ae-7-1400.aorta.net (84.116.193.26) 41.173 ms 35.290 ms 35.265 ms
7 de-fra11b-rc1-ae-24-0.aorta.net (84.116.137.50) 29.571 ms 43.890 ms 32.941 ms
8 de-fra02a-ri1-ae-48-0.aorta.net (84.116.130.62) 32.934 ms 62.005 ms 60.596 ms
9 213.46.179.114.aorta.net (213.46.179.114) 42.129 ms 32.907 ms 42.884 ms
10 ae1-0.bbr01.anx82.fra.de.anexia-it.net (144.208.208.145) 55.262 ms 42.881 ms 42.877 ms
11 ae0-0.bbr02.anx82.fra.de.anexia-it.net (144.208.208.147) 42.097 ms 60.530 ms 42.851 ms
12 fra1.mx204.ae3.anexia.as48314.net (144.208.211.213) 41.432 ms 42.822 ms 29.554 ms
13 fra1.cc.as48314.net (194.45.196.22) 43.541 ms 54.044 ms 57.596 ms
dig / nslookup
dig e nslookup sono due semplici strumenti di rete per Linux usati per interrogare le informazioni relative al DNS, come i record DNS di un server, l'indirizzo IP, i server DNS usati per risolvere il suo dominio e altro ancora. Sono abbastanza simili e mostrano solo informazioni leggermente diverse.
Ad esempio, l'output di dig è simile a questo:
# dig www.checkmk.com
; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> www.checkmk.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43707
;; flags: qr rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;www.checkmk.com. IN A
;; ANSWER SECTION:
www.checkmk.com. 0 IN A 45.133.11.28
;; Query time: 0 msec
;; SERVER: 172.27.224.1#53(172.27.224.1) (UDP)
;; WHEN: Thu Dec 15 10:49:02 CET 2022
;; MSG SIZE rcvd: 64
ifconfig / iwconfig
Uno strumento con maggiori capacità di gestione è ifconfig. Viene utilizzato in Linux per configurare le interfacce di rete, visualizzarne la configurazione corrente e attivarle o disattivarle a seconda delle necessità. Per le connessioni cablate, ifconfig è quello da utilizzare, mentre iwconfig si usa per configurare le interfacce wireless.
ip
Per quanto riguarda gli strumenti di rete di Linux, ip è probabilmente il coltellino svizzero del gruppo. Mostra e manipola percorsi di routing, dispositivi, politiche e tunnel. Può attivare o disattivare le interfacce, impostarne gli indirizzi IP e il percorso predefinito e molto altro ancora. Come strumento di monitoraggio della rete per Linux, ha una potenza limitata ed è più utile come aiuto per la risoluzione dei problemi.
lsof
lsof non è il primo comando che viene in mente quando si pensa agli strumenti di monitoraggio della rete Linux. Dopo tutto, il suo nome è l'acronimo di "list open files". Come può aiutare gli amministratori che cercano di monitorare le reti?
Perché tutto in Linux, come in Unix, è un file, comprese le connessioni di rete. lsof può essere usato per mostrare l'attività di rete, ad esempio:
lsof -nP -i
Questo mostrerà tutte le connessioni. Se si desidera visualizzare solo le connessioni stabilite, isof può essere eseguito con le seguenti opzioni:
lsof -nP -iTCP -sTCP:ESTABLISHED
lsof è piuttosto limitato a questi compiti o ad altri simili, ma per visualizzare l'attività di rete è un comando abbastanza semplice che può aiutare a risolvere i problemi della rete Linux.
iftop
Mentre il noto top mostra i processi locali di un sistema Linux, iftop fa lo stesso ma per l'attività di rete. Eseguendolo senza argomenti si apre un'interfaccia a riga di comando molto simile al comando top. In questa interfaccia si possono vedere le connessioni attive, i loro indirizzi o domini di origine e di destinazione e la quantità di larghezza di banda utilizzata da ciascuna di esse, con un totale complessivo in basso. iftop è quindi utile per calcolare quanta larghezza di banda viene utilizzata, ad esempio se si dispone di una connessione a consumo e si vuole limitare l'utilizzo della rete.
Ma iftop può anche servire come semplice utility per mostrare l'attività di rete di Linux, indipendentemente dall'interesse per la larghezza di banda effettiva.

iptraf
Versione più ricca di funzionalità di iftop, iptraf ha un'interfaccia simile. Le connessioni attive sono mostrate con i loro indirizzi IP di destinazione, accanto ai numeri e alle dimensioni dei pacchetti. iptraf è anche uno strumento di cattura dei pacchetti e le statistiche in tempo reale dei pacchetti sono mostrate nella parte inferiore del programma. iptraf può anche mostrare un riepilogo delle porte aperte attuali, che è abbastanza utile per risolvere le disfunzioni del firewall o notare le intrusioni. In definitiva, un buon strumento per mostrare l'attività di rete su Linux.

Perché utilizzare uno strumento avanzato di monitoraggio della rete per Linux?
Il monitoraggio della rete per Linux può essere effettuato in pochi istanti con gli strumenti di base forniti da Linux. Per una rapida risoluzione dei problemi o per la semplice automazione di alcuni controlli tramite script, questi strumenti sono sufficienti. Inoltre, hanno il vantaggio di essere disponibili praticamente su qualsiasi distribuzione Linux, poiché spesso sono già preinstallati.
Ma il monitoraggio della rete richiede molte più funzioni e un controllo migliore. Per monitorare comodamente il traffico di rete su Linux, ad esempio, è necessario qualcosa di più di un semplice sniffer di pacchetti, come tcpdump. Il monitoraggio del traffico di rete su Linux è un'area piuttosto difficile da coprire con i soli strumenti semplicistici di cui abbiamo parlato in precedenza. Funzionalità come il reporting, gli avvisi e il monitoraggio dei flussi sono impossibili da ottenere con gli strumenti di base. Questa carenza ha portato allo sviluppo di una serie di strumenti di monitoraggio avanzati che vengono utilizzati dalle aziende di molti settori per monitorare la loro infrastruttura basata su Linux.
Gli strumenti avanzati di monitoraggio della rete per Linux esistono per i casi d'uso avanzati. Oltre a fornire un'ampia gamma di funzioni sofisticate, che supportano il monitoraggio tramite protocolli specifici come SNMP, sono dotati di un'interfaccia molto più semplice da usare e, soprattutto, da leggere.
Gli strumenti avanzati sono in grado di monitorare facilmente il traffico, ad esempio tramite il supporto di protocolli basati sul flusso, e di avvisare l'utente ogni volta che un parametro supera o scende al di sotto di una soglia. Questo è qualcosa che si può ottenere solo con un ampio scripting con gli strumenti Linux di base, e anche in questo caso non con la granularità richiesta dalle grandi reti. Inoltre, l'installazione costerebbe molte ore di lavoro. Per la maggior parte delle aziende, questo non è sufficiente per le loro esigenze, quindi un software di monitoraggio della rete adeguato come Checkmk è la soluzione giusta.
Gli unici svantaggi relativi degli strumenti avanzati di monitoraggio della rete per Linux sono la necessità di essere implementati e l'utilizzo di risorse più elevato rispetto agli strumenti CLI più semplici. Il primo è trascurabile, dal momento che la maggior parte di essi viene fornita con il supporto completo per le principali distribuzioni Linux e sono preconfezionati; il secondo vale la pena per la pletora di funzioni offerte, la facilità d'uso e la robustezza che li accompagnano.
Inoltre, non è nemmeno una questione di costi. Checkmk Raw è gratuito. Le edizioni commerciali hanno un costo, ma con il vantaggio dell'assistenza e di una serie più ampia di funzioni e servizi supportati. È possibile provare Checkmk Trial gratuitamente per 30 giorni. Il monitoraggio della rete per Linux non deve essere necessariamente costoso.
FAQ
Per il monitoraggio della larghezza di banda su Linux, esistono alcuni strumenti specifici. Non necessariamente i più potenti, ma probabilmente i più noti sono NetHogs e IPTraf.
Ci sono alcuni modi per controllare la velocità della rete su Linux. Senza installare strumenti specifici, il più rapido è usare ethtool as:
sudo ethtool eth0 | grep Speed
Questo però mostrerà solo la velocità nominale. Per la velocità effettiva della rete, uno strumento più preciso è speedtest-cli
un'applicazione Python installabile tramite pip con pip install speedtest-cli
.
Lo strumento più semplice per controllare l'utilizzo della rete su Linux è NetHogs. Una volta lanciato, aprirà una console che mostra in tempo reale l'utilizzo della rete di ogni processo sul sistema.
Un'alternativa più completa è IPTraf, con l'opzione "Monitoraggio del traffico IP".