Klemmt es mal wieder im lokalen Netzwerk, schreit jeder nach einer schnellen Lösung. Mit einigen kleinen Helfern begeben Sie sich umgehend auf die Suche nach den Bremsern im LAN und machen diese mit ein wenig Geschick und dem richtigen Know-how im Handumdrehen aus.

In einem Beitrag in Ausgabe 06/2013 [1] haben Sie bereits erfahren, welche Tools Sie bei der Realtime-Analyse und verbindungsorientierten Suche unterstützen. Dabei spielen die Programme Iptraf, Ifstat, Tcpstat, Bmon und Pktstat ihre Stärken aus. Legen Sie diese Ergebnisse zugrunde, haben Sie mittels Nethogs [2] und Atop [3] schnell den Prozess gefunden, der den Datenverkehr verursacht.

So gut die Werkzeuge zur Analyse in Echtzeit die Frage beantworten, was aktuell auf dem Linux-System los ist, so wenig eignen sie sich für einen Überblick über längere Zeit. Eine Antwort auf Fragen wie "Wie viel Verkehr haben Clients und Netzwerk-Dienste in der letzten Woche produziert?" oder "Wer hat letzte Nacht um 2 Uhr die Leitung dicht gemacht?" setzt voraus, dass Sie ständig den Datendurchsatz und die Messwerte im Blick behalten.

Programme wie Vnstat [4], Ntop [5], Darkstat [6] und Bandwidthd [7] helfen Ihnen bei diesem Unterfangen sowie beim Aufschlüsseln nach Protokollen und Prozessen. Einige der genannten Werkzeuge bieten zudem eine webbasierte Oberfläche und eignen sich daher ideal für die Installation auf einem Router oder Server. Das gestattet eine belastbare Aussage beim schnellen Blick zwischendurch.

Auf die Schnelle

Geht es lediglich darum, mit einem einzigen Blick auf der Konsole zu sehen, über welche Schnittstellen besonders viel Datenverkehr läuft, bieten sich Netstat [8], Nload [9] und Nicstat [10] an. Während die ersten beiden seit Jahren zu den Standardwerkzeugen unter Linux gehören, ist das dritte eher Nutzern von (Open)Solaris vertraut. Inzwischen stehen auch passende Debian-Pakete für 64-Bit-Systeme bereit.

Nicstat schlüsselt die Messwerte nach Schnittstelle (Listing 1, zweite Spalte) sowie empfangener und gesendeter Datenmenge pro Sekunde (dritte und vierte Spalte), durchschnittlicher Anzahl Pakete pro Sekunde (fünfte und sechste Spalte) sowie Paketgröße (die beiden letzten Spalten) auf.

Listing 1

merkaba:~> nicstat
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat 
19:53:07     eth0    2.39    0.11   11.64    0.88   210.4   127.4  0.02   0.00
19:53:07       lo    0.34    0.34    0.20    0.20  1719.8  1719.8  0.00   0.00
19:53:07    wlan0    0.01    0.00    0.05    0.00   169.7   155.4  0.00   0.00

Die letzten beiden Spalten zeigen den Grad der Nutzung sowie die Saturierung. Listing 1 macht deutlich, dass die meisten Daten über eth0 fließen, die größten Pakete aber über das Loopback-Device lo. Die WLAN-Schnittstelle wlan0 scheint inaktiv.

Unter der Haube

Für den Einsatz des Programms Nethogs brauchen Sie Root-Rechte. Es sammelt zunächst nur Informationen über die Schnittstelle eth0, weitere Optionen geben Sie im Aufruf als Parameter an.

Das Tool zeigt daraufhin eine Liste der Prozesse, die Bandbreite im Netzwerk belegen (Abbildung 1). Es sortiert dabei die Ausgabe absteigend nach Verbrauch oder Last und aktualisiert die Anzeige jede Sekunde. Über die Option -d Wert legen Sie ein anderes Intervall fest, wie -d 5 für das Neuberechnen alle fünf Sekunden.

