Cómo monitorear el rendimiento del servidor CentOS 8/7 usando Netdata


Hay toneladas de herramientas de monitoreo que se utilizan para vigilar el rendimiento de los sistemas y enviar notificaciones en caso de que algo salga mal. Sin embargo, los pasos de instalación y configuración involucrados suelen ser tediosos.

Netdata es una herramienta de resolución de problemas y monitoreo en tiempo real de código abierto que solo requiere unos pocos pasos para instalarse. El repositorio de Git viene con un script automatizado que maneja la mayor parte del proceso de instalación y configuración y elimina la complicada configuración asociada con otras herramientas de monitoreo.

Netdata se ha vuelto muy popular desde su lanzamiento inicial en octubre de 2013. Recopila métricas en tiempo real, como la utilización del disco, y las muestra en tablas/gráficos fáciles de interpretar.

Ha dado grandes pasos y esto le ha valido un lugar en Forbes 2020 Cloud 100 estrellas en ascenso. Esta lista constituye las 100 principales empresas de nube privada.

En este artículo, veremos cómo puede instalar Netdata en CentOS 8/7 para monitorear en tiempo real, el rendimiento y el estado de los servidores y las aplicaciones.

Netdata admite las siguientes distribuciones:

  • CentOS 8 y CentOS 7
  • RHEL 8 y RHEL 7
  • Fedora Linux

Cómo instalar Netdata en CentOS Linux

1. Antes de sumergirnos en la instalación de Netdata, algunos paquetes de requisitos previos son obligatorios. Pero primero, actualice el sistema e instale el repositorio EPEL como se muestra.

$ sudo yum update
$ sudo yum install epel-release

2. A continuación, instale los paquetes de software necesarios como se muestra.

$ sudo yum install gcc make git curl zlib-devel git automake libuuid-devel libmnl autoconf pkgconfig findutils

3. Una vez que haya terminado con la instalación de los paquetes de requisitos previos, clone el repositorio git de Netdata como se muestra.

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

4. A continuación, navegue hasta el directorio Netdata y ejecute el script install-required-packages.sh. El script detecta su distribución de Linux e instala paquetes adicionales que son necesarios durante la instalación de Netdata.

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

5. Finalmente, para instalar Netdata, ejecute el script automatizado Netdata como se muestra a continuación.

$ sudo ./netdata-installer.sh

Tras la ejecución del script, se le informará dónde se almacenarán los archivos Netdata cruciales. Estos incluyen archivos de configuración, archivos web, complementos, archivos de base de datos y archivos de registro, por mencionar solo algunos.

6. Presione "ENTER" para comenzar con el proceso de instalación. Durante el proceso de instalación, se le darán algunos consejos sobre cómo acceder a Netdata en el navegador y administrar Netdata, como iniciarlo y detenerlo.

El script se ejecuta durante bastante tiempo haciendo todas las configuraciones y ajustes necesarios durante el proceso de instalación. En mi caso, tomó alrededor de 3-5 minutos y, una vez hecho, el resultado que se muestra debería ser una confirmación de que la instalación se realizó correctamente.

7. Una vez instalado, necesitamos tener el demonio Netdata en funcionamiento. Para comenzar, habilite el demonio Netdata en el arranque y verifique el estado invoque los siguientes comandos:

$ sudo systemctl start netdata
$ sudo systemctl enable netdata
$ sudo systemctl status netdata

8. De forma predeterminada, Netdata escucha en el puerto 19999 y puede confirmar esto usando el comando netstat como se muestra:

$ sudo netstat -pnltu | grep netdata

9. Necesitamos abrir este puerto en el firewall para tener acceso a Netdata a través de un navegador. Por lo tanto, ejecute los siguientes comandos:

$ sudo firewall-cmd --add-port=19999/tcp --permanent
$ sudo firewall-cmd --reload

10. Para acceder a Netdata, inicie su navegador y busque la URL como se muestra:

$ http://centos8-ip:19999/

Obtendrá un tablero que le brindará el rendimiento general del sistema en gráficos intuitivos y geniales.

Siéntase libre de echar un vistazo a diferentes gráficos haciendo clic en las métricas enumeradas en la barra lateral derecha. Por ejemplo, para echar un vistazo a los servicios de systemd en ejecución, haga clic en la opción "servicios de systemd" como se muestra.

Protección de Netdata con autenticación básica en CentOS

Como habrás observado de forma alarmante, Netdata no proporciona ninguna forma de autenticación. Esto implica que prácticamente cualquier persona puede acceder al panel de control siempre que obtenga la dirección IP de Netdata.

Afortunadamente, podemos configurar la autenticación básica utilizando el programa htpasswd y el servidor web Nginx como proxy inverso. Por tanto, vamos a instalar el servidor web Nginx.

$ sudo dnf install nginx

Con Nginx instalado, crearemos un archivo de configuración dentro del directorio /etc/nginx/conf.d. Sin embargo, no dude en utilizar el directorio de sitios disponibles si utiliza Nginx para otros fines además de Netdata.

$ sudo vim /etc/nginx/conf.d/default.conf

Agregue la siguiente configuración completa y asegúrese de cambiar las directivas server_ip y example.com con su propia dirección IP y nombre de servidor.

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

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    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://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

Para la autenticación de usuario, crearemos un nombre de usuario y contraseña para un usuario llamado tecmint usando la herramienta htpasswd y guardaremos las credenciales en el archivo netdata-access.

$ sudo htpasswd -c /etc/nginx/netdata-access tecmint

Proporcione la contraseña y confírmela.

A continuación, reinicie el servidor web Nginx para que los cambios entren en vigor.

$ sudo systemctl restart nginx

Para probar si la configuración fue correcta, continúe y busque la dirección IP de su servidor.

http://server-ip

A partir de entonces, tendrá acceso al panel de Netdata.

Y eso es todo, amigos. Lo guiamos a través de la instalación de la herramienta de monitoreo de Netdata en CentOS 8 y configuramos la autenticación básica para asegurar la herramienta de monitoreo. Envíanos un mensaje y cuéntanos cómo te fue.