Was ist Linux-Netzwerk-Monitoring?

Beim Linux-Netzwerk-Monitoring geht es um die Überprüfung, Analyse, Berichterstattung und Optimierung von Linux-basierten Netzwerken. Da dieses Betriebssystem in der Praxis der Standard für die meisten Server, Unternehmensnetzwerke und Cloud-Dienste ist, ist die Linux-Netzwerküberwachung ein wichtiger Bereich, auf den sich jedes Netzwerk-Team konzentrieren sollte.

Das Netzwerk-Monitoring unter Linux unterscheidet sich nicht wesentlich von der unter anderen Betriebssystemen. Die Metriken, die gesammelt werden, sind die gleichen, aber die Methoden, diese zu sammeln, unterscheiden sich. Wie bei Linux-Systemen üblich, gibt es eine ganze Reihe kostenloser CLI-Anwendungen, mit denen sich einige Aufgaben des Netzwerk-Monitorings erledigen lassen. Dabei handelt es sich um grundlegende Tools, die eine vollwertige Netzwerk-Monitoring-Software, die unendlich viele Geräte, Prüfungen und Betriebssysteme unterstützt, jedoch nicht ersetzen können. Im Gegensatz dazu kann eine dedizierte Monitoring-Software Tausende von Verbindungen oder Geräten gleichzeitig überwachen.

Die meisten dieser kleinen Linux-Netzwerk-Tools sind die Basis für viele größere Tools und eignen sich für schnelle Überprüfungen oder die Automatisierung bestimmter Überwachungsaufgaben, wenn keine umfassendere Monitoring-Lösung vorhanden ist. Vor allem in kleinen Netzwerken oder als erste Schritte bei der Fehlerbehebung können grundlegende Linux-Monitoring-Tools, die in den meisten Linux-Distributionen verfügbar sind, erste Erkenntnisse liefern.

Das Monitoring von Linux-Netzwerken umfasst daher sowohl einfache, überwiegend CLI-basierte Anwendungen als auch große, komplexere und fortgeschrittene Systeme zur Überwachung von Netzwerken und Netzwerkverkehr.

illustration showing different vendor logos in hexagons

TL;DR:

Linux-Netzwerk-Monitoring überwacht und analysiert Linux-basierte Netzwerke – von einzelnen Verbindungen bis zur gesamten Infrastruktur, mithilfe integrierter und erweiterter Tools.

  • Basiswerkzeuge wie netstat, ss, tcpdump, Wireshark, ping, traceroute, dig, nslookup, ifconfig, iwconfig und ip unterstützen bei der Analyse von Verbindungen, Datenverkehr und Netzwerkschnittstellen.
  • Dienstprogramme wie lsof, iftop, iptraf, bmon, nload, cbm und NetHogs ermöglichen Echtzeitüberwachung von Bandbreite, Paketen und Prozessen.
  • Ganzheitliche Lösungen wie Checkmk bieten skalierbares Monitoring mit Reporting, Alarmierung, Flowanalysen und Transparenz über mehrere Hosts hinweg.
  • Kostenlose CLI-Tools eigenen sich ideal für schnelle Checks – komplexere Netzwerke profitieren jedoch von umfassenden Monitoring-Plattformen.

Wie kann man Netzwerk-Traffic auf Linux-Hosts überwachen?

Um den Netzwerkverkehr unter Linux zu überwachen, gibt es mehrere Möglichkeiten. Die erste Option, für die sich die meisten Netzwerk-Teams entscheiden, ist eine vollwertige Netzwerk-Monitoring-Lösung. Diese ist fortschrittlich und bietet eine große Auswahl an Monitoring- und Verwaltungsoptionen für Linux-Hosts. Viele davon sind auch für Einsteiger leicht zu bedienen. Die meisten von ihnen bieten die Möglichkeit, den gesamten Datenverkehr auf einem Gerät zu überwachen – oft in Echtzeit – und die Bandbreitennutzung pro Anwendung zu analysieren. Darüber hinaus können diese Lösungen den Netzwerkdurchsatz messen, um die Performance zu bewerten und potenzielle Engpässe zu erkennen. Dies ist mit Abstand die gängigste und umfassendste Lösung.

