Monitorear NGINX es crucial para asegurar que tu servidor web o proxy inverso funcione de manera eficiente y para identificar y resolver problemas antes de que afecten a los usuarios. En esta sección, aprenderás sobre las herramientas y técnicas para monitorear NGINX.
Conceptos Clave
- Logs de Acceso y Error: NGINX genera logs que contienen información valiosa sobre las solicitudes que maneja y los errores que ocurren.
- Estado de NGINX: NGINX puede proporcionar una página de estado que muestra estadísticas en tiempo real.
- Herramientas de Monitoreo Externas: Existen varias herramientas de terceros que pueden integrarse con NGINX para proporcionar monitoreo avanzado.
Logs de Acceso y Error
Configuración de Logs
NGINX registra dos tipos principales de logs: logs de acceso y logs de error. Estos logs se configuran en el archivo de configuración de NGINX (nginx.conf
).
Logs de Acceso
Los logs de acceso registran todas las solicitudes que NGINX maneja. Aquí hay un ejemplo de cómo configurar un log de acceso:
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; }
- log_format: Define el formato del log. En este ejemplo, el formato se llama
main
y contiene varios campos como la dirección IP del cliente, la solicitud, el estado de la respuesta, etc. - access_log: Especifica la ubicación del archivo de log y el formato a usar.
Logs de Error
Los logs de error registran problemas que NGINX encuentra mientras maneja solicitudes. Aquí hay un ejemplo de cómo configurar un log de error:
- error_log: Especifica la ubicación del archivo de log y el nivel de severidad de los mensajes a registrar (
debug
,info
,notice
,warn
,error
,crit
,alert
,emerg
).
Ejercicio Práctico
- Configura los logs de acceso y error en tu archivo
nginx.conf
. - Realiza algunas solicitudes a tu servidor NGINX.
- Revisa los archivos de log para ver las entradas generadas.
Estado de NGINX
NGINX puede proporcionar una página de estado que muestra estadísticas en tiempo real sobre el servidor. Para habilitar esta funcionalidad, necesitas agregar una ubicación especial en tu configuración de NGINX.
Configuración de la Página de Estado
http { server { location /nginx_status { stub_status on; allow 127.0.0.1; # Permitir solo desde localhost deny all; # Denegar todas las demás direcciones } } }
- stub_status on: Habilita la página de estado.
- allow 127.0.0.1: Permite el acceso solo desde localhost.
- deny all: Deniega el acceso desde todas las demás direcciones.
Accediendo a la Página de Estado
Una vez configurado, puedes acceder a la página de estado visitando http://localhost/nginx_status
. La página mostrará información como:
- Número de conexiones activas.
- Solicitudes aceptadas y manejadas.
- Solicitudes actuales.
Ejercicio Práctico
- Configura la página de estado en tu archivo
nginx.conf
. - Reinicia NGINX para aplicar los cambios.
- Accede a la página de estado y revisa la información proporcionada.
Herramientas de Monitoreo Externas
Existen varias herramientas de terceros que pueden integrarse con NGINX para proporcionar monitoreo avanzado. Algunas de las más populares incluyen:
- Prometheus y Grafana: Para monitoreo y visualización de métricas.
- ELK Stack (Elasticsearch, Logstash, Kibana): Para análisis y visualización de logs.
- Datadog: Para monitoreo de infraestructura y aplicaciones.
Integración con Prometheus
Para integrar NGINX con Prometheus, puedes usar el módulo nginx-vts-exporter
que expone métricas en un formato que Prometheus puede recolectar.
Configuración Básica
- Instala el módulo
nginx-vts-exporter
. - Configura NGINX para usar el módulo.
- Configura Prometheus para recolectar las métricas expuestas por
nginx-vts-exporter
.
Ejercicio Práctico
- Instala y configura
nginx-vts-exporter
. - Configura Prometheus para recolectar métricas de NGINX.
- Usa Grafana para visualizar las métricas recolectadas.
Resumen
En esta sección, has aprendido sobre las diferentes maneras de monitorear NGINX, incluyendo el uso de logs de acceso y error, la configuración de una página de estado y la integración con herramientas de monitoreo externas. Monitorear NGINX es esencial para mantener un servidor web o proxy inverso eficiente y resolver problemas rápidamente.
En la próxima sección, abordaremos problemas comunes y sus soluciones, lo que te ayudará a identificar y resolver problemas que puedan surgir en tu entorno NGINX.
Curso de NGINX
Módulo 1: Introducción a NGINX
Módulo 2: NGINX como Servidor Web
- Sirviendo Contenido Estático
- Listados de Directorios
- Páginas de Error Personalizadas
- Registro y Formatos de Registro
Módulo 3: NGINX como Proxy Inverso
- Introducción al Proxy Inverso
- Configurando un Proxy Inverso
- Balanceo de Carga
- Verificaciones de Salud