Monitoraggio TCP su un server: confrontando netstat vs lsof?


12

Sto monitorando lo stack TCP su un server sperando di dedurre genericamente problemi con l'applicazione sulla scatola.

La mia prima inclinazione è misurare il numero di socket in tutti gli stati segnalati (LISTEN, ESTABLISHED, FIN_WAIT2, TIME_WAIT, ecc.) E rilevare alcune anomalie.

Un compagno di squadra suggerisce che 'lsof' sarebbe uno strumento migliore per vedere in quale stato si trovano gli stack TCP.

Eventuali preferenze o suggerimenti di esperienza da parte della folla serverfault?


3
Per favore, aggiungi un tag * nix per spaventarci fanatici di Windows
KevinH,

Risposte:


7

Preferisco lsof perché l'output è coerente su tutte le piattaforme su cui viene eseguito. Tuttavia, puoi praticamente ottenere le stesse informazioni da entrambi i programmi. Penso che dipenda dalle preferenze personali.


2

La mia prima implicazione sarebbe quella di utilizzare ciò netstat -ptanche ti darà tutte le informazioni che stai cercando. Probabilmente pipe per ordinare e uniq. Quanto segue dovrebbe fornire un buon numero di stato socket '.

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


1

Dai un'occhiata a dstat ed esegui con:

% sudo dstat --tcp

Ancora meglio, se vuoi analizzare l'output, puoi farlo scrivere su CSV con --output.


Strumento interessante, purtroppo solo Linux (anche se comprensibilmente). Bello vedere qualcosa di simile a SAR che include informazioni di rete (anche se le versioni di linux sar sembrano mostrare anche questo).
ericslaw,

1

Penso che sia davvero una preferenza personale, dato che con un piccolo ritocco (e le giuste opzioni di comando) puoi ottenere praticamente le stesse informazioni da entrambi.

Tuttavia, se desideri monitorare il numero di connessioni in vari stati, non lo farei con uno strumento da riga di comando a colpo singolo. Farei uso di qualcosa che può fare qualche tendenza in modo da poterlo rivedere nel tempo. Qualcosa come Munin sarebbe molto utile, poiché lo rappresenterebbe nel tempo (insieme a mostrarti altre statistiche di sistema potenzialmente utili).

La risoluzione dei problemi di un'applicazione è sempre più semplice se si hanno buone informazioni sulla scatola stessa e su come sta funzionando (sia durante i problemi che in assenza di problemi).


Lo strumento da riga di comando è solo per la raccolta. Il tuo punto di raccolta dei dati per una linea di base è davvero l'approccio appropriato.
ericslaw,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.