Implementación y configuración de Netdata v1.16.1 [Debian9]

Netdata es una herramienta para visualizar y monitorear métricas en tiempo real, optimizada para acumular todo tipo de datos, como uso de CPU, actividad de disco, consultas SQL, visitas a un sitio web, etc. La herramienta está diseñada para visualizar el ahora en el mayor detalle posible, permitiendo al usuario obtener una visión de lo que está sucediendo y lo que acaba de suceder en su sistema o aplicación, siendo una opción ideal para solucionar problemas de desempeño en tiempo real. Su objetivo es brindar métricas en tiempo real.

Consiste en un demonio que, al ejecutarse, se encarga de obtener información en tiempo real, por segundo, y presentarla en un sitio web para su visualización y análisis. La presentación es interactiva y en tiempo real.

Se trata de una herramienta ligera, en su mayor parte escrita en C, la cual presenta bajos niveles de consumo durante su ejecución: alrededor de 2% de uso para un CPU de un único hilo y unos pocos megabytes de RAM.

Puede ejecutarse en cualquier kernel GNU/Linux para monitorear cualquier sistema o aplicación, siendo posible correrla en PCs, servidores o dispositivos embebidos Linux.
Las mejoras introducidas en la nueva versión se pueden ver en el siguiente link:

https://github.com/netdata/netdata/blob/master/CHANGELOG.md

1-DATOS:

  • netdata1 (netdata-master): 192.168.9.100/24
  • netdata2 (netdata-slave): 192.168.9.101/24

2-Pre-requisitos

apt-get install wget zlib1g-dev uuid-dev libuv1-dev liblz4-dev libjudy-dev libssl-dev libmnl-dev gcc make git autoconf autoconf-archive autogen automake pkg-config curl python uuid-runtime

Otros paquetes útiles para los plugins de Netdata (son opcionales):

apt-get install bash iproute2 python-yaml python-beanstalkc python-dnspython python-ipaddress python-mysqldb python-psycopg2 python-pymongo nodejs lm-sensors libmnl0 libmnl-dev netcat

El motor de la DB de Netdata puede ser habilitado cuando los siguientes paquetes son instalados:

apt-get install libuv1 liblz4-1 openssl

3-Instalando Netdata

#=============================================================

NOTA: El siguiente procedimiento describe cómo instalar Netdata, así como establecer una estructura de master-slave. Por medidas de seguridad, se recomienda implementar TLSv1.2 en la comunicación de streaming de las métricas entre el master y el slave. En esta guía se omite esta configuración de seguridad, y se explica el modo «Legacy». Usted puede no implementar cifrado entre el master y el slave si y sólo si usted tiene la gestión de la red desde un segmento aislado y seguro, como bien podría ser la subred de gestión, a la cual usted sólo accede via tunel VPN y la información de gestión entre el netdata-master (ubicado en la subred de gestión) y los netdata-salves (ubicados en los segmentos de GI y DMZ) se comunican a través de tunel de gestión, mediante soluciones de código abierto VPN, como OpenVPN o SoftEtherVPN

#=============================================================

Para instalar netdata en modo «offline» (sin conexión a internet) y especificamos manualmente el directorio de instalación del servidor, necesitaremos pasarle la opción «–disable-go» al script de instalacción «./netdata-installer.sh». La opción especificada evitara que se intente descargar e instalar de internet el paquete «go.d.plugin».

cd /opt/instaladores
wget https://codeload.github.com/netdata/netdata/zip/v1.16.1.zip
unzip netdata-1.16.1.zip
cd netdata-1.16.1/
./netdata-installer.sh --disable-go

Debe devolver algo como esto:

Preparing .environment file
Setting netdata.tarball.checksum to 'new_installation'

^
|.-. .-. .-. .-. . netdata
| '-' '-' '-' '-' real-time performance monitoring, done right!
+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


You are about to build and install netdata to your system.

It will be installed at these locations:

- the daemon at /usr/sbin/netdata
- config files in /etc/netdata
- web files in /usr/share/netdata
- plugins in /usr/libexec/netdata
- cache files in /var/cache/netdata
- db files in /var/lib/netdata
- log files in /var/log/netdata
- pid file at /var/run/netdata.pid
- logrotate file at /etc/logrotate.d/netdata

