Monitorear el rendimiento de nuestro sistema en Linux con Netdata (front-end Web)

netdata-img

Existen muchas herramientas libres para supervisar los recursos de nuestro hardware. Una gran parte de los usuarios nos contentamos con aquellas sencillas de interpretar; y por qué no decirlo, en la mayoría de los casos con la consola nos basta.

Algunas de las herramientas más utilizadas:

  • Top
  • Htop
  • Nmon (muy completo)
  • Glances

En este caso me voy a saltear las típicas —pero muy efectivas— herramientas de consola y también de las aplicaciones gráficas como: Monitor del Sistema de Gnome y KDE para mostrarles otra alternativa: Netdata.

netdata-img-01

 

netdata-img-03

¿Qué hace Netdata?

En pocas palabras, monitoriza los recursos de nuestro sistema en tiempo real, y representa toda la información de forma detallada en nuestro navegador web. A diferencia de las herramientas mencionadas, esta como tal no nos permite detener/matar procesos, solo es información de lo que ocurre actualmente en nuestro sistema.

No obstante dicha información puede ser contemplada e interpretada muy fácilmente gracias a la calidad de los gráficos que nos provee, todo bien estructurado en una sola página con elementos seleccionables.

Netdata entre otras cosas nos permite:

  • Seleccionar leyendas de forma arbitraria (una/varias/todas) utilizando las teclas Ctrl o Shift + botón izquierdo del mouse para múltiple selección.
  • Arrastrar el gráfico (atrás/adelante) para ver registros históricos.
  • Seleccionar zonas (picos) en los gráficos para ver su resultado. Por ejemplo si vemos un pico muy elevado en sensores de temperatura podremos saber cual fue la temperatura exacta en ese momento además de datos complementarios (horario, aplicaciones en ejecución, etc.) colocando el puntero sobre la zona o pico a evaluar.
  • Podemos aumentar o disminuir el zoom de los gráficos, ya sea de forma sincronizada (todos) o individual. Cuando más líneas de datos sean representadas (dibujadas) en el gráfico mayor será el consumo de nuestra CPU.
  • Actualización de los datos en paralelo o secuencial: el primero nos actualiza toda la información en todos los gráficos al mismo tiempo, mientras que el segundo actualiza uno tras otro. Es conveniente utilizar este último cuando nuestro equipo es antiguo.
  • Sincronización de los datos: al igual que actualización, esto puede hacerse de forma paralela o a-sincrónica (secuencial).
Netdata: Comprobando un pico alto en el rendimiento de la CPU

Netdata: comprobando un pico alto en el rendimiento de la CPU

Netdata: seleccionando una sola dimensión (X)

Netdata: seleccionando una sola dimensión (X) del resto de las aplicaciones

Dentro de las características de Netdata podemos encontrar:

  • Rapidez y eficiencia. Escrito en C nos ofrece una lectura rápida —no requiere Flash plugin—.
  • No requiere ninguna configuración adicional. Solo instalar y la aplicación detectará todo de forma automática.
  • No requiere dependencias. Utiliza su propio servidor web para los archivos web estáticos y su API web.
  • Perzonalización de temas (claro – oscuro).
  • Extensible.
  • Se puede incrustar (embedded) en otra página web.

Podemos monitorear una gran cantidad de parámetros tales como:

  • Uso de CPU, frecuencia, interrupciones, softirqs (total y por cada núcleo).
  • RAM, swap, uso de memoria del kernel.
  • Discos (Por disco: E/S, operaciones, reserva, utilización, espacio, etc.).
  • Interfaces de red (por interfaz: ancho de banda, paquetes, errores, caídas, etc).
    • IPv4, IPv6.
  • Servidores web.
    • Apache
    • Nginx
  • Sensores de temperatura.
  • Aplicaciones.
  • Usuarios y grupo de usuarios.
  • MySQL.
  • Grupos de Control de Linux (contenedores), systemd, lxc, docker, etc.
  • Y mucho más.

