Netdata es un sistema de monitoreo de código abierto potente y versátil que permite recolectar métricas en tiempo real de varios sistemas operativos, incluyendo Linux, Unix, Windows y macOS. También es compatible con tecnologías containerizadas como Docker y Kubernetes. En esta guía completa, te mostraremos paso a paso cómo instalar Netdata en un servidor AlmaLinux 9, junto con Nginx como proxy inverso para mayor seguridad y conveniencia.
Configuración de los repositorios
El primer paso es agregar y habilitar los repositorios necesarios para Netdata. Añadiremos los repositorios EPEL y Netdata, y habilitaremos el repositorio RHEL CRB (Code Ready Build) en tu servidor AlmaLinux. Sigue estos pasos:
- Instala el paquete
dnf-plugins-core
ejecutando el siguiente comando:
sudo dnf install dnf-plugins-core -y
- Agrega el repositorio EPEL y habilita el repositorio CRB en tu sistema con los siguientes comandos:
sudo dnf install epel-release sudo dnf config-manager --set-enabled crb
- Añade el repositorio Netdata a tu sistema ejecutando el siguiente comando:
sudo rpm -ivh https://repo.netdata.cloud/repos/stable/el/9/x86_64/netdata-repo-2-2.noarch.rpm
- Verifica los repositorios disponibles en tu máquina AlmaLinux con el siguiente comando:
sudo dnf repolist
Descarga e instalación de Netdata
Ahora que los repositorios están configurados, es hora de instalar Netdata. En este ejemplo, instalaremos Netdata con complementos adicionales para monitorear tu sistema y aplicaciones. Sigue los siguientes pasos:
- Instala Netdata y los complementos deseados ejecutando el siguiente comando:
sudo dnf install netdata netdata-plugin-{apps,chartsd,cups,ebpf,go,pythond,perf,freeipmi,slabinfo,systemd-journal}
- Inicia y habilita el servicio de Netdata con los siguientes comandos:
sudo systemctl start netdata sudo systemctl enable netdata
- Verifica el estado del servicio de Netdata ejecutando el siguiente comando:
sudo systemctl status netdata
- Abre temporalmente el puerto predeterminado de Netdata, el puerto 19999, ejecutando el siguiente comando:
sudo firewall-cmd --add-port=19999/tcp
- Visita la dirección IP de tu servidor seguida del puerto 19999 utilizando tu navegador web preferido (por ejemplo,
http://192.168.5.50:19999
). Si la instalación fue exitosa, deberías ver el panel de control de Netdata.
Configuración de Netdata
Después de instalar Netdata, es hora de configurarlo para que se ejecute utilizando el archivo de socket UNIX. Esto nos permitirá configurar Nginx como un proxy inverso para Netdata en el siguiente paso. Sigue estos pasos:
- Descarga el archivo de configuración de Netdata ejecutando el siguiente comando:
sudo wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
- Navega al directorio
/etc/netdata
y abre el archivonetdata.conf
ejecutando el siguiente comando:
cd /etc/netdata sudo ./edit-config netdata.conf
- Busca la sección
[web]
y descomenta la opciónbind to
. Cambia la opción de enlace predeterminada aUNIX socket unix:/var/run/netdata/netdata.sock
. La configuración debería verse así:
[web] bind to = unix:/var/run/netdata/netdata.sock
- Guarda y cierra el archivo.
- Reinicia Netdata para aplicar los cambios:
sudo systemctl restart netdata
- Verifica que Netdata se esté ejecutando como un socket UNIX ejecutando el siguiente comando:
ss -pl | grep netdata.sock
Instalación de Nginx como un proxy inverso
Ahora que Netdata está instalado y configurado, podemos proceder a instalar y configurar Nginx como un proxy inverso para Netdata. Esto proporcionará seguridad adicional y comodidad al permitirnos acceder a Netdata a través de Nginx. Sigue estos pasos:
- Instala Nginx ejecutando el siguiente comando:
sudo dnf install nginx
- Crea un directorio para los bloques de servidor y abre el archivo de configuración de Nginx ejecutando los siguientes comandos:
sudo mkdir -p /etc/nginx/server-blocks sudo nano /etc/nginx/nginx.conf
- Dentro de la sección
http {...}
, agrega la opcióninclude
de la siguiente manera:
http{ ... include /etc/nginx/server-blocks/*.conf; }
- Guarda y cierra el archivo.
- Crea un nuevo archivo de configuración de bloque de servidor de Nginx para el proxy inverso de Netdata ejecutando el siguiente comando:
sudo nano /etc/nginx/server-blocks/netdata.conf
- Inserta la siguiente configuración en el archivo. Reemplaza
netdata.shapehost.io
con tu nombre de dominio deseado:
upstream backend { server unix:/var/run/netdata/netdata.sock; keepalive 1024; } server { listen 80; server_name netdata.shapehost.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; } }
- Guarda y cierra el archivo.
- Genera un archivo de contraseña para la autenticación básica de Nginx ejecutando el siguiente comando. Reemplaza
alice
con tu nombre de usuario deseado e ingresa tu contraseña cuando se te solicite:
printf "alice:$(openssl passwd -apr1)" > /etc/nginx/.passwords
- Verifica la sintaxis de la configuración de Nginx ejecutando el siguiente comando:
sudo nginx -t
- Inicia y habilita Nginx con los siguientes comandos:
sudo systemctl start nginx sudo systemctl enable nginx
- Verifica que Nginx esté en funcionamiento ejecutando el siguiente comando:
sudo systemctl status nginx
- Abre los puertos HTTP y HTTPS en tu servidor AlmaLinux ejecutando el siguiente comando:
sudo firewall-cmd --add-service={http,https} --permanent sudo firewall-cmd --reload
- Verifica las reglas del firewall ejecutando el siguiente comando:
sudo firewall-cmd --list-all
- Visita el nombre de dominio de Netdata (por ejemplo,
http://netdata.shapehost.io
) en tu navegador web. Se te solicitarán las credenciales de autenticación básica de Nginx. Si todo está configurado correctamente, deberías ver el panel de monitoreo de Netdata.
Seguridad de Netdata con certificados SSL/TLS
Para asegurar tu instalación de Netdata, puedes generar certificados SSL/TLS utilizando Certbot. Si estás utilizando un nombre de dominio local, puedes generar certificados autofirmados. Si tienes un nombre de dominio real, sigue estos pasos:
- Instala Certbot y el complemento Certbot Nginx ejecutando el siguiente comando:
sudo dnf install certbot python3-certbot-nginx -y
- Genera certificados SSL/TLS de Let’s Encrypt ejecutando el siguiente comando. Reemplaza
netdata.shapehost.io
con tu nombre de dominio ytest@shapehost.io
con tu dirección de correo electrónico:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email test@shapehost.io -d netdata.shapehost.io
- Una vez completado el proceso, tu instalación de Netdata debería estar asegurada con HTTPS.
Ejemplo: Monitoreo de Nginx con Netdata
Ahora que Netdata está instalado, configurado y asegurado, exploremos cómo utilizarlo para monitorear Nginx. Este ejemplo demostrará cómo monitorear el servidor web Nginx utilizando Netdata, brindándote información detallada sobre su rendimiento y utilización de recursos. Sigue estos pasos:
- Crea un nuevo archivo de configuración para habilitar el módulo
stub_status
de Nginx ejecutando el siguiente comando:
sudo nano /etc/nginx/default.d/stub.conf
- Inserta la siguiente configuración para habilitar el módulo
stub_status
de Nginx y exponerlo en la URL/basic_status
:
location/basic_status{ stub_status; server_tokens on; }
- Guarda y cierra el archivo.
- Verifica la sintaxis de Nginx ejecutando el siguiente comando:
sudo nginx -t
- Reinicia Nginx para aplicar los cambios:
sudo systemctl restart nginx
- Verifica el módulo
stub_status
de Nginx ejecutando el siguiente comando:
curl http://localhost/basic_status
- Si la configuración es exitosa, deberías ver la información de estado de tu servidor web Nginx.
- Abre el panel de control de Netdata y navega a la sección de Nginx. Deberías poder ver información detallada de monitoreo sobre tu servidor Nginx.
En resumen, has logrado instalar Netdata en tu servidor AlmaLinux 9 y configurarlo con Nginx como proxy inverso. Siguiendo esta guía, has adquirido la capacidad de monitorear métricas del sistema y aplicaciones en tiempo real, lo que te permite tomar decisiones informadas sobre tu infraestructura.
Netdata, combinado con la potencia y confiabilidad de los servicios de Linux SSD VPS de Shape.host, te brinda una solución de monitoreo integral que garantiza el rendimiento y la seguridad óptimos de tus aplicaciones. Con Shape.host, puedes escalar tu infraestructura sin esfuerzo y enfocarte en lo que más importa: el éxito de tu negocio.