Abbildung 1: Nethogs im Einsatz – hier mit SSH, Opera samt Audio/Video-Plugin und dem Netzwerkdienst Dropbox.

Die Anzeige von Nethogs umfasst sechs Spalten – die Prozess-ID (PID), den Eigentümer des Prozesses, den Programmaufruf, die verwendete Netzwerkschnittstelle sowie die darüber gesendeten und empfangenen Daten. Über [M] ändern Sie die Anzeige der letzten Spalte in kbit/s oder die Gesamtsumme in Byte, KByte oder MByte.

Mit [R] und [S] sortieren Sie die Ausgabe nach empfangenen (received) beziehungsweise gesendeten (sent) Daten. Den Prozess, der auf der Leitung Amok läuft, identifizieren Sie über die PID und haben so die Möglichkeit, diese im Falle eines Falles gezielt zu beenden oder zu pausieren.

Derzeit analysiert Nethogs nur TCP-Verbindungen. Auf UDP basierende Dienste wie Bittorrent bleiben bislang außen vor [11]. Mögen Sie die Textvariante nicht, steht ein Plugin namens BusyTasks [12] bereit, das sich ins KDE-Plasmoid integriert und Nethogs als Backend nutzt.

Alles in einem

Geht es ans Eingemachte, kommen Sie aber um Atop nicht herum. Neben der Auslastung von CPU, Speicher und Festplatte(n) gibt es die Intensität der Last für jede Schnittstelle in Prozent an. Im Vergleich zum eher schlichten Nethogs liefert es eine Fülle von Informationen zum gesamten System.

Atop benötigt ein zusätzliches Kernel-Modul, das nicht zum Umfang des Standard-Kernels zählt. Während mit früheren Versionen kein Weg am Patchen und Kompilieren eines Kernels vorbeiführte, bietet die Version 2 mit Netatop [13] die Möglichkeit, das Feature einfach über ein Modul zu ergänzen. Die Details dazu finden Sie im Kasten "Atop und Netatop selbst erstellen und einbinden".

Atop und Netatop selbst erstellen und einbinden

Viele Distributionen stellen die neue Atop-Version bislang nicht bereit, sodass nur der Weg bleibt, Atop und Netatop aus dem Quelltext selbst zu bauen. Laden Sie dazu von der Atop-Webseite unter Download Atop und Download Netatop die aktuellen Archive mit dem Quelltext zum Programm sowie das Modul in ein Verzeichnis herunter. Zum Redaktionsschluss waren atop-2.0.2.tar.gz und netatop-0.3.tar.gz aktuell.

Verwenden Sie eine RPM-basierte Distribution, dann laden Sie alternativ das passende Paket für 32- (i586) oder 64-Bit-Systeme (x86_64) von Atop herunter. Dieses gibt es jedoch nur als Quelltext. Da die kompilierte Version von Atop standardmäßig in /usr landet, verträgt sie sich nicht mit einer Version aus einem bereits installierten Atop-Paket. In dem Fall entfernen Sie zunächst das bestehende Paket vom System, kompilieren Atop selbst und schieben es danach an die richtige Stelle.

Atop verwendet seinerseits die Bibliotheken Zlib und Ncurses, die Sie bei DEB-basierten Distributionen in den Paketen zlib1g-dev und libncurses5-dev finden. Für OpenSuse führt eine Suche auf http://software.opensuse.org ein passendes Paket aus dem Server Monitoring-Projekt auf.

Nach dem Entpacken des Atop-Quelltexts kompilieren Sie das Programm mit einem Aufruf von make im ausgepackten Verzeichnis. Nur der letzte Schritt – die Installation des übersetzten Programms mit make install – benötigt Root-Rechte. Die Quellen zu Netatop entpacken Sie auf die gleiche Art und Weise. Für die Kompilation benötigen Sie die Header-Dateien des aktuellen Kernels aus dem Paket linux-headers-Version. Die aktuelle Versionsnummer stellen Sie gegebenenfalls über den Aufruf uname -r fest.