Puedes ver la lista completa en inglés en el siguiente fichero:

monitor-netdata.txt

Netdata: comprobando un pico alto de temperatura

Netdata: comprobando un pico alto de temperatura

Netdata - Tema claro

Netdata – Tema claro

Los paquetes que se listan para descargar en este artículo están desfasados. Ver el siguiente enlace para descargar Netdata mas actualizado.

Instalación

Arch Linux:

sudo pacman -S netdata

Gentoo:

sudo emerge --ask netdata

 

Para el resto de las distribuciones se puede realizar utilizando:

  1. Instalador automático (no requiere permisos de root)
    • básica (monitoreo sin mysql/mariadb, llamadas, sensores de hardware y SNMP)
    • completa (control total de lo que se puede monitorear)
  2. Instalación manual

Instalador automático

Debería cubrir las siguientes distribuciones y sus derivadas:

  • Arch Linux
  • Gentoo Linux
  • Debian GNU/Linux (incluyendo Ubuntu, Mint)
  • Red Hat Enterprise Linux (incluyendo Fedora, CentOS)
  • SuSe Linux (incluyendo openSUSE)

En un terminal ejecutar:

curl -Ss 'https://raw.githubusercontent.com/firehol/\
netdata-demo-site/master/install-required-packages.sh' >/tmp/\
kickstart.sh && bash /tmp/kickstart.sh netdata

Monitoreo completo:

curl -Ss 'https://raw.githubusercontent.com/firehol/\
netdata-demo-site/master/install-required-packages.sh' >/tmp/\
kickstart.sh && bash /tmp/kickstart.sh netdata-all

Instalación manual

Instalar las siguientes dependencias:

Debian/Ubuntu

apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git \
autoconf autoconf-archive autogen automake pkg-config

Fedora/CentOS/RedHat/openSUSE

yum install zlib-devel libuuid-devel libmnl-devel gcc make git \
autoconf autoconf-archive autogen automake pkgconfig

Se recomiendan los siguientes paquetes aunque no son necesarios: curl, jq, nodejs

Instalar Netdata

Bajamos la aplicación de GitHub:

git clone https://github.com/firehol/netdata.git --depth=1

Corremos el script netdata-installer.sh el cual compilará, instalará y dejará corriendo Netdata

cd netdata
sudo ./netdata-installer.sh

 

También puedes bajar la aplicación de aquí:

netdata.zip

 unzip netdata.zip && cd netdata && sudo ./netdata-installer.sh
Si no queremos que nos instale netdata en el directorio por defecto podemos cambiarlo mediante la siguiente instrucción ./netdata-installer.sh --install /opt. Esto instalará la aplicación en la carpeta /opt/netdata y la configuración en /etc/netdata/netdata.conf

netdata-img-12

 

Para comprobar que Netdata está corriendo ejecutar el siguiente comando:

sudo systemctl status netdata

Si por alguna razón no se está ejecutando hacemos lo siguiente:

## Habilitar Netdata en el inicio
sudo systemctl enable netdata

## Iniciar Netdata
sudo systemctl netdata start

Finalmente para acceder a los gráficos en el navegador web escribir en la barra de direcciones de tu navegador favorito:

http://127.0.0.1:19999/

 

Para detenerlo:

sudo killall netdata

o

sudo systemctl netdata stop

 

Desinstalar Netdata

Cuando ejecutamos el script de instalación automáticamente genera un script de desinstalación. En caso de usar esta opción ejecutamos:

## Ubicación de nuestra aplicación
cd /ruta/a/netdata

./netdata-uninstaller.sh --force 

¿Te resultó interesante? Compártelo ...



Percaff_TI99

Publicado por Percaff_TI99

http://gutl.jovenclub.cu/ » Forma parte de GUTL desde el 10 agosto, 2013. Amante de la ciencia y tecnología en general. Usuario de GNU/Linux desde hace varios años.

