Nell'era del cloud computing, le macchine virtuali (VM) sono diventate molto comuni, mentre l'uso delle macchine fisiche ha iniziato a diminuire gradualmente. In questo post, presenteremo gli strumenti ‘vnStat’ e ‘iftop,’ che possiamo utilizzare per monitorare il consumo di dati in una VM.
Per prima cosa, sto creando una macchina con le seguenti risorse:
CPU da 20 GHz
16 GB di RAM
SSD da 20 GB
Sto montando il disco con l'immagine di Ubuntu 18.04 disponibile nella libreria di CloudSigma.
Ubuntu 18.04: 64 bit preinstallato con driver VirtIO, superuser, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init e gli ultimi aggiornamenti fino al 2018-09-30.
Successivamente, aggiorno tutti i repository e i pacchetti esistenti sulla macchina.
|
1 2 |
sudo apt update sudo apt upgrade |
Ora che il nostro sistema è aggiornato, passerò ai nostri strumenti, ‘vnStat’ e ‘iftop’.
VNSTAT
Secondo humdi, vnStat è un monitor del traffico di rete basato su console per Linux e BSD che tiene un registro del traffico di rete per le interfacce selezionate. Utilizza le statistiche dell'interfaccia di rete fornite dal kernel come fonte di informazioni. Ciò significa che vnStat non eseguirà effettivamente lo sniffing del traffico e garantisce anche un uso leggero delle risorse di sistema.
Alcune delle caratteristiche di vnStat sono:
- Anche se il sistema si riavvia, i dati persistono comunque.
- Può monitorare più interfacce contemporaneamente.
- Ci sono diverse opzioni di output, ad esempio, per giorno, per settimana, ecc.
- Le policy di conservazione dei dati possono essere configurate dall'utente.
- I mesi possono essere configurati in base al ciclo di fatturazione.
- Lo strumento stesso è molto leggero e l'uso delle risorse è minimo.
- L'utilizzo della CPU sarà lo stesso indipendentemente dal traffico.
Installazione
Usa il seguente comando per installare vnStat:
|
1 |
sudo apt install vnstat |
Dovrebbe rilevare automaticamente l'interfaccia di rete. Nel caso in cui non lo faccia, posso controllare l'interfaccia con il comando:
|
1 |
ip addr |
Nel mio caso posso vedere due interfacce:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
Posso ignorare l'interfaccia di loopback. L'interfaccia che voglio monitorare è ‘ens3’. Posso aggiornare questo in vnStat usando il comando:
|
1 |
sudo vnstat -u -i ens3 |
Guida all'uso
La guida all'uso può essere visualizzata usando il comando: vnStat –help
L'utilizzo sarà descritto in questo modo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 di Teemu Toivola <tst at iki dot fi> -q, --interroga interroga database -h, --ore mostra ore -d, --giorni mostra giorni -m, --mesi mostra mesi -w, --settimane mostra settimane -t, --top10 mostra i migliori 10 giorni -s, --short usa breve output -u, --update aggiorna database -i, --iface seleziona interfaccia (predefinita: ens3) -?, --help breve guida -v, --version mostra versione -tr, --traffic calcola traffico -ru, --rateunit scambia l'unità di velocità configurata -l, --live mostra la velocità di trasferimento in tempo reale Vedi anche "--longhelp" per l'elenco completo delle opzioni e "man vnstat". |
Con l'aiuto di questi comandi, possiamo ottenere le metriche sull'uso dei dati.
Per monitorarlo in modo semplice e intuitivo, possiamo installare la dashboard di vnStat. Di seguito sono riportati i passaggi per installare la dashboard:
Installa le seguenti dipendenze richieste:
|
1 |
sudo apt install apache2 php wget unzip -y |
Dopo l'installazione delle dipendenze richieste, recupereremo la dashboard dal repository GitHub, la decomprimeremo e la posizioneremo nella directory del nostro server web.
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
Successivamente, dobbiamo modificare la configurazione.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Le seguenti righe richiedono una modifica. Sto contrassegnando le modifiche richieste in grassetto.
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "Interfaccia di test"; } |
Posso nominare l'interfaccia per renderla più facile da monitorare. È possibile avere più interfacce da monitorare. Possiamo aggiungerle qui.
Dopo aver apportato le modifiche, apri <<IP-ADDRESS>>/vnstat
Ora sono in grado di vedere i dati in modo elegante.


