NetData: ¿Qué está pasando en tu #Linux?

netdataNetData es una excelente herramienta de monitoreo en tiempo real de los recursos en un sistema Linux.

Muy fácil de instalar y utilizar, y en minutos puedes tener un panorama completo de qué está pasando en un sistema Linux en cuestión de recursos.

Si bien está pensado como una herramienta de monitoreo local, puede extenderse según la documentación oficial, mediante el uso del protocolo SNMP para monitoreo (Simple Network Management Protocol)

¿Qué puede monitorear Netdata?

Prácticamente todo lo que necesitamos está monitoreado. Aquí una lista de lo que veo en mi interfaz de monitoreo:

  • Estado general del sistema
    • CPU
    • Carga de procesamiento promedio
    • Uso de disco en operaciones de lectura y escritura
    • Uso de memoria RAM y Swap
    • Tráfico de red en IPv4 e IPv6
    • Gestión de procesos, nuevos, corriendo, cambios de contexto.
    • Interrupciones de CPU
    • Interrupciones de software
    • Entropía del sistema
  • Memoria
    • Fallos de página de memoria
    • Memoria utilizada por el núcleo
  • CPU
    • Utilización, core por core
    • Interrupciones, core por core
    • SoftIRQ, core por core
  • Firewalling con NetFilter
    • Tracking de conexiones de red
    • Conexiones nuevas, inválidas, errores, búsquedas.
  • Discos (por cada disco físico)
    • Ancho de banda de E/S a disco
    • Operaciones de E/S completadas
    • Operaciones de E/S en curso
    • Tiempo de utilización
    • Tiempo promedio de operaciones de E/S completadas
    • Ancho de banda consumido promedio en operaciones de E/S
    • Tiempos totales en operaciones de escritura y lectura
  • Networking IPv4
    • Conexiones, paquetes, errores y problemas de handshake en TCP
    • Paquetes y errores UDP
    • Paquetes y errores IP
    • Fragmentos IP enviados y reensamblados
    • Consumo de ancho de banda en tráfico broadcast y multicast
  • Networking IPv6
    • Paquetes IPv6
    • Multicasting, ancho de banda y paquetes
    • Mensajes de ICMPv6, routing, neighbor, etc
  • Interfaces de red (por cada interfaz de red)
    • Ancho de banda de tráfico saliente y entrante
    • Paquetes salientes y entrantes
  • Aplicaciones
    • Tiempo de CPU corriendo aplicaciones (usuario, sistema, kernel, etc).
    • Aplicaciones de lectura y escritura de disco
    • Cantidad de archivos abiertos
    • Memoria consumida por aplicaciones
    • Fallos de página de aplicaciones
    • Procesos e hilos de aplicación
    • Pipes por aplicación
    • Uso de swap y red por aplicación
  • Usuarios y grupos
    • Uso de CPU por usuario y grupo del sistema
    • Uso de disco por usuario y grupo
    • Uso de memoria por usuario y grupo
    • Uso de procesos por usuario y grupo
    • Uso de swap y red por usuario y grupo
  • Netdata monitoring
    • Uso de cpu usado por netdata
    • request web de netdata
    • tráfico de red de netdata
    • Uso de cpu en plugins de aplicación

Instalación

En algunas distros, como ArchLinux, NetData ya viene en los repositorios, y podremos instalarlo, por ejemplo, con:

sudo pacman -S netdata

En otras no, por ejemplo, en Debian y Fedora deberemos compilarlo desde los fuentes utilizando sus propias herramientas.

Para ello debemos instalar algunas dependencias necesarias:

Debian:

Fedora:

Luego deberemos clonar el repositorio oficial e instalar el paquete.

Para ello, podemos hacer lo siguiente:

Y luego, finalmente ejecutar el daemon:

sudo /usr/bin/netdata

Para matar el proceso, simplemente:

sudo killall netdata

Accediendo a la interfaz

Cabe destacar que NetData corre como daemon en nuestro sistema, en modo background, y la interfaz web se accede por defecto apuntando nuestro navegador a http://localhost:19999, donde 19999 es el puerto donde atiende el servicio http de netdata por defecto.

En el caso de necesitar otro puerto, porque ese esté ocupado, podremos correr el daemon pasándole un puerto específico mediante el modificador «-p»:

sudo /usr/bin/netdata -p 12345

Ahí podremos ver todos los tópicos mencionados anteriormente, mediante una interfaz web muy buena, y en tiempo real!

Aquí una captura estática de mi salida (clic en la imagen para ver la captura completa):

netdata_capture1

Según la documentación, también tiene soporte SNMP para poder monitorear dispositivos remotos utilizando dicho protocolo… será cuestión de probarlo… por el momento, solo lo utilizo para monitorear mi sistema local.

Por cierto, la documentación oficial la podemos encontrar en:

https://github.com/firehol/netdata/

Espero que les sirva!! Cualquier comentario es bienvenido, y por supuesto, son libres de compartir!

Hasta la próxima!