Eine andere Möglichkeit zur Überwachung des Netzwerkverkehrs unter Linux ist ein Packet-Sniffer. Er ist eine Komplettlösung, da er alle Pakete erfasst, ist aber sowohl zeit- als auch ressourcenaufwendig und nicht die benutzerfreundlichste Lösung.

Drittens gibt es einen einfacheren, wenn auch eingeschränkten Weg. Die Verwendung der Linux-Firewall, um den Datenverkehr auf einer Host-zu-Host-Basis zu verfolgen. iptables bietet eine Reihe von Parametern (-nvL), die Traffic-Statistiken für jede Regel anzeigen, einschließlich ausgehender und empfangener Daten. Zusammen mit iptables -L, das die aktuellen Regeln anzeigt, ist dies ein recht ausreichender Überblick über den Netzwerkverkehr auf einem einzelnen Host.

Grundlegende Tools für das Linux-Netzwerk-Monitoring

Netzwerk-Monitoring für Linux bedeutet entweder die Verwendung einiger Linux-Netzwerk-Tools, die unter jeder Linux-Distribution kostenlos zur Verfügung stehen, oder die Verwendung einer dedizierten Netzwerk-Monitoring-Lösung. Im weiteren Netzwerk-Kontext fungieren diese Tools als Überwachungssysteme, die den Netzwerkverkehr, die Auslastungsmetriken von Geräten und andere Leistungsindikatoren monitoren. Einige fortschrittliche Lösungen verfügen über ein Grafiktool zur Visualisierung der Daten und speichern häufig Netzwerkdaten und -metriken für spätere Analysen. Darüber hinaus speichern bestimmte Tools auch Protokolle zur Bandbreitennutzung, Netzwerkkonfigurationen und Monitoring-Informationen, etwa für die Fehlerbehebung und historische Auswertungen.

In Unternehmensnetzwerken ist dies keine Option, da die grundlegenden Tools von Linux allein nicht in der Lage sind, alle Überwachungsanforderungen einer großen Netzwerkinfrastruktur zu erfüllen. Das Monitoring des Status und der Gesundheit aller im Netzwerk Services ist entscheidend, um einen reibungslosen Server-Betrieb sicherzustellen. Die Überwachung einer großen Anzahl von Linux-Servern erfordert beispielsweise mehr Skalierbarkeit, Automatisierung und Leistung, als grundlegende Linux-Monitoring-Tools bieten können. Eine umfassende Monitoring-Lösung – häufig auch als Cloud-Service bereitgestellt – ist daher eine Notwendigkeit, keine Option.

Für kleine Unternehmen mit wenigen Rechnern und recht überschaubaren Netzwerktopologien können die Netzwerk-Monitoring-Tools von Linux jedoch ausreichend, wenn auch nicht optimal sein. Für alle interessierten Netzwerkadmins stellen wir einige nützliche Tools für das Netzwerk-Monitoring unter Linux vor, um ihre Möglichkeiten aufzuzeigen.

netstat (ss)

Netstat, das in den meisten neueren Distributionen durch ss ersetzt wurde, ist ein Werkzeug zur Anzeige des Inhalts von /proc/net. Es konzentriert sich auf die Anzeige von Verbindungs- und Routing-Tabelleninformationen für alle lokalen Ports. Es ist nicht geeignet, um entfernte Hosts zu überwachen, kann aber einen schnellen Überblick über den lokalen Datenverkehr geben und gilt als grundlegendes Werkzeug zur Überwachung des Netzwerkverkehrs unter Linux.

Mit dem Parameter -p kann ss die Prozess-ID (PID) anzeigen, die jeder Netzwerkverbindung zugeordnet ist. Dadurch können Administratoren nachvollziehen, welche Prozesse Netzwerkressourcen verwenden. Das Verfolgen von Verbindungen anhand der Prozess-ID (PID) ist hilfreich, um festzustellen, welche Anwendungen Bandbreite verbrauchen, und unterstützt eine effektive Netzwerkdiagnose.

Ein sehr kurzes Beispiel für seine Ausgabe kann sein:

Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 127.0.0.1.62132 127.0.0.1.http ESTABLISHED
tcp4 0 0 127.0.0.1.http * LISTEN