This installer allows you to change the installation path.
Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system >

Presionamos ENTER para continuar con la instalación. Al finalizar debe devolver algo como esto:

--- We are done! ---

^
|.-. .-. .-. .-. .-. . netdata .-. .-
| '-' '-' '-' '-' '-' is installed and running now! -' '-'
+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

enjoy real-time performance and health monitoring...

Verificamos que el servicio esté corriendo:

systemctl status netdata

5-Automatizando el servicio con el cron:

#=============================================================

NOTA: El script de instalación ofrece una opción para automatizar el servicio con la ejecución del mismo al iniciar el sistema; pero en este caso lo haremos nosotros mismos

#=============================================================

crontab -e

Agregar lo siguiente:

###########
# LEYENDA #
###########

# "m": minutos (0-59)
# "h": horas (0-23)
# "dow": dia de la semana (0-6)
# "dom": dia del mes (1-28/1-30/1-31)
# "mon": mes (1-12)
# "*": cualquiera
# ",": separa valores dentro de la misma variable (0,5,10)
# "-": define rangos dentro de la misma variable (0-5)
# <m> <h> <dom> <mon> <dow> <directorio del script>

###########
# NETDATA #
###########

@reboot /usr/sbin/netdata

Reiniciamos el cron:

service cron restart

Hasta aquí, usted cuenta con un servicio de Netdata para visualizar en los dashboard de la web, las métricas del servidor local, sin embargo, a continuación se explica cómo configurar una estructura master-slave.

4-Configurando Netdata-master

Generando el uudi para el API_KEY:

uuidgen

Debe devolver un ID con la misma cantidad de cifras que el siguiente ejemplo:

54ca94c6-715b-44d8-bda7-c2e27da08618

#=============================================================

NOTA: Las API keys son GUIDs aleatorias. Use el comando Linux «uuidgen» para generar una. Usted puede usar la misma API key para todos los nodos slave, o puede configurar una API para cada uno de ellos. Esto es su decisión. Se recomienda usar la misma API key para cada plantilla de nodo efímero que se tenga, entonces todas las réplicas del mismo nodo efímero stendrá exactamente la misma configuración.

#=============================================================

Editamos el fichero «/etc/netdata/stream.conf», para que acepte las métricas de todos los esclavos que usen la misma API. Si se usan varias «API keys», se puede agregar una sección por cada «API key»:

nano /etc/netdata/stream.conf

Agregamos lo siguiente (adaptando a su red):

[54ca94c6-715b-44d8-bda7-c2e27da08618]
# enable/disable this API key
enabled = yes

# one hour of data for each of the slaves
default history = 3600

# do not save slave metrics on disk
default memory = ram

# alarms checks, only while the slave is connected
health enabled by default = auto

Reiniciamos el nodo netdata-master:

systemctl restart netdata

Ahora el netdata-master se encuentra listo para recibir métricas.

5-Configurando Netdata-slave

Configuramos el «stream» para que el slave pueda enviar sus métricas hacia el master. Editamos el
fichero «/etc/netdata/stream.conf»:

nano /etc/netdata/stream.conf

Agregar lo siguiente (adaptando a su red):

[stream]
# stream metrics to another netdata
enabled = yes

# the IP and PORT of the master
destination = 192.168.9.100:19999

# the API key to use
api key = 54ca94c6-715b-44d8-bda7-c2e27da08618

Deshabilitamos la base de datos local, lo cual implica que se debe deshabilitar también el «health checks», ya que para su uso requiere de la base de datos local. Para ello, editamos el fichero «/etc/netdata/netdata.conf»:

nano /etc/netdata/netdata.conf

Agregar lo siguiente (adaptando a su red):

[global]
# disable the local database
memory mode = none

[health]
# disable health checks
enabled = no

6-Dashboard de Netdata v1.16.1

Visualización de las métricas deshabilitada en la web del netdata-slave:

Visualización de las métricas habilitada en la web del netdata-master:

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Franco Diaz Hurtado 27 artículos
Ing. Telecomunicaciones y Electrónica; 1er Especialista en Redes de ECASA Nivel Central

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*