Monitoreo TCP en un servidor: ¿comparando netstat vs lsof?

12

Estoy monitoreando la pila TCP en un servidor con la esperanza de inferir genéricamente problemas con la aplicación en la caja.

Mi primera inclinación es medir el número de sockets en todos los estados informados (LISTEN, ESTABLISHED, FIN_WAIT2, TIME_WAIT, etc.) y detectar algunas anomalías.

Un compañero de equipo sugiere que 'lsof' sería una mejor herramienta para ver en qué estado están las pilas TCP.

¿Alguna preferencia o consejos de experiencia de la multitud de servidores por defecto?

ericslaw
fuente
3
Agregue una etiqueta * nix para ahuyentar a los geeks de Windows
KevinH

Respuestas:

7

Prefiero lsof porque su salida es consistente en todas las plataformas en las que se ejecuta. Sin embargo, puedes obtener la misma información de ambos programas. Creo que se trata de preferencias personales.

Geoff Fritz
fuente
2

Mi primera implicación sería utilizar el netstat -ptanque le dará toda la información que está buscando. Probablemente tubería para clasificar y unificar. Lo siguiente debería darle un buen número de estado de socket '.

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

Suroot
fuente
1

Echa un vistazo a dstat y corre con:

% sudo dstat --tcp

Aún mejor, si desea analizar la salida, puede hacer que escriba en CSV con --output.

Tim
fuente
Herramienta interesante, por desgracia, solo Linux (aunque es comprensible). Es bueno ver algo similar a SAR que incluye información de red (aunque las versiones de Linux Sar también parecen mostrar eso).
ericslaw
1

Creo que en realidad es más una preferencia personal, ya que con un pequeño ajuste (y las opciones de comando correctas) puede obtener casi la misma información de cualquiera de ellos.

Sin embargo, si desea monitorear la cantidad de conexiones en varios estados, no lo haría con una herramienta de línea de comando de disparo único. Haría uso de algo que pueda hacer algunas tendencias para que pueda revisarlo con el tiempo. Algo como Munin sería muy útil, ya que lo graficaría con el tiempo (junto con mostrarle otras estadísticas del sistema potencialmente útiles).

La resolución de problemas de una aplicación siempre es más fácil si tiene buena información sobre el cuadro en sí y cómo funciona (tanto durante los problemas como cuando los problemas están ausentes).

Christopher Cashell
fuente
La herramienta de línea de comandos es solo para recopilación. Su punto de recopilación de datos para una línea de base es de hecho el enfoque apropiado.
ericslaw