In het tijdperk van cloud computing zijn virtuele machines (VM's) heel gewoon geworden, terwijl het gebruik van fysieke machines geleidelijk is gaan afnemen. In dit bericht introduceren we de tools ‘vnStat’ en ‘iftop’, die we kunnen gebruiken om het dataverbruik in een VM te monitoren.
Eerst maak ik een machine aan met de volgende resources:
20 GHz CPU
16 GB RAM
20 GB SSD
Ik koppel de schijf met de Ubuntu 18.04-image die beschikbaar is in CloudSigma’s bibliotheek.
Ubuntu 18.04 : Voorgeïnstalleerde 64-bits met VirtIO-stuurprogramma's, superuser, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init en de nieuwste updates tot 30-09-2018.
Vervolgens update ik alle bestaande repositories en pakketten op de machine.
|
1 2 |
sudo apt update sudo apt upgrade |
Nu ons systeem up-to-date is, ga ik over naar onze tools, ‘vnStat’ en ‘iftop’.
VNSTAT
Volgens humdi, is vnStat een op de console gebaseerde netwerkverkeersmonitor voor Linux en BSD die een logboek bijhoudt van het netwerkverkeer voor de geselecteerde interface(s). Het gebruikt de netwerkinterfacestatistieken die door de kernel worden geleverd als informatiebron. Dit betekent dat vnStat niet daadwerkelijk verkeer zal sniffen en zorgt ook voor een minimaal gebruik van systeembronnen.
Enkele kenmerken van vnStat zijn:
- Zelfs als het systeem opnieuw opstart, blijven de gegevens behouden.
- Het kan meerdere interfaces tegelijkertijd monitoren.
- Er zijn verschillende uitvoeropties, bijvoorbeeld per dag, per week, enz.
- Beleid voor gegevensbewaring kan door de gebruiker worden geconfigureerd.
- Maanden kunnen worden geconfigureerd op basis van de facturatiecyclus.
- De tool zelf is erg licht en het gebruik van systeembronnen is minimaal.
- Het CPU-gebruik blijft hetzelfde, ongeacht het verkeer.
Installatie
Gebruik het volgende commando om vnStat te installeren:
|
1 |
sudo apt install vnstat |
Het zou de netwerkinterface automatisch moeten detecteren. Mocht dat niet het geval zijn, dan kan ik de interface controleren met het commando:
|
1 |
ip addr |
In mijn geval zie ik twee interfaces:
|
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 |
Ik kan de loopback-interface negeren. De interface die ik wil monitoren is ‘ens3’. Ik kan dit in vnStat bijwerken met het commando:
|
1 |
sudo vnstat -u -i ens3 |
Gebruikershandleiding
De gebruikershandleiding kan worden bekeken met het commando: vnStat –help
Het gebruik wordt als volgt beschreven:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 door Teemu Toivola <tst at iki dot fi> -q, --opvragen opvragen database -h, --uren toon uren -d, --dagen toon dagen -m, --maanden toon maanden -w, --weken toon weken -t, --top10 toon top 10 dagen -s, --kort gebruik korte uitvoer -u, --bijwerken bijwerken database -i, --iface selecteer interface (standaard: ens3) -?, --help korte help -v, --versie toon versie -tr, --verkeer bereken verkeer -ru, --snelheidseenheid wissel geconfigureerde snelheidseenheid -l, --live toon overdrachtssnelheid in real time Zie ook "--longhelp" voor volledige optielijst en "man vnstat". |
Met behulp van deze commando's kunnen we de statistieken van het datagebruik ophalen.
Om dit eenvoudig en intuïtief te monitoren, kunnen we het vnStat-dashboard installeren. Hieronder volgen de stappen om het dashboard te installeren:
Installeer de volgende vereiste afhankelijkheden:
|
1 |
sudo apt install apache2 php wget unzip -y |
Na installatie van de vereiste afhankelijkheden halen we het dashboard op uit de GitHub-repository, pakken we het uit en plaatsen we het in onze webservermap.
|
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/ |
Vervolgens moeten we de configuratie bewerken.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
De volgende regels moeten worden gewijzigd. Ik markeer de vereiste wijzigingen in het vet.
|
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> = "Testinterface"; } |
Ik kan de interface een naam geven om het monitoren te vergemakkelijken. Men kan meerdere interfaces hebben om te monitoren. Die kunnen we hier toevoegen.
Nadat je de wijzigingen hebt aangebracht, open <<IP-ADDRESS>>/vnstat
Ik kan de gegevens nu op een elegante manier bekijken.


