Jeder Netzwerkadministrator strebt danach, die optimale Leistung der von ihm verwalteten Systeme zu gewährleisten. Dies ist entscheidend, um die Benutzerzufriedenheit sicherzustellen, da diese oft die ersten sind, die selbst kleinste Leistungseinbußen bemerken. Um auf Leistungsbeschwerden reagieren zu können, ist es unerlässlich, über leistungsfähige Werkzeuge zu verfügen. Wenn Sie in einer Linux-Umgebung arbeiten, ist dieser Artikel genau das Richtige für Sie. Wir werden einige der besten Linux-Netzwerk-Performance-Tools vorstellen.
Zunächst werfen wir einen kurzen Blick auf die Überwachung der Netzwerkleistung. Es ist nicht unser Ziel, Sie zu Experten zu machen, sondern sicherzustellen, dass wir alle auf dem gleichen Stand sind, bevor wir uns die verschiedenen verfügbaren Tools ansehen. Danach gehen wir direkt zum Kern der Sache und präsentieren zehn verschiedene Linux-Tools, mit denen Sie die Leistung Ihres Netzwerks überwachen, verwalten und Fehler beheben können.
Grundlagen der Überwachung und des Testens der Netzwerkleistung
Das Problem bei der Überwachung und dem Testen der Netzwerkleistung ist, dass jeder eine andere Vorstellung davon hat, was das bedeutet. Beispielsweise werden Tools zur Überwachung der Netzwerkbandbreite oft als Performance-Monitoring-Tools bezeichnet, ebenso wie Tools zur Verkehrsanalyse oder Paket-Sniffer. Dies wirft die Frage auf: Was genau ist Netzwerk-Performance-Überwachung und -Test?
Für diesen Artikel nehmen wir eine pragmatische Definition an: Tools zur Überwachung der Netzwerkleistung sind alle Werkzeuge, die zur Messung, Bewertung, Behebung oder Verbesserung der Netzwerkleistung verwendet werden können. Durch diese umfassende Definition können wir Ihnen eine breite Auswahl an Tools präsentieren und es Ihnen überlassen, die für Ihre spezifische Situation oder Ihr Problem relevanten Werkzeuge auszuwählen.
Die besten Tools zur Netzwerkleistung unter Linux
Wir haben eine Liste der am häufigsten verwendeten Linux-Tools zusammengestellt, mit denen verschiedene Metriken im Zusammenhang mit der Netzwerkleistung getestet oder überwacht werden können. Diese Tools sind in den meisten Linux-Distributionen verfügbar und können helfen, die Ursachen von Leistungsproblemen zu identifizieren. Unter den folgenden Vorschlägen wird mit Sicherheit ein Tool für Ihre speziellen Anforderungen dabei sein.
1. TCPdump
Tcpdump ist ein klassischer Paket-Sniffer. Dieses Tool wird verwendet, um den gesamten Netzwerkverkehr auf die Standardausgabe zu schreiben. Durch Umleitung und Pipes kann die Ausgabe in eine beliebige Datei oder an einen anderen Prozess geleitet werden. Seit seiner ersten Veröffentlichung wurde das Tool verbessert und Fehler wurden behoben, aber sein Kernprinzip ist unverändert. Es ist in fast jeder Linux-Distribution verfügbar und hat sich zu einem Standardwerkzeug für die schnelle Erfassung von Paketen entwickelt. Tcpdump verwendet die libpcap-Bibliothek für die eigentliche Paketerfassung.
Einer der Nachteile von Tools wie tcpdump ist, dass sie eine riesige Datenmenge sammeln können. Dies kann es schwierig machen, genau das zu finden, was man sucht. Glücklicherweise können Filter angewendet werden, um zu definieren, welcher Verkehr erfasst werden soll. Die Ausgabe des Befehls kann auch zur weiteren Filterung an ‚grep‘ weitergeleitet werden, ein weiteres gängiges Befehlszeilenwerkzeug. Erfahrene Benutzer von tcpdump, grep und der Befehlsshell können damit genau den benötigten Datenverkehr für jede Debugging-Aufgabe erfassen.
Hier ist ein Beispiel für die Verwendung von tcpdump:
# tcpdump -i eth0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648 22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648 22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347
Sie werden sicher zustimmen, dass eine solche Ausgabe etwas kryptisch sein kann. Hier kann ein echter Netzwerkprotokollanalysator sehr hilfreich sein.
2. Wireshark
Wireshark ist quasi das Nonplusultra der Paket-Sniffer, es leistet viel mehr als tcpdump. Es erfasst nicht nur den Datenverkehr, sondern analysiert ihn auch. Viele Administratoren verwenden tcpdump, um den Datenverkehr in einer Datei zu erfassen und diese dann zur Analyse in Wireshark zu laden. Wireshark bietet eine Vielzahl integrierter Filter, mit denen Sie die gewünschten Daten genau eingrenzen können.
Wireshark hat eine steile Lernkurve, aber es lohnt sich, es zu meistern. Es wird sich immer wieder als unschätzbar wertvoll erweisen. Da es auf fast jedes Betriebssystem portiert wurde, können Sie es überall verwenden. Darüber hinaus ist es Open Source und kostenlos verfügbar.
3. Netstat
Eines der Probleme bei der Fehlersuche bei TCP/IP-Verbindungsproblemen ist die Vielzahl an Verbindungen und Diensten, die normalerweise auf jedem System ausgeführt werden. Netstat kann verwendet werden, um den Status jeder Verbindung zu identifizieren und zu ermitteln, welcher Prozess jede einzelne bedient. Netstat ist auf jeder Linux-Distribution verfügbar und liefert schnell Details zu Client-Diensten und TCP/IP-Kommunikation. In seiner einfachsten Form zeigt der Befehl alle aktiven Verbindungen auf dem lokalen Computer an, sowohl eingehende als auch ausgehende.
Netstat kann auch Listening-Ports auf dem Computer anzeigen. Der Befehl akzeptiert viele Optionen, die sich jedoch zwischen den Plattformen unterscheiden. Beispielsweise würde die Option -b unter Windows den Namen der ausführbaren Datei anzeigen, die mit jeder Verbindung verbunden ist, während sie unter Mac OS X oder BSD zusammen mit -i verwendet wird, um Statistiken eher in Bytes als in Bits anzuzeigen. Die beste Methode, um mehr über die Parameter Ihrer spezifischen Netstat-Version zu erfahren, ist die Option -? oder die Verwendung der Manpage.
So sehen ein typischer netstat-Befehl und seine Ausgabe aus:
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:realm-rusd *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 localhost.localdomain:ipp *:* LISTEN tcp 0 0 localhost.localdomain:smtp *:* LISTEN tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42709 TIME_WAIT tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42710 TIME_WAIT tcp 0 0 *:http *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:https *:* LISTEN
4. IPTaf
IPTraf ist ein konsolenbasiertes Netzwerkstatistik-Dienstprogramm für Linux. Es kann verwendet werden, um eine Vielzahl von Informationen zu sammeln, wie z. B. Paket- und Byte-Zählungen von TCP-Verbindungen, Schnittstellenstatistiken, TCP- oder UDP-Verkehrsausfälle und Paket- und Byte-Zählungen von LAN-Stationen. Es verfügt über einen IP-Verkehrsmonitor, der Informationen über den IP-Verkehr in Ihrem Netzwerk anzeigt, einschließlich TCP-Flag-Informationen, Paket- und Bytezahlen, ICMP-Details und OSPF-Pakettypen. Obwohl die letzte Version aus dem Jahr 2005 stammt und das Tool etwas veraltet ist, kann es immer noch viele nützliche Informationen liefern.
Weitere Funktionen von IPTraf sind allgemeine und detaillierte Schnittstellenstatistiken, die IP-, TCP-, UDP-, ICMP- und andere IP-Paketzahlen, IP-Prüfsummenfehler, Schnittstellenaktivität und Paketgrößen anzeigen. Es gibt auch einen TCP- und UDP-Dienstmonitor, der die Anzahl der eingehenden und ausgehenden Pakete für gängige TCP- und UDP-Anwendungsports anzeigt. Ein integriertes LAN-Statistikmodul erkennt aktive Hosts und zeigt Statistiken zu deren Datenaktivität an. Außerdem verfügt das Tool über TCP-, UDP- und andere Protokollanzeigefilter, sodass Sie nur den Datenverkehr sehen können, der Sie interessiert.
Das Tool bietet eine menügesteuerte Bedienung im Vollbildmodus, verarbeitet die meisten Arten von Netzwerkschnittstellen und verwendet die Raw-Socket-Schnittstelle des Linux-Kernels. Dadurch kann es mit einer Vielzahl von unterstützten Netzwerkkarten verwendet werden.
5. Nagios
Nagios ist eine vollwertige Netzwerküberwachungslösung. Es gibt zwei Versionen: das kostenlose Open-Source-Nagios Core und das kostenpflichtige Nagios XI. Beide haben dieselbe zugrunde liegende Engine. Nagios Core ist ein modulares Überwachungssystem, dessen Herzstück die eigentliche Überwachungs-Engine ist. Die Engine wird durch viele Plugins erweitert, die heruntergeladen werden können, um dem System Funktionalität hinzuzufügen. Jedes Plugin fügt dem Kern spezifische Funktionen hinzu.
Auch die Benutzeroberfläche des Tools ist modular aufgebaut, und es stehen mehrere Community-basierte Optionen zum Download bereit. Nagios Core, die Plugins und die Benutzeroberfläche ergeben zusammen ein komplettes Überwachungssystem. Die Einrichtung von Nagios Core kann daher etwas komplex sein.
Nagios XI ist ein kommerzielles Produkt, das auf derselben Core-Engine basiert, aber eine vollständig eigenständige Überwachungslösung darstellt. Die Installation und Konfiguration ist einfacher als bei Nagios Core, was zum Teil auf einen Konfigurationsassistenten und eine Auto-Discovery-Engine zurückzuführen ist. Der Hauptnachteil von Nagios XI ist der Preis, der bei etwa 2.000 $ für eine 100-Knoten-Lizenz beginnt.
VERWANDTE LESUNG: SolarWinds NPM vs. Nagios
6. Observium
Observium ist eine weitere umfassende Überwachungsplattform, die eine breite Palette von Geräten, Plattformen und Betriebssystemen unterstützt. Das Tool konzentriert sich auf die Bereitstellung einer ansprechenden, intuitiven und einfachen, aber leistungsstarken Benutzeroberfläche, die den Status und den Zustand Ihres Netzwerks visuell darstellt.
Obwohl Observium oft als Bandbreitenüberwachungstool wahrgenommen wird, kann es viel mehr. Es verfügt über ein Abrechnungssystem, das die monatliche Bandbreitennutzung im 95. Perzentil oder in übertragenen Bytes misst. Es hat auch eine Warnfunktion mit anpassbaren Schwellenwerten. Darüber hinaus kann sich Observium in andere Systeme integrieren und deren Informationen abrufen und in seiner Benutzeroberfläche anzeigen.
Observium konfiguriert sich durch einen Auto-Discovery-Prozess fast selbst. Es gibt detaillierte Installationsanweisungen für verschiedene Linux-Distributionen, die Links zum richtigen Paket für jede Distribution enthalten. Die Anweisungen sind sehr detailliert, sodass die Installation der Software einfach sein sollte.
Es gibt zwei Versionen: die kostenlose Observium Community-Version, die zweimal im Jahr Updates und neue Funktionen erhält, und Observium Professional, die tägliche Updates und zusätzliche Funktionen bietet.
7. Icinga
Icinga ist eine weitere Open-Source-Netzwerküberwachungsplattform. Das Tool verfügt über eine einfache und übersichtliche Benutzeroberfläche und einen Funktionsumfang, der mit einigen kommerziellen Produkten mithalten kann. Wie die meisten Bandbreitenüberwachungssysteme verwendet Icinga hauptsächlich SNMP, um Nutzungsdaten von Geräten zu sammeln. Hervorzuheben ist die Verwendung von Plugins. Es gibt viele von der Community entwickelte Plugins, um verschiedene Überwachungsaufgaben durchzuführen und die Funktionalität des Produkts zu erweitern. Bei Bedarf kann man auch eigene Plugins entwickeln und zur Community beitragen.
Warnungen und Benachrichtigungen sind zwei der besten Funktionen von Icinga. Warnungen sind vollständig konfigurierbar und werden anpassbar übertragen. Das Tool verfügt auch über eine segmentierte Benachrichtigungsfunktion, mit der Sie verschiedene Benachrichtigungen an unterschiedliche Benutzer senden können. Dies ist besonders nützlich, wenn verschiedene Systeme von verschiedenen Teams verwaltet werden. So könnten Sie beispielsweise alle Warnungen zu Servern an das Serveradministrationsteam und alle Warnungen zum Netzwerk an das Netzwerk-Supportteam senden lassen.
8. Zabbix
Zabbix ist ein weiteres kostenloses und Open-Source-Tool zur Überwachung der Netzwerkleistung. Es hat ein professionelles Erscheinungsbild, wie man es von einem kommerziellen Produkt erwarten würde. Neben dem ansprechenden Design verfügt das Produkt über einen beeindruckenden Funktionsumfang. Neben Netzwerkgeräten kann die Plattform auch die meisten anderen mit dem Netzwerk verbundenen Geräte überwachen. Es ist eine ideale Option zur Überwachung der Leistung Ihrer gesamten Infrastruktur.
Zabbix verwendet SNMP sowie das Intelligent Platform Monitoring Interface (IMPI) zur Geräteüberwachung. Mit der Software können Sie Bandbreite, CPU- und Speicherauslastung, Gerätezustand, Leistung und Konfigurationsänderungen überwachen. Das Produkt verfügt außerdem über ein anpassbares Warnsystem. Es sendet nicht nur E-Mail- oder SMS-Benachrichtigungen, sondern kann auch lokale Skripte ausführen, um beispielsweise einige Probleme automatisch zu beheben.
9. Cacti
Ein Artikel über Linux-Netzwerkleistungs-Tools wäre nicht vollständig ohne Cacti, ein kostenloses Open-Source-Tool zur umfassenden Überwachung der Netzwerkleistung. Es existiert seit etwa fünfzehn Jahren und wird immer noch aktiv weiterentwickelt. Obwohl es nicht das ausgeklügeltste Tool ist, erledigt es seine Aufgabe effizient. Zu seinen Hauptkomponenten gehören ein schneller Poller, erweiterte Diagrammvorlagen und verschiedene Datenerfassungsmethoden. Cacti verfügt über eine integrierte Benutzerzugriffssteuerung und eine webbasierte Benutzeroberfläche. Das Tool skaliert gut von Einzelgeräteinstallationen bis hin zu komplexen Netzwerken mit verschiedenen WAN-Standorten.
Cacti, das ein Frontend für die RRDtools ist, verwendet SNMP, um Daten abzurufen, die in einer SQL-Datenbank gespeichert werden. Es ist in PHP geschrieben und kann an Ihre Bedürfnisse angepasst werden. Eine der stärksten Funktionen des Produkts ist die Verwendung von Vorlagen. Es gibt beispielsweise integrierte Vorlagen für Cisco-Router, die bereits die meisten zu überwachenden Elemente enthalten. Es gibt nicht nur Gerätevorlagen, sondern auch Diagrammvorlagen. Diese Vorlagen vereinfachen die Konfiguration der Software. Sie können auch eigene benutzerdefinierte Vorlagen erstellen oder gerätespezifische Vorlagen von den Websites der Gerätehersteller herunterladen. In der Community betriebene Cacti-Foren bieten ebenfalls Vorlagen zum Download an.
10. Munin
Munin ist ein weiteres GUI-Frontend für RRDtools, das in Perl geschrieben und unter der GPL lizenziert ist. Es ist ein nützliches Tool zur Überwachung der Leistung von Netzwerken, Systemen, Anwendungen und Diensten. Es funktioniert auf allen Unix-ähnlichen Betriebssystemen und verfügt über ein umfangreiches Plugin-System mit etwa 500 verschiedenen verfügbaren Plugins. Damit kann fast alles in Ihrem Netzwerk überwacht werden.
Munin stellt alle gesammelten Informationen in Diagrammen auf einer Web-Oberfläche dar. Seine Stärke liegt in vergleichenden Analysen, um Änderungen zu identifizieren, die zu Leistungseinbußen führen können. Ein Benachrichtigungssystem kann verwendet werden, um Nachrichten an den Administrator zu senden, wenn ein Fehler auftritt oder behoben wurde.