Den Netatop-Quelltext übersetzen Sie wiederum zunächst mit make und installieren das Modul danach via make install als Benutzer root. Als finalen Schritt laden Sie es mittels modprobe netatop. Danach stehen dessen Funktionen in Atop bereit. Benötigen Sie Netatop später nicht mehr, entfernen Sie es über den Aufruf modprobe -r netatop wieder aus dem Kernel.

Nach der erfolgreichen Installation starten Sie Atop und drücken die Taste [N], um zur Netzwerk-Ansicht zu wechseln. In der Spalte NET zeigt das Tool den prozentualen Anteil des jeweiligen Prozesses am Verkehr an, der auf der Gesamtsumme von eingehenden und ausgehenden Daten basiert.

Die Spalten BANDWI (für bandwidth incoming) und BANDWO (für bandwidth outgoing) zeigen die genutzte Bandbreite für eingehenden und ausgehenden Datenverkehr. Das Zuordnen zum jeweiligen Prozess gelingt über die erste und letzte Spalte, die die Prozess-ID und den Programmaufruf enthalten. Die restlichen Spalten schlüsseln die Pakete getrennt nach TCP- und UDP-Paketen auf.

Die beiden Felder TCPSND und TCPRCV zeigen die Anzahl der gesendeten und empfangenen TCP-Pakete, TCPRASZ und TCPSASZ stehen hingegen für deren durchschnittliche Größe. Die Felder für UDP folgen dem gleichen Benennungsschema.

In Abbildung 2 teilen sich der PlaneShift-Client, der Newsreader Akregator und ein apt-get update die Schnittstelle. Der PlaneShift-Client psclient.bin verwendet nur kleine UDP-Pakete, Akregator greift via HTTP-KIO-Modul auf den Privatsphären-Proxy Privoxy zu, und die http-Threads gehören zu Apt-get.

Abbildung 2: Atop schlüsselt auf, wie viel Bandbreite der PlaneShift-Client, der Newsreader Akregator beim Aktualisieren der Feeds sowie ein apt-get update benötigen.

Atop zeigt standardmäßig immer alle Schnittstellen, über die Datenverkehr läuft, sowie alle Prozesse, die solchen verursachen. Mit [S] filtern Sie nach Disks, logischen Laufwerken und Schnittstellen, mit der Taste [P] nach Prozessen. Atop verwendet dabei reguläre Ausdrücke. In Abbildung 2 blendet Atop beispielsweise Platten und logische Laufwerke aus.

Zeitbasierte Übersicht

Für Zugänge oder den eigenen dedizierten Server mit Volumentarif eignen sich Programme, die die übertragene Datenmenge eines Tages, einer Woche oder eines Monats anzeigen und darüber hinaus eine Schätzung zum erwarteten Datenvolumen für ein Zeitfenster liefern.

Zwar bietet auch Atop Berichte für einen Zeitraum, summiert seine Reports jedoch nicht bezogen auf Schnittstellen auf. Daher kommt zunächst das Befehlszeilenprogramm Vnstat ins Spiel. Technisch gesehen läuft es mit den Rechten eines normalen Benutzers. Es hat sich aber eingebürgert, über den mit Root-Rechten versehenen Dienst Vnstatd die Daten in einem kompakten Binärformat in die Datei /var/lib/vnstat/Schnittstelle zu schreiben.

Für jedes zu überwachende Interface legen Sie zunächst mit dem Befehl vnstat -u -i Schnittstelle eine separate Datenbank an. Ein service vnstat start startet den Dienst zum Aufzeichnen. Rufen Sie das Programm ohne Parameter auf, erhalten Sie eine Übersicht (Listing 2).

Listing 2

# vnstat
                   rx      /      tx      /     total    /   estimated 
 eth0:
     Dec '13     3.75 GiB  /  298.87 MiB  /    4.04 GiB  /    7.67 GiB
   yesterday   110.05 MiB  /   12.09 MiB  /  122.14 MiB
       today   134.50 MiB  /    6.67 MiB  /  141.17 MiB  /     188 MiB
 wlan0:
     Dec '13    11.35 MiB  /    1.42 MiB  /   12.77 MiB  /   21.00 MiB
   yesterday        0 KiB  /       0 KiB  /       0 KiB
       today        0 KiB  /       0 KiB  /       0 KiB  /      --