tcpdump

tcpdump ist ein Sniffer. Ein Programm, das Pakete von einer Netzwerkschnittstelle abfängt und sie für den Nutzenden interpretiert. Es versteht alle grundlegenden Internetprotokolle und kann ganze Pakete zur späteren Überprüfung speichern. Obwohl es bei weitem nicht so raffiniert ist wie ein Linux-Netzwerk-Monitoring-Programm, das Flow-Protokolle verwendet, liefert es einen Raw Dump von Paketen auf einer Schnittstelle, der sich später oder in Echtzeit analysieren lässt.

Eine grafische Schnittstelle zu tcpdump ist Wireshark.

ping

ping verwendet ICMP, um Echoanfragen an entfernte Hosts zu senden, um zu prüfen, ob diese erreichbar sind (und antworten können). Es ist ein einfaches Linux-Netzwerk-Tool, da es lediglich Auskunft darüber gibt, ob ein Host erreichbar ist und antwortet. Sie können auch die Größe der Nutzlast in Ping-Tests erhöhen, um die Netzwerkleistung unter verschiedenen Bedingungen zu bewerten, etwa um Paketverluste oder Einschränkungen der Leitungskapazität zu erkennen. Dies geschieht mit dem Parameter -s, gefolgt von der gewünschten Payload-Größe in Byte (beachten Sie, dass immer ein Header von 28 Byte enthalten ist). Zur schnellen Fehlersuche kann es sich jedoch lohnen, ein Terminal zu starten und den ping-Befehl auszuprobieren, um sofort eine Reihe von Ursachen für das auftretende Problem ein- und ausschließen zu können.

Ping and Traceroute commands

traceroute / tracepath

traceroute und tracepath sind zwei Linux-Netzwerk-Tools, die die Route zu einem Ziel anzeigen und somit zur Fehlersuche bei Routing-Problemen unter Linux verwendet werden. Technisch gesehen ist traceroute am weitesten fortgeschritten und verwendet verschiedene Protokolle wie TCP, UDP und ICMP, um die richtige Route zu finden, während tracepath nur UDP verwendet. traceroute kann Pakete manipulieren, während tracepath beim Senden aufhört.

Ein Beispiel für einen traceroute-Lauf, um den Pfad zu www.checkmk.com zu finden:

# traceroute www.checkmk.com
traceroute to www.checkmk.com (45.133.11.28), 30 hops max, 60 byte packets
 1  kl****** (172.27.224.1)  0.546 ms  0.494 ms  0.661 ms
 2  192.168.0.1 (192.168.0.1)  16.455 ms  6.095 ms  20.363 ms
 3  * * *
 4  89-75-5-97.infra.chello.pl (89.75.5.97)  34.704 ms  26.233 ms  32.822 ms
 5  pl-krk07a-ra1-ae-0-1499.aorta.net (84.116.193.21)  66.906 ms  66.897 ms  41.181 ms
 6  pl-ktw01a-rc1-ae-7-1400.aorta.net (84.116.193.26)  41.173 ms  35.290 ms  35.265 ms
 7  de-fra11b-rc1-ae-24-0.aorta.net (84.116.137.50)  29.571 ms  43.890 ms  32.941 ms
 8  de-fra02a-ri1-ae-48-0.aorta.net (84.116.130.62)  32.934 ms  62.005 ms  60.596 ms
 9  213.46.179.114.aorta.net (213.46.179.114)  42.129 ms  32.907 ms  42.884 ms
10  ae1-0.bbr01.anx82.fra.de.anexia-it.net (144.208.208.145)  55.262 ms  42.881 ms  42.877 ms
11  ae0-0.bbr02.anx82.fra.de.anexia-it.net (144.208.208.147)  42.097 ms  60.530 ms  42.851 ms
12  fra1.mx204.ae3.anexia.as48314.net (144.208.211.213)  41.432 ms  42.822 ms  29.554 ms
13  fra1.cc.as48314.net (194.45.196.22)  43.541 ms  54.044 ms  57.596 ms

dig / nslookup

