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?


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.


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


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.


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).


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.