In der Generation des Cloud-Computings sind virtuelle Maschinen (VMs) sehr verbreitet geworden, während die Nutzung physischer Maschinen allmählich abnimmt. In diesem Beitrag stellen wir die Tools ‘vnStat’ und ‘iftop’ vor, mit denen wir den Datenverbrauch in einer VM überwachen können.
Zuerst erstelle ich eine Maschine mit den folgenden Ressourcen:
20 GHz CPU
16 GB RAM
20 GB SSD
Ich mounte die Festplatte mit dem Ubuntu 18.04-Image, das in der Bibliothek von CloudSigma’s verfügbar ist.
Ubuntu 18.04: Vorinstalliertes 64-Bit mit VirtIO-Treibern, Superuser, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init und den neuesten Updates bis zum 30.09.2018.
Als Nächstes aktualisiere ich alle vorhandenen Repositories und Pakete auf der Maschine.
|
1 2 |
sudo apt update sudo apt upgrade |
Da unser System nun auf dem neuesten Stand ist, fahre ich mit unseren Tools ‘vnStat’ und ‘iftop’ fort.
VNSTAT
Laut humdi, ist vnStat ein konsolenbasierter Netzwerkverkehrs-Monitor für Linux und BSD, der ein Protokoll des Netzwerkverkehrs für die ausgewählten Schnittstellen führt. Er nutzt die vom Kernel bereitgestellten Statistiken der Netzwerkschnittstellen als Informationsquelle. Dies bedeutet, dass vnStat den Datenverkehr nicht tatsächlich mitschnüffelt (snifft), was zudem eine geringe Auslastung der Systemressourcen gewährleistet.
Einige der Funktionen von vnStat sind:
- Selbst wenn das System neu startet, bleiben die Daten erhalten.
- Es kann mehrere Schnittstellen gleichzeitig überwachen.
- Es gibt verschiedene Ausgabeoptionen, zum Beispiel nach Tagen, Wochen usw.
- Richtlinien zur Datenaufbewahrung können vom Benutzer konfiguriert werden.
- Monate können entsprechend dem Abrechnungszyklus konfiguriert werden.
- Das Tool selbst ist sehr leichtgewichtig und die Ressourcennutzung ist minimal.
- Die CPU-Auslastung bleibt unabhängig vom Datenverkehr gleich.
Installation
Verwenden Sie den folgenden Befehl, um vnStat zu installieren:
|
1 |
sudo apt install vnstat |
Es sollte die Netzwerkschnittstelle automatisch erkennen. Falls nicht, kann ich die Schnittstelle mit folgendem Befehl überprüfen:
|
1 |
ip addr |
In meinem Fall kann ich zwei Schnittstellen sehen:
|
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 |
Ich kann die Loopback-Schnittstelle ignorieren. Die Schnittstelle, die ich überwachen möchte, ist ‘ens3’. Ich kann dies in vnStat mit folgendem Befehl aktualisieren:
|
1 |
sudo vnstat -u -i ens3 |
Bedienungsanleitung
Die Bedienungsanleitung kann mit folgendem Befehl angezeigt werden: vnStat –help
Die Nutzung wird wie folgt beschrieben:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 von Teemu Toivola <tst at iki dot fi> -q, --query frage Datenbank ab -h, --hours zeige Stunden -d, --days zeige Tage -m, --months zeige Monate -w, --weeks zeige Wochen -t, --top10 zeige Top- 10 Tage -s, --short nutze kurze Ausgabe -u, --update aktualisiere Datenbank -i, --iface wähle Schnittstelle (Standard: ens3) -?, --help Kurze Hilfe -v, --version zeige Version -tr, --traffic berechne Datenverkehr -ru, --rateunit wechsle konfigurierte Rateneinheit -l, --live zeige Übertragungsrate in Echtzeit Siehe auch "--longhelp" für vollständige Optionsliste und "man vnstat". |
Mit Hilfe dieser Befehle können wir die Metriken der Datennutzung abrufen.
Für eine einfache und intuitive Überwachung können wir das vnStat-Dashboard installieren. Im Folgenden sind die Schritte zur Installation des Dashboards aufgeführt:
Installieren Sie die folgenden erforderlichen Abhängigkeiten:
|
1 |
sudo apt install apache2 php wget unzip -y |
Nach der Installation der erforderlichen Abhängigkeiten rufen wir das Dashboard aus dem GitHub-Repository ab, entpacken es und legen es in unserem Webserver-Verzeichnis ab.
|
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/ |
Als Nächstes müssen wir die Konfiguration bearbeiten.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Die folgenden Zeilen müssten geändert werden. Ich markiere die erforderlichen Änderungen fett.
|
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> = "Test-Schnittstelle"; } |
Ich kann die Schnittstelle benennen, um die Überwachung zu erleichtern. Man kann mehrere Schnittstellen überwachen. Diese können wir hier hinzufügen.
Nachdem Sie die Änderungen vorgenommen haben, öffnen Sie <<IP-ADDRESS>>/vnstat
Ich kann die Daten jetzt auf elegante Weise sehen.