dig und nslookup sind zwei einfache Linux-Netzwerk-Tools zur Abfrage von DNS-bezogenen Informationen, wie z. B. die DNS-Einträge eines Servers, die IP-Adresse, die DNS-Server, die zur Auflösung der Domäne verwendet werden, und mehr. Sie sind ziemlich ähnlich und zeigen nur leicht unterschiedliche Informationen an.

Die Ausgabe von dig sieht zum Beispiel so aus:

# dig www.checkmk.com

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> www.checkmk.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43707
;; flags: qr rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.checkmk.com.               IN      A

;; ANSWER SECTION:
www.checkmk.com.        0       IN      A       45.133.11.28

;; Query time: 0 msec
;; SERVER: 172.27.224.1#53(172.27.224.1) (UDP)
;; WHEN: Thu Dec 15 10:49:02 CET 2022
;; MSG SIZE  rcvd: 64

ifconfig / iwconfig

Ein Werkzeug mit mehr Verwaltungsmöglichkeiten ist ifconfig. Man verwendet es unter Linux, um Netzwerkschnittstellen zu konfigurieren, ihre aktuelle Konfiguration anzuzeigen und sie bei Bedarf zu aktivieren oder zu deaktivieren. Für kabelgebundene Verbindungen ist ifconfig das richtige Tool, während sich iwconfig für die Konfiguration von drahtlosen Schnittstellen eignet.

ip

Was die Linux-Netzwerk-Tools angeht, ist ip wahrscheinlich das Schweizer Messer unter ihnen. Es zeigt und manipuliert Routing-Pfade, Geräte, Richtlinien und Tunnel. Es kann Schnittstellen hoch- oder herunterfahren, ihre IP-Adressen und eine Standardroute festlegen und vieles mehr. Als Netzwerk-Monitoring-Tool für Linux hat es nur begrenzte Möglichkeiten und ist eher als Hilfe bei der Fehlersuche nützlich.

isof

isof ist nicht der erste Befehl, der einem in den Sinn kommt, wenn man an Linux-Netzwerk-Monitoring-Tools denkt. Sein Name ist schließlich ein Akronym für „list open files“. Wie hilft der Befehl Admins, die versuchen, Netzwerke zu überwachen?

Das liegt daran, dass unter Linux, wie auch unter Unix, alles eine Datei ist, das schließt Netzwerkverbindungen mit ein. isof lässt sich verwenden, um Netzwerkaktivitäten anzuzeigen:

lsof -nP -i

Der Befehl zeigt alle Verbindungen an. Wenn man nur bestehende Verbindungen erhalten möchte, kann man isof mit den folgenden Optionen ausführen:

isof -nP -iTCP -sTCP:ESTABLISHED

isof ist auf diese oder ähnliche Aufgaben beschränkt, aber um die Netzwerkaktivität zu sehen, ist es ein einfacher Befehl, der bei der Fehlersuche in Linux-Netzwerken helfen kann.

iftop

Während das bekannte top die lokalen Prozesse auf einem Linux-System anzeigt, macht iftop dasselbe, allerdings für Netzwerkaktivitäten. Wenn Sie es ohne Argumente ausführen, öffnet sich eine Oberfläche in der CLI, die der von top sehr ähnlich ist. In dieser Oberfläche können Sie aktive Verbindungen, ihre Ursprungs- und Zieladressen oder Domänen und die jeweils verbrauchte Bandbreite sehen, mit einer Gesamtsumme am unteren Rand. iftop ist daher nützlich, um zu berechnen, wie viel Bandbreite verbraucht wird, zum Beispiel, wenn Sie eine gebührenpflichtige Verbindung haben und Ihre Netzwerknutzung begrenzen wollen.

iftop kann jedoch auch als einfaches Befehlszeilen-Tool dienen, mit dem Benutzer die Echtzeit-Netzwerkgeschwindigkeiten für aktive Verbindungen beobachten können. Damit ist es ein unkompliziertes Hilfsprogramm, um die Netzwerkaktivität unter Linux anzuzeigen – unabhängig davon, wie groß das Interesse an der tatsächlichen Bandbreite ist.

iftop-Ausgabe

iptraf

