Netdata, navaja suiza para monitorizar el sistema

por | diciembre 4, 2017

Ya iba siendo hora de agrupar en una sola herramienta la monitorización de varios componentes del sistema. Netdata no sólo nos proporciona una interfaz HTML sencilla y clara en la que representar los datos, sino que también actúa como recolector de una gran cantidad de métricas de nuestro sistema y servidores adicionales como pueda ser Apache/Nginx o Bases de Datos como veremos a continuación.

Podemos utilizar el instalador genérico para cualquier distribución Linux tal y como comentan en la documentación oficial.

El instalador no debería lanzarse con sudo (en la documentación ya comentan do not sudo this command, it will do it by itself as needed) por lo que debemos configurar nuestro usuario para que utilice sudo. En una distro como Ubuntu por defecto solemos tener nuestro usuario con los permisos correspondientes. Sin embargo, en el caso de Debian personalmente no utilizo sudo por lo que para probar netdata tuve primero que instalaro con apt-get install sudo y posteriormente incluir mi usuario jota en el grupo sudo:

usermod -aG sudo jota

Para la instalación también necesitaremos curl, que instalaremos con apt-get curl o yum install curl según proceda.

Una vez cumplidos los requisitos anteriores lanzaremos el instalador genérico con:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

El script no tiene ningún misterio. Básicamente instala las dependencias necesarias y compila netdata desde código fuente para nuestra plataforma. Una vez finalizado el proceso veremos:

Durante la instalación también nos proporcionan información sobre cómo gestionar el servicio, scripts para desinstalar/actualizar y la URL de la utilidad (por defecto escucha en el puerto 19999):

Netdata puede monitorizar una gran cantidad de elementos y componentes de nuestro sistema: CPU, RAM, carga, interfaces de red, lectura/escritura en disco, nº de interrupciones, nº de procesos, etc… Adicionalmente también monitoriza gran cantidad de software adicional como pueden ser servidores web Apache/Nginx (métodos HTTP utilizados, códigos de respuesta HTTP, uso de workers, etc…), servidores de correo como Postfix, Varnish Cache, Tomcat, Bind…

Veamos algunos ejemplos:

También tenemos un sistema de alarmas que podremos personalizar con nuestros thresholds deseados, etc…:

Siendo una herramienta tan potente seguramente te preguntes si se pueden guardar todas esas métricas recolectadas para realizar consultas a largo plazo. Esto se planteó en su momento como Issue en el proyecto de GitHub y actualmente Netdata tiene la opción de ir volcando los datos de métricas en una base de datos como InfluxDB. Netdata actuaría por tanto como recolector, tal y como haríamos por ejemplo con Collectd. Posteriormente, estas métricas pueden ser visualizadas con Grafana. Tenéis información sobre los backends compatibles en la Wiki.

Podemos visitar varias demos oficiales para ver cómo funciona antes de decidirnos a instalar en nuestro sistema.

Tenéis el proyecto en GitHub para echar un vistazo más detallado y también descubrir todo aquello que podemos añadir a la monitorización (lm-sensors, PostgreSQL, MySQL, RabbitMQ, fail2ban etc…)