IFTOP
iftop luistert naar netwerkverkeer op een benoemde interface, of op de eerste interface die het kan vinden die eruitziet als een externe interface als er geen is opgegeven. Het toont een tabel met het huidige bandbreedtegebruik per paar hosts. We moeten iftop uitvoeren met voldoende rechten om al het netwerkverkeer op de interface te monitoren.
Installatie
We kunnen Iftop installeren met het volgende commando:
|
1 |
sudo apt install iftop |
Gebruikershandleiding
De gebruikershandleiding kan worden bekeken met het commando: iftop -h
Het gebruik wordt als volgt beschreven:
|
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: toon bandbreedte gebruik op een interface per host Synopsis: iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6] -h toon dit bericht -n voer geen hostname-lookups uit -N zet poort nummers niet om naar services -p draai in promiscue modus (toon verkeer tussen andere hosts op het zelfde netwerksegment) -b geen't balkgrafiek van het verkeer weergeven -B Toon bandbreedte in bytes -i interface luister op genoemde interface -f filter code gebruik filtercode om te tellen pakketten te selecteren (standaard: geen, maar alleen IP-pakketten worden geteld) -F net/mask toon verkeersstromen in/en uit van IPv4-netwerk -G net6/mask6 toon verkeersstromen in/en uit van IPv6-netwerk -l toon en tel link-local IPv6-verkeer (standaard: uit) -P toon zowel poorten well als hosts -m limiet stelt de bovengrens in voor de bandbreedteschaal -c configbestand specificeert een alternatief configuratiebestand -t gebruik tekstinterface zonder ncurses Sorteervolgordes: -o 2s Sorteer op eerste kolom (2s verkeersgemiddelde) -o 10s Sorteer op tweede kolom (10s verkeersgemiddelde) [standaard] -o 40s Sorteer op derde kolom (40s verkeersgemiddelde) -o bron Sorteer op bronadres -o bestemming Sorteer op bestemmingsadres De volgende opties zijn alleen beschikbaar in combinatie met -t -s getal druk één enkele tekstuitvoer af na getal seconden, en sluit dan af -L getal aantal regels om te printen iftop, versie 1.0pre4 copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> en bijdragers |
Het heeft root-rechten nodig om te werken. Ik gebruik simpelweg sudo omdat mijn gebruiker cloudsigma een sudoer-gebruiker is. Ik kan ook het commando ‘sudo su’ gebruiken en vervolgens alle commando's als root-gebruiker uitvoeren.
Het volgende commando geeft me een weergave van alle verbindingen op de interface ‘ens3’ en de datatransacties:
|
1 2 |
sudo su iftop |
Een eenvoudigere manier als het de bedoeling is om het dataverkeer gedurende een bepaalde periode vast te leggen:
|
1 |
iftop -t -s 30 |
Het bovenstaande commando vat de datatransacties voor de komende 30 seconden samen en geeft na afloop van de tijd een tabel met al het datagebruik en de overdrachtssnelheden.
Hoewel iftop live overdrachtssnelheden geeft, slaat het de gegevens niet op en heeft het geen dashboard waarmee we de patronen intuïtief kunnen visualiseren en bekijken. Daarom raden we iftop aan als we live data-overdrachtssnelheden willen zien. Voor het monitoren van dataverkeer over een langere periode raden we vnStat aan.
We hopen dat u deze handleiding in uw voordeel kunt gebruiken en de basisprincipes van het gebruik van vnStat en iftop kunt toepassen om het dataverbruik binnen een VM te monitoren.
Reacties
Nog geen reacties. Wees de eerste.