IFTOP
iftop ascolta il traffico di rete su un'interfaccia specificata, o sulla prima interfaccia che riesce a trovare che sembri un'interfaccia esterna se non ne viene specificata nessuna. Mostra una tabella dell'utilizzo corrente della larghezza di banda per coppie di host. Dobbiamo eseguire iftop con permessi sufficienti per monitorare tutto il traffico di rete sull'interfaccia.
Installazione
Possiamo installare Iftop usando il seguente comando:
|
1 |
sudo apt install iftop |
Guida all'uso
La guida all'uso può essere visualizzata usando il comando: iftop -h
L'utilizzo verrà descritto in questo modo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: mostra larghezza di banda utilizzo su un' interfaccia per host Sinossi: iftop -h | [-npblNBP] [-i interfaccia] [-f filtro codice] [-F rete/maschera] [-G rete6/maschera6] -h mostra questo messaggio -n non eseguire la risoluzione dei nomi host -N nont convertire i numeri di porta in servizi -p esegui in modalità promiscua (mostra il traffico tra altri host sullo stesso segmento di rete) -b non't mostrare un grafico a barre del traffico -B Mostra la larghezza di banda in byte -i interfaccia ascolta sull' interfaccia specificata -f codice filtro usa il codice di filtro per selezionare i pacchetti da conteggiare (predefinito: nessuno, ma solo i pacchetti IP vengono conteggiati) -F rete/maschera mostra i flussi di traffico in/ entrata/uscita dalla rete IPv4network -G rete6/maschera6 mostra i flussi di traffico in/ entrata/uscita dalla rete IPv6network -l mostra e conteggia il traffico- IPv6 link-localtraffic (predefinito: disattivato) -P mostra le porte oltre agli host hosts -m limite imposta il limite superiore per la scala di bandascale -c file config specifica un file di configurazione alternativofile -t usa l'interfaccia testuale senza ncurses Criteri di ordinamento: -o 2s Ordina per la media del traffico (a 2s della prima colonna) -o 10s Ordina per la media del traffico (a 10s della seconda colonna) [predefinito] -o 40s Ordina per la media del traffico (a 40s della terza colonna) -o sorgente Ordina per indirizzo sorgente -o destinazione Ordina per indirizzo di destinazione Le seguenti opzioni sono disponibili solo in combinazione con -t -s num stampa un singolo output di testo dopo num secondi, quindi esci -L num numero di righe da stampare iftop, versione 1.0pre4 copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> e collaboratori |
Richiede i permessi di root per funzionare. Sto semplicemente usando sudo poiché il mio utente cloudsigma è un utente sudoer. Posso anche usare il comando ‘sudo su’ e poi eseguire tutti i comandi come utente root.
Il seguente comando mostrerà tutte le connessioni sull'interfaccia ‘ens3’ e le transazioni di dati:
|
1 2 |
sudo su iftop |
Un modo più semplice se il requisito è catturare il traffico dati per un determinato periodo di tempo:
|
1 |
iftop -t -s 30 |
Il comando sopra riassumerà le transazioni del traffico dati per i successivi 30 secondi e, al termine del tempo, fornirà una tabella con l'elenco di tutti i consumi di dati e le velocità di trasferimento.
Sebbene iftop fornisca velocità di trasferimento in tempo reale, non memorizza i dati né dispone di una dashboard per visualizzare e comprendere intuitivamente i pattern. Pertanto, se si desidera visualizzare le velocità di trasferimento dati in tempo reale, consigliamo iftop. Per il monitoraggio del traffico dati su un periodo più lungo, consigliamo vnStat.
Speriamo che tu possa usare questa guida a tuo vantaggio e applicare le nozioni di base su come utilizzare vnStat e iftop per monitorare il consumo di dati all'interno di una VM.
Commenti
Ancora nessun commento. Scrivi il primo.