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:
Dejar una contestacion