Für jede vorher von Ihnen festgelegte Schnittstelle protokolliert das Tool die Daten und gibt diese nach dem Aufruf spaltenweise aus. Während die erste Spalte den Zeitraum beinhaltet, zeigen die beiden folgenden die Menge der empfangenen sowie gesendeten Daten und die vierte Spalte die Gesamtsumme. Zusätzlich schätzt die Software, wie viel Datenverkehr bis zum Ende des angegebenen Monats über die Leitung geht (letzte Spalte).

In Bezug auf Mobil-Zugänge empfiehlt es sich jedoch trotzdem, die Übersicht des Anbieters regelmäßig zu prüfen, um Unterschiede aufgrund unterschiedlicher Zählweisen rechtzeitig zu bemerken. Ein wenig Puffer bis zum maximalen Limit schadet häufig nicht, um auf der sicheren Seite zu bleiben.

Standardmäßig zeigt Vnstat die Daten für die letzten zwei Tage und eine Übersicht über den Monat. Mit der Option -i Schnittstelle begrenzen Sie die Ausgabe auf das angegebene Interface. Mit der Option -w erhalten Sie eine Übersicht über die Woche, mit -h eine Stundenübersicht samt einem ASCII-Grafik (Abbildung 3). Eine Schnittstelle, die durch Pakete zu mehr als 90 Prozent ausgelastet ist, markiert Atop in roter Farbe als kritisch.

Abbildung 3: Eine stündliche Übersicht mit Vnstat mit einem Peak beim Daten-Empfang zwischen 15 und 16 Uhr.

Webbasierte Programme

Für das Monitoring komplexer Server-Landschaften stehen mit Munin [14], Cacti [15], Zabbix [16], Zenoss [17], Bloonix [18], Nagios [19] und Splunk [20] eine größere Auswahl webbasierter Werkzeuge bereit. Geht es hingegen um Einzelplatzsysteme und Spezialfälle, kommen Ntop, Bandwidthd und Darkstat ins Spiel.

Der Dienst Ntop sammelt im Hintergrund Daten über die Aktivitäten des Systems. Über Port 3000 erhalten Sie Zugriff auf eine Oberfläche, über die Sie entsprechende Daten abrufen. Diese filtert Ntop wahlweise nach IP-Adresse, Protokoll, Host/Domain oder Transferrate.

Abbildung 4 zeigt die Statistik als Grafik, Abbildung 5 den Durchsatz je besuchten Host. Für jedes Rechnersystem gibt es Zusatzinformationen wie das anhand eines Fingerabdrucks erkannte Betriebssystem. In Abbildung 5 hat das Tool für die URL linux-community.de ein BSD-Unix erkannt.

Abbildung 4: Ntop gibt statistische Daten zum Durchsatz als Grafik aus.
Abbildung 5: Datendurchsatz je besuchter Host plus Zusatzinfo.

Ähnliches wie Ntop leisten Bandwidthd und Darkstat. Nach der Installation des Paketes teilen Sie Bandwithd noch mit, was Sie beobachten möchten – also die zu beobachtenden Subnetze und Netzwerkschnittstellen. Nachdem Sie den Dienst neu gestartet haben, legt der Daemon seine Statistiken unter /var/lib/bandwitdhd/htdocs/ ab, sofern Sie nichts anderes einstellen. Bandwithd liefert Grafiken je nach Subnetz oder Schnittstelle und das jeweils täglich, wöchentlich, monatlich oder jährlich zusammengestellt.

Darkstat erweist sich als klein, portabel und sparsam in Bezug auf die Ressourcen. Es lauscht auf Port 666 und wertet die Daten nicht nur über die Zeit, sondern zusätzlich nach Hosts aus, die Daten empfangen oder zu denen Daten fließen. Abbildung 6 zeigt die Auswertung über die Zeit, die Sie stets über den Webbrowser erhalten. Bislang versteht sich Darkstat allerdings noch nicht auf IPv6.

