Nginx es un servidor web ampliamente presentado que a menudo se emplea para servir contenido estático, proxy inverso o equilibrar la carga del tráfico web. Es bien conocido por su fiabilidad, flexibilidad y alto rendimiento. Como con cualquier servidor, es importante monitorear Nginx para asegurarse de que funciona correctamente y para abordar cualquier problema que pueda surgir. En este artículo, exploraremos cómo monitorear Nginx con Zabbix, para detectar y resolver proactivamente cualquier problema con su Nginx servidor.
Preparativos
Antes de comenzar a explorar el proceso de monitoreo Nginx con Zabbix, debemos asegurarnos de cumplir con los requisitos previos. Éstas incluyen:
- A servidor con Nginx querrás cuidar
- servidor Zabbix en funcionamiento
- A agente de Zabbix instalado y configurado en un servidor que ejecuta Nginx.
Configurando Nginx
Abre el /etc/nginx/conf.d/stub_status.conf con el editor de su elección y pegue el siguiente bloque de texto:
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
Hace que el servidor genere información de estado básica en la página /basic_status disponible solo desde este mismo servidor, para que nuestro agente pueda llevarla al servidor.
Ahora vamos a comprobar si Nginx procces está bien con la nueva configuración ejecutando:
nginx -t
systemctl restart nginx
systemctl status nginx
A continuación, veamos si la nueva página de estado funciona con curl:
curl http://127.0.0.1/basic_status
Configuración de registros
Deberías comprobar si Nginx genera los registros que necesita Zabbix al verificar la configuración de registro en /etc/nginx/nginx.conf
Ahora, para que Zabbix funcione con registros, comentemos la línea access_log original y peguemos este fragmento:
Debería verse así:
Comprobar y reiniciar Nginx en otro momento, y vamos a configurar nuestro Zabbix.
Configuración de Zabbix
Suponiendo que se hayan completado todas las instrucciones anteriores, ahora solo necesita crear un host para este servidor y agregar Nginx por plantilla de agente de Zabbix, o agregarlo a uno ya existente.
Asigne la plantilla al host que se está ejecutando Nginx yendo a Configuración → Hosts → Seleccione el host → Plantillas → Agregar.
Si todo está bien, debe poder trabajar con los datos que proporciona la plantilla:
- Métricas generales: CPU y uso de memoria, número de conexiones actualmente abiertas al servidor.
- Métricas de solicitud: el tiempo promedio para responder a una solicitud, porcentaje de solicitudes que resultan en un error, número de solicitudes procesadas por Nginx por segundo.
- Métricas SSL: cuántos apretones de manos procesan Nginx por segundo, la cantidad de cifrados que son compatibles con Nginx, y el recuento de errores de certificado encontrados por Nginx.
- Tiempo de actividad: rastrea cuánto tiempo Nginx ha estado funcionando sin ningún tiempo de inactividad.
La plantilla Zabbix también incluye una serie de disparadores que le avisan cuando hay un problema con su Nginx servidor. Estos disparadores le notifican problemas como alta CPU alto uso de memoria, alta tasa de error y tiempo de inactividad.
Por ejemplo:
- Alta CPU disparador de uso: este disparador le avisará cuando el CPU uso en su Nginx servidor supera un determinado umbral.
- Disparador de alto uso de memoria: este disparador le avisará cuando el uso de memoria en su Nginx servidor supera un determinado umbral.
- Disparador de tasa de error alta: este disparador le avisará cuando la tasa de error en su Nginx servidor supera un determinado umbral.
- Disparador de tiempo de inactividad: este disparador le alertará si su Nginx servidor deja de funcionar.
Y algunos elementos si desea verificar algo que no está cubierto en los gráficos o activadores predeterminados.
Conclusión
Has explorado cómo obtener Nginx listo para monitorear con Zabbix y agregue una plantilla adecuada a Zabbix que le permita monitorear proactivamente su servidor y resolver rápidamente cualquier problema que pueda surgir.