iptraf ist sozusagen eine funktionsreichere Version von iftop und hat eine ähnliche Oberfläche. Aktive Verbindungen werden mit ihren Ziel-IP-Adressen angezeigt, neben den Paketnummern und -größen. iptraf ist auch ein Paketaufzeichnungstool, und die Live-Statistik der Pakete wird in der unteren Hälfte des Programms angezeigt. iptraf kann auch eine Zusammenfassung der aktuell geöffneten Ports anzeigen, was bei der Fehlersuche in Firewall-Fehlkonfigurationen oder beim Bemerken von Eindringlingen recht praktisch ist. Alles in allem ist es ein gutes Werkzeug, um die Netzwerkaktivität unter Linux anzuzeigen.

iptraf-Ausgabe

bmon

bmon ist ein weiteres Open-Source-Netzwerk-Monitoring-Tool für Linux, das über die Kommandozeile bedient wird und auf jedem Linux-System verfügbar ist. Auf den ersten Blick zeigt bmon die Netzwerkbandbreite an und kann die gesamte oder die pro Schnittstelle genutzte Bandbreite nahezu in Echtzeit überwachen. Die Benutzeroberfläche ähnelt den zuvor genannten Tools. Durch Drücken der Taste „d“ blendet bmon am unteren Rand der Benutzeroberfläche zusätzliche Detailinformationen ein. Darunter Daten zu Netzwerkfehlern, IPv6-Verbindungen sowie die Gesamtzahl der übertragenen Bytes und Pakete.

bmon-Ausgabe

nload

Als Tool zur Überwachung er Netzwerkbandbreitennutzung ist nload sehr einfach und unmittelbar in der Anwendung. Wenn es mit dem Parameter -m gestartet wird, der alle Netzwerkschnittstellen einbezieht, öffnet sich nload mit einer Ansicht, die eingehende und ausgehende Traffic-Statistiken anzeigt. Nichts Kompliziertes, nur die Geschwindigkeit des Netzwerkdatenverkehrs in beide Richtungen, jeweils mit Maximal-, Minimal- und Durchschnittswerten. nload überwacht den Netzwerktraffic nicht im engeren Sinne, sondern ist vielmehr ein Befehlszeilentool, um die  Bandbreitennutzung pro Schnittstelle zu überprüfen.

nload-Ausgabe

Cbm (Color Bandwidth Monitor)

Ein vielleicht noch einfacheres Tool zum Monitoring der Netzwerkbandbreite ist cbm. Standardmäßig öffnet es eine sehr vereinfachte Oberfläche, die für jede Netzwerkschnittstelle die Geschwindigkeit der empfangenen und gesendeten Daten sowie deren Gesamtmenge anzeigt. Es ist farbenfroher als andere bisher analysierte Tools, daher auch sein Name. cbm kann nicht viel mehr, aber für eine sehr schnelle Überprüfung der Bandbreitennutzung kann es ein nützliches grafisches Netzwerk-Monitoring-Tool sein.

cbm-Ausgabe

Warum sollte man ein modernes Netzwerk-Monitoring-Tool für Linux verwenden?

Linux server dashboard in Checkmk

Für das Netzwerk-Monitoring unter Linux genügen die grundlegenden Tools, die Linux bereitstellt, völlig. Für eine schnelle Fehlerbehebung oder eine einfache skriptgesteuerte Automatisierung einiger Prüfungen sind diese ausreichend. Sie haben außerdem den Vorteil, dass sie praktisch auf jeder Linux-Distribution verfügbar sind, da sie oft bereits vorinstalliert sind.

Die Netzwerküberwachung erfordert jedoch weitaus mehr Funktionen und eine bessere Kontrolle. Für eine komfortable Überwachung des Netzwerkverkehrs unter Linux ist zum Beispiel mehr als nur ein Packet Sniffer wie tcpdump erforderlich. Das Monitoring des Netzwerkverkehrs unter Linux ist ein ziemlich schwieriges Gebiet, das mit den hier vorgestellten und einfachen Tools nur schwer abzudecken ist. Funktionen wie Berichte, Warnmeldungen und die Überwachung von Datenströmen sind mit einfachen Tools nicht möglich. 

