martes, diciembre 15, 2015

nstat: Estadisticas de red en Linux

Todos los sistemas que implementan la pila de protocolos TCP/IP suelen tener unos contadores internos que almacenan estadísticas sobre el funcionamiento de la pila de procotolos: Paquetes recibidos, conexiones TCP abiertas, paquetes UDP, etc. Normalmente, esas estadísticas son las necesarias para poder implementar la MIB II que necesitan los agentes SNMP. A esta información se puede acceder desde Linux de manera sencilla con el comando nstat. Este comando forma parte del paquete iproute2 que debe estar instalado para poder hacer uso del mismo. Cuando se ejecuta nos muestra los valores de los contadores SNMP del kernel y de las interfaces de red.

root@menzoberrazan:~# nstat
#kernel
IpInReceives                    152295             0.0
IpForwDatagrams                 147066             0.0
IpInDelivers                    5228               0.0
IpOutRequests                   160352             0.0
IpFragFails                     1                  0.0
IcmpInErrors                    421                0.0
...

He cortado la salida del comando. Hay que tener en cuenta que:

  • Se muestran la diferencia entre ejecuciones del comando. Si se quiere saber los valores totales hay que usar la opción -a
  • No se muestra aquellos contadores cuyo valor es cero. Si se quieren mostrar hay que usar la opción -z
  • Si se quiere resetear esos contadorews usar la opción -r
  • Para que los datos estén en formato json y se pueda procesar por otras utilidades (como jq), cabe la posibilidad de usar la opción -j.
  • Si sólo queremos actualizar los acumulados y no imprimir resultados -n

Esta utilidad es de utilidad para ver cual es el rendimiento de nuestra pila TCP/IP y si hay errores. Por ejemplo los contadores UdpInErrors nos podría dar una pista de paquetes UDP que estamos recibiendo y que el sistema no está aceptando por carga o porque estamos bajo un situación de denegación de servicios. UdpRcvbufErrors nos puede indicar que el sistema está saturando la pila TCP/IP a mayor velocidad que la que esta puede procesar el tráfico entrante.

No hay comentarios: