TCP-Überwachung auf einem Server: Vergleich von netstat und lsof?


12

Ich überwache den TCP-Stack auf einem Server in der Hoffnung, generisch auf Probleme mit der Anwendung auf der Box schließen zu können.

Meine erste Neigung besteht darin, die Anzahl der Steckdosen in allen gemeldeten Zuständen (LISTEN, ESTABLISHED, FIN_WAIT2, TIME_WAIT usw.) zu messen und einige Anomalien festzustellen.

Ein Teamkollege schlägt vor, dass 'lsof' ein besseres Tool ist, um den Status der TCP-Stacks zu ermitteln.

Irgendwelche Vorlieben oder Erfahrungstipps von der Serverfault-Crowd?


3
Bitte fügen Sie ein * nix-Tag hinzu, um uns Windows-Geeks
abzuschrecken

Antworten:


7

Ich bevorzuge lsof, weil die Ausgabe auf allen Plattformen, auf denen es ausgeführt wird, konsistent ist. Sie können jedoch so ziemlich die gleichen Informationen aus beiden Programmen erhalten. Ich denke, es kommt auf die persönlichen Vorlieben an.


2

Meine erste Implikation wäre zu verwenden, netstat -ptandie Ihnen alle Informationen geben wird, die Sie suchen. Wahrscheinlich Pipe zu sortieren und einzigartig. Das Folgende sollte Ihnen eine gute Anzahl von Socket-Status geben.

netstat -ptan | awk '{print $6 " " $7 }' | sort | uniq -c


1

Schauen Sie sich dstat und laufen mit:

% sudo dstat --tcp

Wenn Sie die Ausgabe analysieren möchten, können Sie sie sogar mit --output in CSV schreiben lassen.


Interessantes Tool, leider nur unter Linux (wenn auch verständlicherweise). Schön, etwas zu sehen, das mit SAR vergleichbar ist und Netzwerkinformationen enthält (obwohl Linux-Sar-Versionen dies auch zu zeigen scheinen).
Ericlaw

1

Ich denke, es ist wirklich eher eine persönliche Vorliebe, da Sie mit ein wenig Optimierung (und den richtigen Befehlsoptionen) von beiden nur ungefähr die gleichen Informationen erhalten können.

Wenn Sie jedoch die Anzahl der Verbindungen in verschiedenen Zuständen überwachen möchten, würde ich dies nicht mit einem einzigen Befehlszeilenprogramm tun. Ich würde etwas gebrauchen, das einige Trends kann, damit Sie es im Laufe der Zeit überprüfen können. So etwas wie Munin wäre sehr nützlich, da es es im Laufe der Zeit grafisch darstellen würde (zusammen mit anderen potenziell nützlichen Systemstatistiken).

Die Fehlerbehebung bei einer Anwendung ist immer einfacher, wenn Sie gute Informationen über die Box selbst und deren Leistung haben (sowohl bei Problemen als auch bei fehlenden Problemen).


Das Befehlszeilentool dient nur zur Sammlung. Ihre Aufgabe, Daten für eine Baseline zu sammeln, ist in der Tat der richtige Ansatz.
Ericlaw
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.