Cómo instalar Netdata con Nginx en Alma Linux 8

Netdata es una herramienta de monitorización de servidores gratuita, de código abierto y en tiempo real que visualiza y monitoriza datos en tiempo real como el uso de CPU, uso de RAM, carga, uso de SWAP, uso de ancho de banda, uso de disco, etc. Ayuda al administrador del sistema a tener una visión general de lo que está ocurriendo y de lo que acaba de ocurrir en tu sistema o aplicación. Se puede instalar en cualquier servidor físico, Máquina Virtual, contenedor y dispositivo IoT. Proporciona una interfaz web interactiva para ver las métricas de tu servidor con soporte para varios almacenes de datos para almacenamiento persistente.

En este tutorial, te mostraremos cómo instalar la herramienta de monitorización Netdata en Alma Linux 8.

Requisitos previos

  • Un servidor que ejecute Alma Linux 8.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar la dependencia necesaria

En primer lugar, tendrás que instalar el repo EPEL y otras dependencias necesarias para instalar Netdata. Puedes instalarlas todas ejecutando el siguiente comando:

dnf install epel-release -y
dnf install git libuuid-devel autoconf automake pkgconfig zlib-devel curl findutils libmnl gcc make -y

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Instalar Netdata

Por defecto, Netdata no está incluido en el repositorio por defecto de Alma Linux. Así que tendrás que instalarlo desde la fuente.

En primer lugar, descarga la última versión de Netdata desde el repositorio Git utilizando el siguiente comando:

git clone --recurse-submodules https://github.com/netdata/netdata.git --depth=100

Una vez completada la descarga, cambia el directorio a netdata e instala todas las dependencias necesarias utilizando el siguiente comando:

cd netdata
./packaging/installer/install-required-packages.sh --non-interactive --dont-wait netdata

A continuación, instala otros paquetes con el siguiente comando:

dnf --enablerepo=powertools install libuv-devel

A continuación, ejecuta el script de instalación de Netdata para iniciar la instalación.

./netdata-installer.sh

Obtendrás la siguiente salida:

 --- real-time performance monitoring, done right! --- 

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

  The build process will use /tmp for
  any temporary files. You can override this by setting $TMPDIR to a
  writable directory where you can execute files.

  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.


  NOTE:
  Anonymous usage stats will be collected and sent to Netdata.
  To opt-out, pass --disable-telemetry option to the installer or export
  the environment variable DISABLE_TELEMETRY to a non-zero or non-empty value
  (e.g: export DISABLE_TELEMETRY=1).

Press ENTER to build and install netdata to your system >                                                                   

Pulsa la tecla Intro para instalar Netdata en tu sistema. Una vez instalado Netdata, obtendrás la siguiente salida:

Setting netdata.tarball.checksum to 'new_installation'

 --- We are done! --- 

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata  .-.   .-.   .-.   .-.   .-.   .-
  |   '-'   '-'   '-'   '-'   '-'               '-'   '-'   '-'   '-'   '-'   
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

 --- is installed and running now! --- 
  enjoy real-time performance and health monitoring...
systemctl start netdata
systemctl enable netdata

Ahora puedes comprobar el estado de Netdata utilizando el siguiente comando.

systemctl status netdata

Obtendrás la siguiente salida:

? netdata.service - Real time performance monitoring
   Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-03-19 04:22:22 UTC; 4min 16s ago
 Main PID: 58935 (netdata)
    Tasks: 50 (limit: 11412)
   Memory: 103.1M
   CGroup: /system.slice/netdata.service
           ??58935 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
           ??58938 /usr/sbin/netdata --special-spawn-server
           ??59063 /usr/libexec/netdata/plugins.d/apps.plugin 1
           ??59064 /usr/libexec/netdata/plugins.d/ebpf.plugin 1
           ??59065 /usr/libexec/netdata/plugins.d/go.d.plugin 1

