Amplify: monitorización NGINX simplificada


Nginx amplify es una colección de herramientas útiles para monitorear extensivamente un servidor web Nginx de código abierto y NGINX Plus. Con NGINX Amplify puede supervisar el rendimiento, realizar un seguimiento de los sistemas que ejecutan Nginx y permite examinar y solucionar prácticamente los problemas asociados con la ejecución y el escalado de aplicaciones web.

Se puede utilizar para visualizar y determinar cuellos de botella en el rendimiento del servidor web Nginx, servidores sobrecargados o posibles ataques DDoS; Mejore y optimice el rendimiento de Nginx con consejos y recomendaciones inteligentes.

Además, puede notificarle cuando hay algún problema con la configuración de su aplicación, y también sirve como un planificador de capacidad y rendimiento de la aplicación web.

La arquitectura amplify de Nginx se basa en 3 componentes clave, que se describen a continuación:

  • NGINX Amplify Backend: el componente central del sistema, implementado como SaaS (software como servicio). Incorpora un marco de recopilación de métricas escalables, una base de datos, un motor de análisis y una API central.
  • NGINX Amplify Agent: una aplicación de Python que debe instalarse y ejecutarse en sistemas monitoreados. Todas las comunicaciones entre el agente y el backend de SaaS se realizan de forma segura a través de SSL/TLS; todo el tráfico siempre lo inicia el agente.
  • Interfaz de usuario web NGINX Amplify: una interfaz de usuario compatible con todos los navegadores principales y solo se puede acceder a ella a través de TLS/SSL.

La interfaz de usuario web muestra gráficos para Nginx y métricas del sistema operativo, permite la creación de un panel definido por el usuario, ofrece un analizador estático para mejorar la configuración de Nginx y un sistema de alerta con notificaciones automáticas.

Paso 1: Instale Amplify Agent en el sistema Linux

1. Abra su navegador web, escriba la dirección a continuación y cree una cuenta. Se enviará un enlace a su correo electrónico, utilícelo para verificar la dirección de correo electrónico e inicie sesión en su nueva cuenta.

https://amplify.nginx.com

2. Después de eso, inicie sesión en su servidor remoto para ser monitoreado, vía SSH y descargue el script de autoinstalación del agente nginx amplify usando el comando curl o wget.

$ wget https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh
OR
$ curl -L -O https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh 

3. Ahora ejecute el siguiente comando con privilegios de superusuario usando el comando sudo, para instalar el paquete del agente amplify (la API_KEY probablemente será diferente, única para cada sistema que agregue).

$ sudo API_KEY='e126cf9a5c3b4f89498a4d7e1d7fdccf' sh ./install.sh 

Nota: Posiblemente obtendrá un error que indica que sub_status no se ha configurado, esto se hará en el siguiente paso.

4. Una vez que se complete la instalación, vuelva a la interfaz de usuario web y, después de aproximadamente 1 minuto, podrá ver el nuevo sistema en la lista de la izquierda.

Paso 2: configurar stub_status en NGINX

5. Ahora, debe configurar la configuración stub_status para crear gráficos clave de Nginx (los usuarios de Nginx Plus deben configurar el módulo stub_status o el módulo de estado extendido).

Cree un nuevo archivo de configuración para stub_status en /etc/nginx/conf.d/.

$ sudo vi /etc/nginx/conf.d/sub_status.conf

Luego copie y pegue la siguiente configuración stub_status en el archivo.

server {
    listen 127.0.0.1:80;
    server_name 127.0.0.1;
    location /nginx_status {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
}

Guarde y cierre el archivo.

6. A continuación, reinicie los servicios de Nginx para activar la configuración del módulo stub_status, como se indica a continuación.

$ sudo systemctl restart nginx

Paso 3: configurar métricas de NGINX adicionales para el monitoreo

7. En este paso, debe configurar métricas de Nginx adicionales para vigilar de cerca el rendimiento de sus aplicaciones. El agente recopilará métricas de archivos access.log y error.log activos y en crecimiento, cuyas ubicaciones detecta automáticamente. Y lo que es más importante, debería poder leer estos archivos.

Todo lo que tiene que hacer es definir un log_format específico como el siguiente en su archivo de configuración principal de Nginx, /etc/nginx/nginx.conf.

log_format main_ext '$remote_addr - $remote_user [$time_local] "$request" '
                                '$status $body_bytes_sent "$http_referer" '
                                '"$http_user_agent" "$http_x_forwarded_for" '
                                '"$host" sn="$server_name" ' 'rt=$request_time '
                                'ua="$upstream_addr" us="$upstream_status" '
                                'ut="$upstream_response_time" ul="$upstream_response_length" '
                                'cs=$upstream_cache_status' ;

Luego use el formato de registro anterior cuando defina su access_log y el nivel de registro de error_log debe configurarse para advertir como se muestra.

access_log /var/log/nginx/suasell.com/suasell.com_access_log main_ext;
error_log /var/log/nginx/suasell.com/suasell.com_error_log  warn;

8. Ahora reinicie los servicios de Nginx una vez más, para realizar los últimos cambios.

$ sudo systemctl restart nginx

Paso 4: Supervise el servidor web Nginx a través del agente Amplify

9. Finalmente, puede comenzar a monitorear su servidor web Nginx desde la interfaz de usuario web de Amplify.

Para agregar otro sistema para monitorear, simplemente vaya a Gráficos y haga clic en "Nuevo sistema" y siga los pasos anteriores.

Página de inicio de Nginx Amplify: https://amplify.nginx.com/signup/

Amplify es una potente solución SaaS para monitorear su sistema operativo, servidor web Nginx y aplicaciones basadas en Nginx. Ofrece una interfaz de usuario web única y unificada para vigilar varios sistemas remotos que ejecutan Nginx. Utilice el formulario de comentarios a continuación para compartir sus pensamientos sobre esta herramienta.