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

activar epel y 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

añadir repo

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

lista repo

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}

instalar netdata

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:

iniciar verificación netdata

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.

cuadro de mandos netdata

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:

archivo netdata sock

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

instalar 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

proxy inverso nginx

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

configuración de 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.

comprobar nginx

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.

configurar firewalld

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.

nginx autenticación básica

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:

netdata nginx proxy inverso

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

activar stub 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.

stub 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.

monitorización de nginx con netdata

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.

También te podría gustar...