Este artículo tiene 18 comentarios

  1. Adiós phpsysinfo, bienvenido NetData! Interesante, es una lástima no haberlo tenido antes, esto me hubiera venido de perlas hace 3 años atrás… Gracias por el aporte…

  2. Excelente!!, tenia en planes hacer una busqueda de una herramienta así, gracias a este articulo se por donde empezar.

  3. @linuXgirl, @Koratsuki, @Yosbel Marin, @Rafael Castro:

    Gracias a ustedes por comentar. Me alegra que les haya resultado de interés.

    Saludos.

    • @Percaff_TI99 et al:

      Yo estuve buscando[hace un tiempo] una herramienta que monitoreara el tráfico de red, sistema, etc y en aquel entonces phpsysinfo fue la opción, aunque me parecia «de palo», resolvió mi problema, pero esta ayer la instalé en casa y al ver TAL nivel de información, se me aguaron los ojos… Vaya que los grafiquitos están rechulos…

      Mi calificación: MUY BUENA! Excelente aplicación.

      • Cada vez que leo algún artículo sobre como montar un servidor Web casi siempre aparece phpsysinfo como una herramienta a tener en cuenta. Yo no soy administrador de red ni nada parecido, pero no es de extrañarse que phpsysinfo es el caballito de batalla de muchos administradores.

    • Monitorix es el que estoy viendo actualmente para un artículo más adelante, concuerdo contigo en que no es de lo más elegante -aunque a mí particularmente me gusta mucho- y también es muy completo, a golpe de vista se puede controlar el sistema. Monitorix además de lo que ofrece Netdata contempla: Fail2ban, Raspberry PI, memcached, Libvirt, NVIDIA temp. etc.

      En Netdata se puede extender el monitoreo mediante plugins creados por el usuario en cualquier lenguaje del sistema que recopilan datos de cualquier fuente, lo que lo hace muy versátil.

      «pero creo que htop es más lightweight e igualmente satisface mis necesidades»:

      Mis primeras líneas en el artículo aluden a ello, sin embargo hay usuarios que manejan mucha información y es ahí dónde herramientas gráficas como estas pueden agilizar la tarea administrativa.

      Saludos.

      • No se si es la misma persona o no, pero en caso de serlo también le hizo un comentario tipo «troll» a _Neji en su blog.
        OT: Por cierto no se cual de los dos esta mas perdido, o tu o Maikel

        Saludos.

        • Mucho trabajo dude! Pero aún seguimos por acá, yo entro a diario. Ambos estamos de lo mas ‘simios’ :D. Deja ver si el viene por Holguín y luego subimos fotos. Thx!

        • Trabajos family, somos hombres de trabajo… LOL
          Deja ver si hago el time para ir a holguin…
          Luego vere si publico alguito por GUTL, gracias a todos por no dejar morir el portal

        • Si, últimamente están «afluyendo» muchos «troles» por allá por DesdeAbreus. Imagino que tenga que ver por el cambio a temas mas «singulares» que los relacionados con SWL jajaja. Sobre el vikingo y el canelo mejor los «dejamos reposar un poco«. Que GUTL no tiene por que depender de un solo miembro ¿no?

          • No te me pongas celoso socio, jaja, tambien se te echaba de menos, y pon mano dura con los «troles» esos!!!

          • Hola a todos, excelente , pregunto si se podría incorporar mas servidores a una sola pagina de netdata

          • Hola @fray:

            Se puede hacer pero requiere de la creación de dashboards personalizados. También es posible utilizando Atlassian Confluence dashboards o alguno similar.

            Aquí dejo un pdf con instrucciones sobre este tema -para tener una idea-, además de un archivo html.tv que se utiliza de ejemplo en dichas instrucciones. (https://gutl.jovenclub.cu/wp-content/uploads/2019/04/custom-dashboardpdf.zip)

            Saludos.

            P.D. En estos días intentaré subir una versión actualizada de Netdata.

Los comentarios están cerrados.