Abbildung 6: Darkstat zeigt eine Balkengrafik des ein- und ausgehenden Datenverkehrs.

Das Programm startet erst nach erfolgreicher Konfiguration in /etc/darkstat/init.cfg. Hier geben Sie die Schnittstelle an, auf der das Programm lauschen darf, den Adressbereich des lokalen Netzes, sowie die IP-Adresse, an der die Weboberfläche lauscht. Anschließend setzen Sie START_DARKSTAT="yes".

Die Sicherheit

Bei den Weboberflächen ist es sinnvoll, sich vorab zu überlegen, inwiefern Sie einen Zugriff von außen zulassen möchten. Für Ntop finden Sie die Einstellungen bei Debian-basierten Distributionen in der Datei /etc/default/ntop. Als Vorgabe stehen hier die IP-Adresse 127.0.0.1 sowie Port 3000 (GETOPT="-w 127.0.0.1:3000).

Für Darkstat legen Sie die IP-Adresse und den Port via /etc/darkstat/init.cfg fest. Mit dem Wert BINDIP="-b 127.0.0.1" lauscht Darkstat auch hier lokal. Das Programm Bandwidthd bringt keine eigene Weboberfläche mit. Installieren Sie hier für den Zugriff auf die grafische Auswertung einen Webserver wie Apache oder Nginx [21].

Fazit

Mit kleinen Werkzeugen kommen Sie den Programmen auf die Spur, die Ihre Leitung in Beschlag nehmen. Damit bleibt kein Störenfried mehr unentdeckt. Da es kein Schweizer Messer gibt, welches alle Fälle abdeckt, runden die oben vorgestellten webbasierten Programme ihr Handwerkszeug ab. 

Infos

[1] Bandbreiten-Monitoring: Martin Steigerwald, Frank Hofmann "Ausweg aus dem Engpass", LU 06/2013, S. 78, http://www.linux-community.de/28993

[2] Nethogs: http://nethogs.sourceforge.net

[3] Atop: http://atoptool.nl

[4] Vnstat: http://humdi.net/vnstat/

[5] Ntop: http://www.ntop.org

[6] Darkstat: http://unix4lyfe.org/darkstat/

[7] Bandwidthd: http://bandwidthd.sourceforge.net

[8] Netstat: http://de.wikipedia.org/wiki/Netstat

[9] Nload: http://www.roland-riegel.de/nload

[10] Nicstat: http://sourceforge.net/projects/nicstat/

[11] Nethogs: http://wiki.ubuntuusers.de/nethogs

[12] BusyTasks: http://kde-apps.org/content/show.php/BusyTasks

[13] Netatop: http://www.atoptool.nl/netatop.php

[14] Munin: http://munin-monitoring.org

[15] Cacti: http://www.cacti.net

[16] Zabbix: http://www.zabbix.com

[17] Zenoss: http://www.zenoss.com

[18] Bloonix: http://www.bloonix.net

[19] Nagios: http://www.nagios.org

[20] Splunk: http://www.splunk.com

[21] Nginx: http://www.nginx.org

Der Autor

Martin Steigerwald arbeitet als Trainer, Consultant und Administrator bei der Teamix GmbH in Nürnberg. Seine Tätigkeit umfasst Linux-Schulungen, die Konzeption, Installation und Wartung solider IT-Infrastruktur auf Basis von Debian sowie Second Level Support für Linux als Business-Desktop bei Kunden von Teamix.

Frank Hofmann arbeitet in Berlin im Büro 2.0, einem Open-Source-Expertennetzwerk, als Dienstleister mit Spezialgebiet Druck und Satz. Er ist Mitgründer des Schulungsunternehmens "Wizards of FOSS". Seit 2008 koordiniert er das Regionaltreffen der Linux-User-Groups aus der Region Berlin-Brandenburg.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare