Dieser Artikel ist Teil unserer fortlaufenden Artikelserie zur Leistungsüberwachung.
Konzentrieren wir uns in diesem Artikel darauf, wie der Netzwerkverkehr überwacht und für spätere Analysen mit dem Dienstprogramm vnstat protokolliert wird.
vnstat ist ein Befehlszeilendienstprogramm, das den Netzwerkverkehr der Schnittstellen auf Ihren Systemen anzeigt und protokolliert. Dies hängt von den vom Kernel bereitgestellten Netzwerkstatistiken ab. vnstat fügt Ihrem System also keine zusätzliche Last für die Überwachung und Protokollierung des Netzwerkverkehrs hinzu.
1. Installieren Sie vnStat
Installieren Sie vnStat auf Ihrem System aus dem Repository, das für Ihre Linux-Distributionen spezifisch ist.
Verwenden Sie beispielsweise unter Ubuntu apt-get, um es wie unten gezeigt zu installieren.
$ apt-get install vnstat
Wenn Sie es vorziehen, es von der Quelle zu installieren, laden Sie die vnStat-Quelle von hier herunter oder verwenden Sie das wget wie unten gezeigt, um es herunterzuladen und zu installieren.
Bitte beachten Sie, dass Sie auch Mergecap und Tshark verwenden können, um den Netzwerkverkehr zu analysieren.
wget http://humdi.net/vnstat/vnstat-1.11.tar.gz cd vnstat-1.11 make make install
Bitte beachten Sie, dass Sie „./configure“ nicht ausführen müssen, was Sie normalerweise für andere quellenbasierte Installationen tun.
Da vnstat von den vom Kernel bereitgestellten Informationen abhängt, führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Kernel alle Informationen bereitstellt, die vnStat erwartet.
# vnstat --testkernel This test will take about 60 seconds. Everything is ok.
2. Wählen Sie eine zu überwachende Schnittstelle mit vnStat aus
vnStat überwacht keine Schnittstellen, es sei denn, Sie fordern dies ausdrücklich an.
Gehen Sie wie folgt vor, um mit der Überwachung von eth0 zu beginnen. Dies muss nur einmal ausgeführt werden. Wie Sie unten sehen, wird dadurch eine Datenbankdatei eth0 im Verzeichnis /var/lib/vnstat erstellt, die alle Protokollmeldungen des Netzwerkverkehrs für diese spezifische Schnittstelle enthält.
# vnstat -u -i eth0 Error: Unable to read database "/var/lib/vnstat/eth0". Info: -> A new database has been created.
Gehen Sie wie folgt vor, um alle verfügbaren Schnittstellen auf Ihrem System anzuzeigen, die vnStat überwachen kann.
# vnstat --iflist Available interfaces: lo eth0 eth1 sit0
Starten Sie den vnstatd (vnstat-Daemon), der diese Informationen im Hintergrund überwacht und protokolliert.
# vnstatd -d # ps -ef | grep vnst root 14353 1 0 09:12 ? 00:00:00 vnstatd -d root 14355 330 0 09:12 pts/1 00:00:00 grep vnst
Hinweis:Sie können „vnstatd -d“ zu Ihrer /etc/rc.local-Datei hinzufügen, sodass sie bei jedem Neustart Ihres Systems automatisch gestartet wird.
3. Grundlegende vnStat-Nutzung
vnstat ohne Argumente gibt Ihnen eine kurze Zusammenfassung mit den folgenden Informationen:
- Das letzte Mal, als die vnStat-Datenbank, die sich unter /var/lib/vnstat/ befindet, aktualisiert wurde
- Ab dem Beginn der Erfassung der Statistiken für eine bestimmte Schnittstelle
- Die Netzwerkstatistikdaten (übertragene Bytes, empfangene Bytes) für die letzten zwei Monate und die letzten zwei Tage.
# vnstat Database updated: Sat Oct 15 11:54:00 2011 eth0 since 10/01/11 rx: 12.89 MiB tx: 6.94 MiB total: 19.82 MiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.89 MiB | 6.94 MiB | 19.82 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s today 2.03 MiB | 1.07 MiB | 3.10 MiB | 0.59 kbit/s ------------------------+-------------+-------------+--------------- estimated 4 MiB | 2 MiB | 6 MiB |
Hinweis:Wenn Sie vnStat gerade erst installiert haben, wird folgende Meldung angezeigt:„eth0:Noch nicht genügend Daten verfügbar.“ Warten Sie einige Zeit und versuchen Sie den Befehl erneut.
4. vnStat Stunden, Tage, Monate, Wochen Netzwerkdaten
Verwenden Sie „vnstat -h“ (oder) „vnstat –hours“ für eine Aufschlüsselung der Netzwerkstatistikdaten nach Stunde. Dies zeigt auch ein textbasiertes Diagramm an.
Verwenden Sie „vnstat -d“ (oder) „vnstat –days“ für eine Aufschlüsselung der Netzwerkstatistikdaten nach Tag.
# vnstat -d eth0 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 10/13/11 2.06 MiB | 1.10 MiB | 3.16 MiB | 0.60 kbit/s ------------------------+-------------+-------------+--------------- estimated 3 MiB | 1 MiB | 4 MiB |
Verwenden Sie „vnstat -m“ (oder) „vnstat –months“ für eine monatliche Aufschlüsselung der Netzwerkstatistikdaten.
# vnstat --m eth0 / monthly month rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.92 MiB | 6.96 MiB | 19.89 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB |
Ähnlich wie bei Tagen und Monaten verwenden Sie „vnstat -m“ (oder) „vnstat –months“ für die Aufschlüsselung der Netzwerkstatistikdaten nach Woche.
5. Exportieren Sie die Daten nach Excel oder in eine andere DB
Wenn Sie die Netzwerküberwachungsdaten in eine Excel- oder andere Datenbank exportieren möchten, können Sie die Daten in einem durch Semikolon getrennten Textformat speichern, das Sie in Excel oder eine andere Datenbank importieren können.
Die ersten paar Zeilen der Ausgabe von –dumpdb enthalten einige Header-Informationen. Nach den Kopfzeilen hat es 30 Zeilen, die mit „d;“ beginnen. (d;0;1318316406;1;0;386;698;1). Diese Zeile enthält die folgenden Informationen, die durch Semikolon getrennt sind.
- d – steht für Tage
- 0 – Zahl des Tages. 0 bedeutet heute.
- 1318316406 – Daten im Unix-Format
- Gefolgt davon enthält es die gesendeten und empfangenen Bytes
$ vnstat --dumpdb interface;eth0 created;1218562937 updated;1218546895 totalrx;3 totaltx;1 ... ... d;0;1328316406;1;0;386;698;1 d;1;1345262937;2;1;494;289;1
Sie können auch „vnstat –oneline“ verwenden, wodurch die Verkehrszusammenfassung in einer einzelnen Zeile angezeigt wird, in der die Werte durch Semikolons getrennt sind.
$ vnstat --oneline 1;eth0;10/11/11;1.45 MiB;801 KiB;2.23 MiB;0.59 kbit/s;Oct '11;3.93 MiB;2.06 MiB;6.00 MiB;0.05 kbit/s;3.93 MiB;2.06 MiB;6.00 MiB
6. Anzeigen von Live-Netzwerkstatistiken
Verwenden Sie „vnstat -l“ oder „vnstat –live“, um die Live-Netzwerkstatistikinformationen anzuzeigen.
$ vnstat -l Monitoring eth0... (press CTRL-C to stop) rx: 2 kbit/s 5 p/s tx: 2 kbit/s 4 p/s
Nachdem Sie Strg-C gedrückt haben, um ihn zu stoppen, zeigt vnstat eine Zusammenfassung für den Zeitraum an, in dem die Live-Überwachung ausgeführt wurde.
7. Ändern Sie das Standard-vnstat-Ausgabeformat
Verwenden Sie „vnstat -s“ oder „vnstat –short“, um eine kurze Zusammenfassung der Netzwerkstatistiken anzuzeigen. Dazu gehören Statistiken für heute, gestern und für den laufenden Monat.
$ vnstat -s (--short) rx / tx / total / estimated eth0: Oct '11 3.93 MiB / 2.06 MiB / 6.00 MiB / 13.00 MiB yesterday 2.48 MiB / 1.28 MiB / 3.76 MiB today 1.45 MiB / 801 KiB / 2.23 MiB / --
Sie können auch „vnstat –style 0“ verwenden, was eine schmalere Spaltenausgabe ergibt, die einfacher zu lesen ist als die standardmäßige breitere Spaltenausgabe.
$ vnstat --style 0
Im Folgenden sind die verfügbaren Stilnummern aufgeführt:
- 0 – Schmaler Ausgang
- 1 – Balkenspalte aktivieren
- 2 – Balkenspalte aktivieren und durchschnittliche Verkehrsrate in der Zusammenfassung anzeigen
- 3 – Zeigt die durchschnittliche Verkehrsrate in allen Ausgaben an
- 4 – in Kombination mit dem Live-Modus (vnstat -l) die Terminal-Steuerzeichen deaktivieren
8. Top 10 Traffic-Tage anzeigen
Verwenden Sie „vnstat -t“ oder „vnstat –top10“, um die Top-10-Traffic-Tage aller Zeiten anzuzeigen.
$ vnstat --top10 eth0 / top 10 # day rx | tx | total | avg. rate -----------------------------+-------------+-------------+--------------- 1 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 2 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 3 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s .... -----------------------------+-------------+-------------+---------------
Frühere Artikel in der Serie zur Überwachung und Optimierung der Linux-Leistung:
- Einführung in die Linux-Leistungsüberwachung und -optimierung
- 15 praktische Beispiele für Top-Befehle unter Linux
- 7 praktische Beispiele für PS-Befehle zur Prozessüberwachung
- 10 nützliche Sar (Sysstat)-Beispiele für die UNIX-/Linux-Leistungsüberwachung
- 10 iozone-Beispiele für die Messung der Festplatten-E/A-Leistung unter Linux
- 24 iostat-, vmstat- und mpstat-Beispiele für die Linux-Leistungsüberwachung