Cómo instalar el software de monitorización Netdata en AlmaLinux 9
Recopila métricas del sistema y supervisa tus aplicaciones con Netdata. Netdata es un sistema de supervisión de código abierto, extensible y en tiempo real para servidores, contenedores y aplicaciones.
Netdata puede recopilar métricas de varios sistemas operativos, como Linux, Unix, Windows y macOS. Además, es compatible con tecnología en contenedores como Docker y Kubernetes.
Sigue nuestra guía para instalar Netdata con Nginx como proxy inverso en el servidor AlmaLinux 9.
Requisitos previos
Para empezar, asegúrate de que tienes lo siguiente:
- Un servidor AlmaLinux 9.
- Un usuario no root con privilegios de administrador.
- Un SELinux con modo permisivo.
Configuración de repositorios
Antes de comenzar la instalación, añadirás y habilitarás algunos repositorios para Netdata. Añadirás los repositorios EPEL y Netdata, y después habilitarás el repositorio RHEL crb (Code Ready Build) en tu servidor AlmaLinux.
Para empezar, ejecuta el siguiente comando para instalar el paquete dnf-plugins-core.
sudo dnf install dnf-plugins-core -y
Ahora, ejecuta el siguiente comando para añadir el repositorio EPEL y habilitar el repositorio CRB en tu sistema. Introduce y cuando se te solicite para continuar.
sudo dnf install epel-release sudo dnf config-manager --set-enabled crb
A continuación, ejecuta el siguiente comando para añadir el repositorio Netdata a tu sistema. En este caso, utilizarás el repositorio Netdata 2.2.
sudo rpm -ivh https://repo.netdata.cloud/repos/stable/el/9/x86_64/netdata-repo-2-2.noarch.rpm
Una vez que hayas terminado, comprueba los repositorios disponibles en tu máquina AlmaLinux utilizando el siguiente comando.
sudo dnf repolist
La salida que deberías recibir es la siguiente
Descarga e instalación de Netdata
Ahora que has configurado los repositorios, vamos a empezar a instalar Netdata.
En este ejemplo, instalarás Netdata con complementos adicionales para supervisar tu sistema y tus aplicaciones.
Ejecuta el siguiente comando dnf para instalar Netdata. Introduce y para aceptar la clave GPG y proceder con la instalación, luego espera a que termine.
Puede que no necesites todos los plugins de Netdata, asegúrate de ajustar la instalación de los paquetes.
sudo dnf install netdata netdata-plugin-{apps,chartsd,cups,ebpf,go,pythond,perf,freeipmi,slabinfo,systemd-journal}
Ahora, una vez que hayas instalado Netdata, ejecuta el siguiente comando para iniciar y habilitar el servicio netdata.
sudo systemctl start netdata sudo systemctl enable netdata
A continuación, verifica el servicio netdata ejecutando el comando siguiente.
sudo systemctl status netdata
Si tu instalación se ha realizado correctamente, el servicio netdata debería estar activo (ejecutándose ) como se muestra a continuación:
Por último, abre el puerto por defecto 19999 de Netdata mediante el siguiente comando.
En este ejemplo, añadirás el puerto 19999 temporalmente porque vas a configurar Nginx como proxy inverso. Lo haremos en la siguiente sección.
sudo firewall-cmd --add-port=19999/tcp
Visita la dirección IP de tu servidor seguida del puerto 19999 (es decir: http://192.168.5.50:19999) utilizando tu navegador web preferido.
Si todo va bien, deberías ver el panel de Netdata como el siguiente.
Configurar Netdata
Tras instalar Netdata, deberás configurarlo para que se ejecute en el archivo UNIX sock. Esto te permitirá configurar Nginx como proxy inverso para Netdata, lo que harás en el siguiente paso.
Para iniciar la configuración de Netdata, ejecuta el siguiente comando para descargar la configuración de Netdata a /etc/netdata/netdata.conf.
wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
Desplázate al directorio /etc/netdata y abre la configuración por defecto netdata.conf mediante el comando siguiente.
cd /etc/netdata sudo ./edit-config netdata.conf
Busca la sección [web] y descomenta la opción bind to. A continuación, cambia la opción bind por defecto a UNIX socket unix:/var/run/netdata/netdata.sock.
[web] bind to = unix:/var/run/netdata/netdata.sock
Guarda y cierra el archivo cuando hayas terminado.
A continuación, reinicia Netdata para aplicar tus cambios ejecutando el siguiente comando.
sudo systemctl restart netdata
En este momento, Netdata debería estar ejecutándose como un socket UNIX en unix:/var/run/netdata/netdata.sock.
Verifica el socket UNIX de Netdata utilizando el comando ss que aparece a continuación.
ss -pl | grep netdata.sock
Si la configuración es correcta, deberías obtener lo siguiente:
Instalación de Nginx como proxy inverso
Llegados a este punto, ya has instalado Netdata en el servidor AlmaLinux 9. En el siguiente paso, instalarás y configurarás Nginx como proxy inverso para Netdata.
Además, es posible que necesites un nombre de dominio para esto, puedes utilizar un subdominio o un nombre de dominio local.
Instalar Nginx
Para empezar, instala Nginx utilizando el siguiente comando dnf. Escribe y para proceder a la instalación.
sudo dnf install nginx
Una vez instalado Nginx, ejecuta el siguiente comando para crear un directorio de bloques de servidor /etc/nginx/server-blocks y abre la configuración de Nginx /etc/nginx/nginx.conf.
mkdir -p /etc/nginx/server-blocks sudo nano /etc/nginx/nginx.conf
Dentro de la sección http {…}, añade la opción include… que aparece a continuación.
http { ... include /etc/nginx/server-blocks/*.conf; }
Guarda y cierra el archivo cuando hayas terminado.
Añadir la configuración del bloque del servidor
A continuación, crea un nuevo bloque de servidor Nginx para el proxy inverso Netdata /etc/nginx/server-blocks/netdata.conf utilizando el siguiente comando del editor nano.
sudo nano /etc/nginx/server-blocks/netdata.conf
Introduce la siguiente configuración y asegúrate de introducir tu nombre de dominio en el parámetro server_name. En este caso, utilizaremos el dominio netdata.hwdomain.io.
Además, asegurarás Netdata mediante el módulo auth_basic con el archivo /etc/nginx/.passwords.
upstream backend { # the Netdata server server unix:/var/run/netdata/netdata.sock; keepalive 1024; } server { # nginx listens to this listen 80; # the virtual host name of this server_name netdata.hwdomain.io; auth_basic "Protected"; auth_basic_user_file /etc/nginx/.passwords; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://backend; proxy_http_version 1.1; proxy_pass_request_headers on; proxy_set_header Connection "keep-alive"; proxy_store off; } }
Cuando hayas terminado, guarda el archivo y sal del editor.
Ahora ejecuta el siguiente comando para generar el archivo de contraseñas /etc/nginx/.passwords.
Asegúrate de cambiar el usuario alice por tu nombre de usuario. A continuación, introduce tu contraseña y repite la operación.
printf "alice:$(openssl passwd -apr1)" > /etc/nginx/.passwords
Ahora ejecuta el siguiente comando para verificar la sintaxis de tu Nginx. Si no se produce ningún error, deberías obtener la salida‘syntax is ok – test is successful’.
sudo nginx -t
A continuación, inicia y habilita Nginx utilizando el siguiente comando.
sudo systemctl start nginx sudo systemctl enable nginx
Una vez iniciado Nginx, verifícalo ejecutando el siguiente comando.
sudo systemctl status nginx
Si todo va bien, deberías recibir la salida active (running), que confirma que Nginx se está ejecutando.
Abre los puertos HTTP y HTTPS
Abre los puertos HTTP y HTTPS en tu servidor AlmaLinux para permitir el acceso a tu instalación Netdata. Ejecuta el siguiente comando para hacerlo.
sudo firewall-cmd --add-service={http,https} --permanent sudo firewall-cmd --reload
Ahora verifica las reglas firewalld utilizando el siguiente comando.
sudo firewall-cmd --list-all
Asegúrate de que tienes disponibles los servicios HTTP y HTTPS en la lista de servicios de firewalld. Si no es así, repite el comando anterior.
Por último, visita tu nombre de dominio Netdata, como http://netdata.hwdomain.io, utilizando tu navegador web preferido.
Introduce tu usuario y contraseña cuando se te solicite la autenticación básica de Nginx.
Si la instalación de Nginx se ha realizado correctamente, deberías ver el panel de control de supervisión de Netdata como el siguiente:
Proteger Netdata con certificados SSL/TLS
Después de configurar Nginx, generarás certificados SSL/TLS para asegurar tu instalación.
Si utilizas un nombre de dominio local, puedes generar certificados autofirmados. Pero si utilizas el nombre de dominio real, genera certificados SSL/TLS siguiendo estos pasos:
Ejecuta el siguiente comando para instalar el plugin Certbot y Certbot Nginx en tu sistema. Introduce y para proceder a la instalación.
sudo dnf install certbot python3-certbot-nginx -y
Ahora ejecuta el siguiente comando certbot para generar certificados SSL/TLS desde Letsencrypt. Asegúrate de modificar el nombre de dominio y la dirección de correo electrónico antes de ejecutar este comando.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d netdata.hwdomain.io
Una vez finalizado el proceso, tu Netdata debería estar protegida con HTTPS. Has generado certificados SSl/TLS desde Letsencrypt e implementado HTTPS en tu bloque de servidores Nginx mediante el plugin Certbot Nginx.
Ejemplo: Monitorización de Nginx con Netdata
Si has seguido hasta aquí, habrás terminado tu instalación de Netdata con Nginx como proxy inverso y configurado HTTPS. Ahora aprenderás la monitorización básica con Netdata.
En este caso, configurarás la monitorización del servidor web Nginx a través de Netdata, para que puedas tener una visión más amplia de cómo monitorizar otros servicios y aplicaciones.
Habilitar el stub_status de Nginx
Crea una nueva configuración /etc/nginx/default.d/stub. conf utilizando el siguiente comando del editor nano.
sudo nano /etc/nginx/default.d/stub.conf
Inserta la siguiente configuración para habilitar el módulo stub_status de Nginx. Esto expondrá el stub_status de Nginx bajo la URL /basic_status.
location /basic_status { stub_status; server_tokens on; }
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando para verificar la sintaxis de Nginx. A continuación, reinicia Nginx para que surtan efecto tus cambios.
sudo nginx -t sudo systemctl restart nginx
Ahora ejecuta el siguiente comando curl para verificar el módulo stub_status de Nginx.
curl http://localhost/basic_status
Si tu configuración es correcta, deberías ver el estado de tu servidor web Nginx.
Habilitar el plugin de Netdata para monitorizar Nginx
Ve al directorio /etc/netdata y abre la configuración del plugin para la monitorización de Nginx. El plugin de Netdata para la monitorización de Nginx forma parte de los plugins de Go, visita la lista de plugins de Netdata para obtener más información.
cd /etc/netdata sudo ./edit-config go.d/nginx.conf
Asegúrate de que la url de configuración: http://127.0.0.1/stub_status está disponible, o puedes crearla manualmente. Esto indicará a Netdata que supervise Nginx a través de la URL: http: //127.0.0.1/stub_status.
jobs: - name: local url: http://127.0.0.1/stub_status
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando para reiniciar Netdata y aplicar tus cambios.
sudo systemctl restart netdata
Ahora puedes probar o someter a una prueba de estrés a tu servidor web Nginx utilizando el siguiente comando. El ab o Apache Benchmark forma parte de httpd-tools, asegúrate de instalarlo en tu máquina.
ab -n 50000 -c 500 http://localhost/
Vuelve al panel de datos de Netdata y haz clic en el menú Nginx de la izquierda. Si tu configuración es correcta, deberías ver detalles de la monitorización de Nginx como los siguientes.
Conclusión
Para terminar, has completado la instalación de la solución de monitorización Netdata en el servidor AlmaLinux 9. Has instalado Netdata con Nginx como proxy inverso y has asegurado Netdata con certificados SSL/TLS.
Además, también has aprendido el uso básico del plugin de Netdata para monitorizar tus aplicaciones.
A partir de aquí, comprueba la lista de Netdata disponibles para monitorizar tus aplicaciones.