Mar 19 04:22:22 linux systemd[1]: Starting Real time performance monitoring...
Mar 19 04:22:22 linux systemd[1]: Started Real time performance monitoring.
Mar 19 04:22:22 linux netdata[58935]: CONFIG: cannot load cloud config '/var/lib/netdata/cloud.d/cloud.conf'. Running with internal defaults.
Mar 19 04:22:22 linux netdata[58935]: 2022-03-19 04:22:22: netdata INFO  : MAIN : CONFIG: cannot load cloud config '/var/lib/netdata/cloud.d/>
Mar 19 04:22:22 linux netdata[58935]: 2022-03-19 04:22:22: netdata INFO  : MAIN : Found 0 legacy dbengines, setting multidb diskspace to 256MB
Mar 19 04:22:22 linux netdata[58935]: 2022-03-19 04:22:22: netdata INFO  : MAIN : Created file '/var/lib/netdata/dbengine_multihost_size' to >
Mar 19 04:22:22 linux netdata[58935]: Found 0 legacy dbengines, setting multidb diskspace to 256MB
Mar 19 04:22:22 linux netdata[58935]: Created file '/var/lib/netdata/dbengine_multihost_size' to store the computed value
Mar 19 04:22:23 linux ebpf.plugin[59064]: Does not have a configuration file inside `/etc/netdata/ebpf.d.conf. It will try to load stock file.
Mar 19 04:22:23 linux ebpf.plugin[59064]: Cannot read process groups configuration file '/etc/netdata/apps_groups.conf'. Will try '/usr/lib/n>

En este momento, Netdata se está ejecutando y escucha en el puerto 19999. Puedes comprobarlo con el siguiente comando:

ss -antpl | grep netdata

Obtendrás la siguiente salida:

LISTEN 0      128        127.0.0.1:8125       0.0.0.0:*    users:(("netdata",pid=58935,fd=29))
LISTEN 0      128          0.0.0.0:19999      0.0.0.0:*    users:(("netdata",pid=58935,fd=6)) 
LISTEN 0      128            [::1]:8125          [::]:*    users:(("netdata",pid=58935,fd=28))
LISTEN 0      128             [::]:19999         [::]:*    users:(("netdata",pid=58935,fd=7))

Cuando hayas terminado, puedes pasar al siguiente paso.

Configurar el cortafuegos

Si estás utilizando el cortafuegos firewalld en tu sistema, entonces tendrás que permitir los puertos 19999 y 80 a través del firewalld. Puedes permitirlos con el siguiente comando:

firewall-cmd --permanent --add-port=19999/tcp
firewall-cmd --permanent --add-port=80/tcp

A continuación, recarga el demonio firewalld para aplicar los cambios:

firewall-cmd --reload

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Nginx como Proxy Inverso para Netdata

Siempre es una buena idea instalar y configurar Nginx como proxy inverso para acceder a Netdata. En primer lugar, instala el servidor Nginx utilizando el siguiente comando:

dnf install nginx httpd-tools -y

A continuación, genera un archivo de contraseñas con el siguiente comando:

htpasswd -c /etc/nginx/.htpasswd netadmin

Establece tu contraseña de administrador como se muestra a continuación:

New password: 
Re-type new password: 
Adding password for user netadmin

A continuación, crea un archivo de configuración de host virtual Nginx con el siguiente comando:

nano /etc/nginx/conf.d/netdata.conf

Añade las siguientes líneas:

upstream backend {
server 127.0.0.1:19999;
keepalive 64;
}

server {
listen 80;
server_name netdata.example.com;

    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;
    auth_basic "Private Property";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
}

Guarda y cierra el archivo y, a continuación, comprueba que Nginx no contenga ningún error de configuración de sintaxis:

nginx -t

Si todo va bien, obtendrás la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicia el servicio Nginx para aplicar los cambios de configuración:

systemctl restart nginx

También puedes comprobar el estado de Nginx con el siguiente comando:

systemctl status nginx

Deberías ver la siguiente salida:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-03-19 04:28:44 UTC; 4s ago
  Process: 61706 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 61705 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 61703 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 61708 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.7M
   CGroup: /system.slice/nginx.service
           ??61708 nginx: master process /usr/sbin/nginx
           ??61709 nginx: worker process

Mar 19 04:28:44 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 19 04:28:44 linux nginx[61705]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 19 04:28:44 linux nginx[61705]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 19 04:28:44 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Mar 19 04:28:44 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

Una vez que hayas terminado, puedes continuar con el siguiente paso.

Accede al Panel de Netdata

Ahora, abre tu navegador y accede al panel de Netdata utilizando la URL http://your-server-ip. Deberías ver la página de inicio de sesión de Netdata:

Netdata Entrar

Introduce tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de Netdata en la página siguiente:

Panel de Netdata

Conclusión

Enhorabuena! has instalado correctamente la herramienta de monitorización Netdata en Alma Linux 8. Ahora puedes empezar a monitorizar las métricas de tu servidor en tiempo real desde el panel de Netdata. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...