Oder beim Monitoring von Linux-Systemen, die nicht lokal oder auf Bare-Metal-Systemen laufen, wie beispielsweise in Containern oder auf Remote-Servern. Diese Einschränkungen haben zur Entwicklung einer Reihe fortschrittlicher Überwachungstools geführt, die von Unternehmen in vielen Branchen zur Überwachung ihrer Linux-basierten Infrastruktur eingesetzt werden. 

Dies führte zur Entwicklung einer Reihe von fortschrittlichen Monitoring-Lösungen, die Unternehmen in vielen Branchen zur Überwachung ihrer Linux-basierten Infrastruktur einsetzen.
Für fortgeschrittene Anwendungsfälle gibt es erweiterte Netzwerk-Monitoring-Tools für Linux. Sie bieten nicht nur eine Fülle von ausgefeilten Funktionen und unterstützen die Überwachung über spezielle Protokolle wie SNMP (sehen Sie sich in unserem Leitfaden an, wie Sie SNMP unter Linux konfigurieren), sondern verfügen auch über eine viel einfacher zu bedienende und vor allem lesbare Oberfläche. Moderne Lösungen können den Datenverkehr leicht überwachen, z. B. durch die Unterstützung von flow-basierten Protokollen, und Sie warnen, wenn ein Parameter einen Schwellwert über- oder unterschreitet. Dies wäre mit den grundlegenden Linux-Tools nur mit umfangreichem Skripting möglich, und selbst dann nicht mit der Granularität, die große Netzwerke erfordern. Außerdem würde die Einrichtung dieses Systems viel Zeit der Mitarbeiter kosten. Für die meisten Unternehmen reicht das nicht aus, und eine richtige Netzwerk-Monitoring-Software wie Checkmk ist die richtige Lösung.

Der einzige relative Nachteil von fortschrittlichen Netzwerk-Monitoring-Lösungen für Linux ist, dass man sie installieren muss und ihr Ressourcenverbrauch im Vergleich zu einfacheren CLI-Tools höher ist. Der erste Nachteil ist vernachlässigbar, da die meisten von ihnen volle Unterstützung für die wichtigsten Linux-Distributionen bieten und vorkonfiguriert sind; der zweite Nachteil lohnt sich aufgrund der Fülle der angebotenen Funktionen, der Benutzerfreundlichkeit und der Robustheit, die sie mit sich bringen.

Und es ist nicht einmal eine Frage der Kosten. Die Nutzung von Checkmk Raw ist kostenlos. Die kommerziellen Editionen sind dagegen kostenpflichtig, bieten jedoch neben Support, auch einen deutlich erweiterten Funktionsumfang und die Unterstützung weiterer Dienste. Sie können mit der Trial Checkmk 30 Tage lang kostenlos testen. Netzwerk-Monitoring für Linux muss nicht teuer sein.

FAQ

Was ist ein guter Linux-Bandbreitenmonitor?

Für das Bandbreiten-Monitoring unter Linux gibt es einige spezielle Tools. Nicht unbedingt die leistungsfähigsten, aber wahrscheinlich die bekanntesten sind NetHogs und IPTraf. Einfachere Programme, die lediglich die Netzwerkverbindungen und die reine Bandbreitennutzung überprüfen, sind bmon, nload und cbm.

Wie kann man die Netzwerkgeschwindigkeit unter Linux überprüfen?

Es gibt einige Möglichkeiten, die Netzwerkgeschwindigkeit unter Linux zu überprüfen. Ohne spezielle Tools zu installieren, geht es am schnellsten mit ethtool:

sudo ethtool eth0 | grep Speed

Dies zeigt allerdings nur die Nenngeschwindigkeit an. Ein genaueres Tool für die tatsächliche Netzwerkgeschwindigkeit ist speedtest-cli. Die Python-App lässt sich mit pip install speedtest-cli installieren.

Wie kann man die Netzwerkauslastung unter Linux überprüfen?

Das einfachste Tool zur Überprüfung der Netzwerkauslastung unter Linux ist NetHogs. Einmal gestartet, öffnet es eine Konsole, die in Echtzeit die Netzwerkauslastung der einzelnen Prozesse auf Ihrem System anzeigt.

Eine umfangreichere Alternative ist IPTraf mit der Option "IP Traffic Monitor".