IFTOP
iftop lauscht auf den Netzwerkverkehr an einer benannten Schnittstelle oder an der ersten Schnittstelle, die es finden kann und die wie eine externe Schnittstelle aussieht, falls keine angegeben ist. Es zeigt eine Tabelle der aktuellen Bandbreitennutzung nach Host-Paaren an. Wir müssen iftop mit ausreichenden Berechtigungen ausführen, um den gesamten Netzwerkverkehr auf der Schnittstelle zu überwachen.
Installation
Wir können Iftop mit dem folgenden Befehl installieren:
|
1 |
sudo apt install iftop |
Bedienungsanleitung
Die Bedienungsanleitung kann mit dem Befehl angezeigt werden: iftop -h
Die Verwendung wird wie folgt beschrieben:
|
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: anzeigen Bandbreite Nutzung auf einer Schnittstelle nach Host Synopsis: iftop -h | [-npblNBP] [-i Schnittstelle] [-f Filter code] [-F Netz/Maske] [-G Netz6/Maske6] -h anzeigen diese Meldung -n keine Hostnamen-Abfragen durchführen -N Portnummern nicht in Dienste umwandelnto services -p ausführen im Promiscuous-Modus (zeige Verkehr zwischen anderen Hosts im selben Netzwerksegment an) -b kein't Balkendiagramm des Verkehrs anzeigenof traffic -B Bandbreite in Bytes anzeigen -i Schnittstelle auf benannter Schnittstelle abhören -f Filter-code Filtercode verwenden, um zu zählende Pakete auszuwählen count (Standard: keine, aber nur IP-Pakete werden gezählt) -F Netz/maske Verkehrsflüsse in und aus /IPv4-Netzwerk anzeigenIPv4 network -G Netz6/maske6 Verkehrsflüsse in und aus /IPv6-Netzwerk anzeigenIPv6 network -l Link-Local-IPv6-Verkehr anzeigen und zählen-local IPv6 traffic (Standard: aus) -P sowohl Ports als auch Hosts anzeigen -m limit setzt die Obergrenze für die Bandbreitenskalierungbandwidth scale -c Konfigurations-datei gibt eine alternative Konfigurationsdatei an -t Textoberfläche ohne ncurses verwendenncurses Sortier-reihenfolge: -o 2s Nach erster Spalte sortieren ((2s- Verkehrs-durchschnitt)) -o 10s Nach zweiter Spalte sortieren ((10s- Verkehrs-durchschnitt)) [Standard] -o 40s Nach dritter Spalte sortieren ((40s- Verkehrs-durchschnitt)) -o source Nach Quell-adresse sortieren -o destination Nach Ziel-adresse sortieren Die folgenden Optionen sind nur in Kombination mit t -verfügbar -s num gibt eine einzelne Textausgabe nach num Sekunden aus , und beendet -L num Anzahl der auszugebenden Zeilen print iftop, Version 1.0pre4 Copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> und Mitwirkende |
Es erfordert Root-Rechte, um zu funktionieren. Ich verwende einfach sudo, da mein Benutzer cloudsigma ein Sudoer-Benutzer ist. Ich kann auch den Befehl ‘sudo su’ verwenden und dann alle Befehle als Root-Benutzer ausführen.
Der folgende Befehl zeigt mir alle Verbindungen auf der Schnittstelle ‘ens3’ und die Datentransaktionen an:
|
1 2 |
sudo su iftop |
Eine einfachere Methode, wenn die Anforderung darin besteht, den Datenverkehr für einen bestimmten Zeitraum zu erfassen:
|
1 |
iftop -t -s 30 |
Der obige Befehl fasst die Datenverkehrstransaktionen für die nächsten 30 Sekunden zusammen und liefert nach Ablauf der Zeit eine Tabelle mit der gesamten Datennutzung und den Übertragungsraten.
Obwohl iftop Live-Übertragungsraten anzeigt, speichert es die Daten nicht und verfügt über kein Dashboard, mit dem wir die Muster intuitiv visualisieren und erkennen können. Wenn wir also Live-Datenübertragungsraten sehen möchten, empfehlen wir iftop. Für die Überwachung des Datenverkehrs über einen längeren Zeitraum empfehlen wir vnStat.
Wir hoffen, dass Sie diese Anleitung zu Ihrem Vorteil nutzen und die Grundlagen zur Nutzung von vnStat und iftop anwenden können, um den Datenverbrauch innerhalb einer VM zu überwachen.
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.