Búsqueda de sitios web

Cómo monitorear el rendimiento de Ubuntu usando Netdata


Netdata es una herramienta de resolución de problemas y monitoreo en tiempo real gratuita y de código abierto para servidores en la nube, contenedores, aplicaciones e infraestructura de TI local. Proporciona métricas del sistema altamente granulares y en tiempo real, como rendimiento de la CPU, utilización de RAM y disco, y estadísticas de ancho de banda, por mencionar algunas.

Además, Netdata también proporciona visualizaciones métricas interactivas a las que se puede acceder desde un navegador web junto con alarmas inteligentes que ayudan a solucionar fallas del sistema.

La tecnología de vanguardia y la popularidad de Netdata le han valido un lugar entre las 100 estrellas en ascenso de la nube de Forbes en 2020, lo cual no es poca cosa. De hecho, al momento de escribir esta guía, ha recibido casi 50.000 estrellas Github.

Hay dos formas que puede utilizar para instalar Netdata. Puede ejecutar inmediatamente un script automatizado en un shell BASH. Esto actualiza sus sistemas e inicia la instalación de Netdata. Alternativamente, puede clonar el repositorio Git de Netdata y luego ejecutar el script automatizado. El primer método es simple y directo y es en lo que nos centraremos en esta guía.

En este artículo, veremos cómo puede instalar Netdata en Ubuntu para monitorear en tiempo real, el rendimiento y el estado de servidores y aplicaciones.

Plataformas compatibles

Netdata admite las siguientes distribuciones de Ubuntu LTS:

  • ubuntu 20.04
  • ubuntu 18.04
  • ubuntu 16.04

Cómo instalar Netdata en Ubuntu Linux

Para comenzar la instalación, ejecute el siguiente comando en su terminal bash para descargar y ejecutar el script.

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

Durante la ejecución del script ocurre lo siguiente:

  • El script descubre automáticamente su distribución de Linux, actualiza la lista de paquetes e instala todos los paquetes de software necesarios.
  • El árbol de fuentes de netdata más reciente se descarga en la ruta /usr/src/netdata.git.
  • El script instala netdata ejecutando el script ./netdata-installer.sh desde el árbol de origen.
  • Se realiza una actualización en cron.daily para garantizar que netdata se actualice diariamente.

A medida que se ejecuta el script, se le darán consejos sobre cómo acceder a Netdata en un navegador y cómo administrarlo como un servicio systemd.

La instalación lleva un tiempo, así que espera unos 10 minutos y regresa. Finalmente, obtendrá el resultado a continuación cuando el script finalice la instalación.

Una vez instalado, inicie, habilite y verifique el estado de Netdata como se muestra.

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

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

sudo netstat -pnltu | grep netdata

Si tiene UFW ejecutándose, intente abrir el puerto 19999, ya que será necesario al acceder a Netdata en el navegador.

sudo ufw allow 19999/tcp
sudo ufw reload

Finalmente, para acceder a Netdata, cambie a su navegador y navegue por la siguiente URL

http://server-ip:19999/

Esto es lo que te saluda una vez que navegas por la URL. De hecho, se dará cuenta de que no será necesario que inicie sesión. Todas las métricas del sistema se mostrarán como se muestra.

Puede hojear varios gráficos haciendo clic en sus métricas preferidas en la barra lateral derecha del panel. Por ejemplo, para consultar las estadísticas de la interfaz de red, haga clic en la opción 'Interfaces de red'.

Proteger Netdata con autenticación básica en Ubuntu

Hasta este punto, cualquiera puede acceder al panel de Netdata y echar un vistazo a las distintas métricas del sistema. Esto equivale a una violación de la seguridad y definitivamente queremos evitarlo.

Con esto en mente, vamos a configurar la autenticación HTTP básica. Necesitamos instalar el paquete apache2-utils que proporciona el programa htpasswd que se utilizará para configurar el nombre de usuario y la contraseña del usuario. Además, instalaremos el servidor web Nginx que actuará como proxy inverso.

Para instalar el servidor web Nginx y el paquete apache2-utils ejecute el comando.


sudo apt install nginx apache2-utils

Con Nginx y apache2-utils instalados, vamos a crear un archivo de configuración dentro del directorio /etc/nginx/conf.d. Sin embargo, no dude en utilizar el directorio sitios disponibles si utiliza Nginx para otros fines además de Netdata.


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

Dentro del archivo de configuración, primero le indicaremos a Nginx que represente las solicitudes entrantes para el panel de Netdata. A partir de entonces, agregaremos algunos mensajes de autenticación básicos que solo otorgan a los usuarios autorizados acceso al panel de Netdata mediante autenticación de nombre de usuario/contraseña.

Aquí está la configuración completa. Tenga cuidado de reemplazar 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;
    }
}

Entendamos la configuración, sección por sección.

Sección 1:


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

Hemos especificado un módulo upstream llamado netdata-backend que hace referencia al servidor web integrado de Netdata utilizando la dirección loopback 127.0.0.1< y el puerto 19999, que es el puerto predeterminado en el que escucha Netdata. La directiva keepalive define el número máximo de conexiones inactivas que pueden permanecer abiertas.

Sección 2:


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

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Esta es la sección principal de bloqueo del servidor Nginx. La primera línea especifica la dirección IP externa que Nginx debe escuchar cuando los clientes envían sus solicitudes. La directiva server_name especifica el nombre de dominio del servidor e indica a Nginx que ejecute el bloque del servidor cuando los clientes invocan el nombre de dominio en lugar de la dirección IP externa.

Las dos últimas líneas indican la autenticación HTTP simple que requiere que el usuario inicie sesión con un nombre de usuario y contraseña. El módulo auth_basic activa la ventana emergente de nombre de usuario/contraseña en el navegador con "Autenticación requerida" en el título, que luego se puede personalizar según sus preferencias.

El módulo auth_basic_user_file apunta al nombre del archivo que contendrá el nombre de usuario y la contraseña del usuario autorizado para acceder al panel de Netdata (en este caso, netdata-access). Crearemos este archivo más adelante.

Seccion 3:

La última sección es el bloque ubicación que está contenido dentro del bloque del servidor. Esto maneja el proxy y el reenvío de solicitudes entrantes al servidor web Nginx.


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, crearemos un nombre de usuario y una contraseña para un usuario llamado tecmint usando la utilidad htpasswd y almacenaremos las credenciales dentro del 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

Aparecerá una ventana emergente de autenticación como se muestra a continuación. Proporcione su nombre de usuario y contraseña y presione ENTER.

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

Esto nos lleva al final de nuestro tema de hoy. Acaba de aprender cómo instalar la herramienta de monitoreo Netdata y la configuración de la autenticación HTTP básica en Ubuntu. No dude en consultar otros gráficos sobre varias métricas del sistema.