Monitoreo multifacético de Angie, una bifurcación del servidor web nginx#

27.09.2023

Una hermosa demostración en vivo es mejor que cualquier imagen: https://console.angie.software/

Una hermosa demostración en vivo es mejor que cualquier imagen: https://console.angie.software/

Hola, estimado lector. Mi nombre es Dmitry. Soy ingeniero de sistemas en Web Server, la empresa rusa detrás del servidor web Angie. Basándome en mi experiencia proporcionando soporte técnico —primero en NGINX y ahora en Web Server LLC—, frecuentemente me encuentro con la misma pregunta popular: "¿Cómo organizo la monitorización del servidor web?" Exploremos la respuesta.

  1. Monitorización. "¿Por qué? ¡Los registros están bien!"

  2. Angie, el servidor web. "¿Por qué? Cuando hay ***."** Cómo instalarlo. "¿Hay una compilación para **?"

  3. API. "¡Te digo que hay registros! Solo déjame habilitarlos en producción." Qué proporciona. "¿En qué se diferencia de los registros?" Cómo configurar. "¿No funciona automáticamente?" Obtener la configuración del servidor web. "Pero existe angie -T."

  4. Console Light – Interfaz Web. "¿Otro sistema de monitorización?!1?1!!!" Qué muestra. "¿Qué significa tiempo real?" Cómo instalarlo. "¿Realmente solo un par de líneas de configuración?"

  5. API de Prometheus. "¡Ya lo estoy usando! Bueno sí, analizamos logs..." Cómo configurar Angie para la integración. "¿Y sin njs?" Comparación con Console Light. "¿Los valores realmente coinciden?"

  6. Conclusión. "¡Así que eso es lo que significa multifacético!"

---

1. Monitorización. "¿Por qué? ¡Los registros están bien!"#

Ya no nos limitamos a reaccionar a incidentes basados en informes de usuarios. Los sistemas de monitorización se han convertido en una parte esencial de la infraestructura moderna, proporcionando recopilación de datos, notificaciones e incluso, cuando corresponde, un botón de "arreglar todo".

Cuando a gerentes, arquitectos o especialistas en seguridad se les pregunta cómo garantizamos la observabilidad de los componentes clave de la infraestructura de procesamiento de solicitudes, normalmente destacamos tres fuentes principales de información:

  • Métricas del sistema sobre el proceso del servidor web (p. ej., uso de CPU y RAM, tiempo de actividad).

  • Datos de registros que ofrecen una visión retrospectiva de las solicitudes procesadas.

  • Exportaciones de métricas mediante extensiones de terceros, aunque menos comúnmente.

Si bien las métricas del proceso del sistema son fundamentales y se aplican de manera universal, a menudo quedan cortas. Por ejemplo, un bajo uso de CPU podría coincidir con un error 502 Bad Gateway, señalando problemas más profundos que no son evidentes de inmediato.

Los datos de registro también son fáciles de acceder, pero intrínsecamente reactivos. Nos permiten diagnosticar problemas solo después de que hayan ocurrido. Por ejemplo, durante un ataque DoS, los registros revelan solicitudes fallidas a posteriori, pero no proporcionan información sobre las solicitudes entrantes que no fueron procesadas. Una monitorización eficaz debe actuar como una herramienta predictiva, alertándonos sobre problemas en curso, no simplemente documentando las secuelas.

Las soluciones de terceros para exportaciones de métricas pueden cerrar esta brecha, pero conllevan compromisos:

  • Tiempo invertido en la configuración y en compilaciones específicas para cada sistema operativo.

  • Posibles problemas de compatibilidad entre el servidor web y los módulos de terceros tras actualizaciones.

  • Preocupaciones de seguridad por parte de los equipos de InfoSec, que rara vez duermen tranquilos.

Las características de monitorización integradas de Angie, como veremos, proporcionan una visión completa en tiempo real de las cargas del servidor web y del proxy, junto con opciones de integración sencillas para los sistemas de monitorización existentes.

---

2. Servidor Web Angie. "¿Por qué? Cuando existe *."#

Angie es una bifurcación de nginx que ofrece funcionalidades adicionales, manteniendo el diseño ligero y eficiente de nginx.

Cómo instalar Angie: Instalación de Angie es sencilla. Hay paquetes preconstruidos disponibles para los sistemas operativos más comunes, y también se admite la compilación desde el código fuente. Las instrucciones detalladas de instalación se pueden encontrar en la documentación oficial.

Disponibilidad de compilaciones: Angie es compatible con una amplia gama de plataformas, con binarios para distribuciones populares de Linux y otros entornos. Si no estás seguro de la compatibilidad con tu sistema operativo, consulta la sección de descargas <https://angie.software/downloads>.

---

3. API. "¡Te digo que hay logs! Solo déjame habilitarlos en producción."#

La API de Angie permite la monitorización en tiempo real de sus operaciones, complementando los logs tradicionales.

Qué proporciona: La API ofrece métricas granulares sobre el procesamiento de solicitudes, la distribución de carga y el uso de recursos que van más allá de las entradas estáticas de los logs.

¿Cuál es la diferencia con los logs? Los logs capturan datos históricos—lo que ya ha sucedido. En contraste, la API proporciona información en vivo sobre lo que está sucediendo ahora, como longitudes de cola, retrasos en el procesamiento o el estado del servidor upstream.

Cómo configurar: Configurar la API es simple e implica habilitar los módulos relevantes en el archivo de configuración de Angie. Las instrucciones paso a paso están disponibles en la guía oficial.

Obtener la configuración del servidor web: Para usuarios familiarizados con angie -T, la API extiende su funcionalidad proporcionando acceso dinámico y bajo demanda a la configuración y métricas de tiempo de ejecución.

---

4. Console Light – Interfaz Web. "¿Otro sistema de monitorización?!1?1!!!"#

Qué muestra: Console Light proporciona una interfaz gráfica para las métricas en tiempo real de Angie, ofreciendo una representación visual clara del rendimiento del servidor.

¿Qué significa tiempo real? Las métricas se actualizan en vivo, proporcionando retroalimentación inmediata sobre el comportamiento del servidor sin los retrasos inherentes a los sistemas basados en logs.

Cómo instalar: Configurar Console Light requiere un esfuerzo mínimo: solo unas pocas líneas de configuración. Las instrucciones se proporcionan en la guía de instalación, para que puedas configurarlo rápidamente.

¿Qué significa tiempo real? Las métricas se actualizan en tiempo real, proporcionando retroalimentación inmediata sobre el comportamiento del servidor, sin los retrasos inherentes a los sistemas basados en logs.

¿Cómo instalarlo? La instalación de Console Light requiere un esfuerzo mínimo: solo unas pocas líneas de configuración. Las instrucciones se proporcionan en la guía de instalación, asegurando que puedas configurarlo rápidamente.

---

5. API de Prometheus. "¡Ya lo estoy usando! Bueno sí, analizamos logs..."#

Cómo configurar Angie para la integración: Los puntos finales compatibles con Prometheus pueden habilitarse en la configuración de Angie. No se requieren módulos adicionales de terceros, lo que hace que la configuración sea eficiente y segura.

¿Y sin njs? A diferencia de algunas configuraciones que requieren el módulo njs de Nginx para la integración con Prometheus, Angie proporciona soporte nativo para la exportación de métricas, eliminando dependencias adicionales.

Comparación con Console Light: Tanto Prometheus como Console Light ofrecen capacidades de monitorización robustas, pero atienden a diferentes necesidades. Prometheus es ideal para la recopilación de métricas en sistemas a gran escala, mientras que Console Light ofrece una vista enfocada y en tiempo real del rendimiento de Angie. Los valores reportados por ambos sistemas coinciden, asegurando consistencia.

---

6. Conclusión. "¡Así que eso es lo que significa multifacético!"#

Las capacidades de monitorización multifacéticas de Angie abordan las necesidades de la infraestructura moderna, combinando métricas del sistema, APIs en tiempo real e interfaces visuales. Ya sea que prefieras logs, APIs o paneles gráficos, Angie tiene herramientas para proporcionar una experiencia de monitorización completa y predictiva.

Al aprovechar estas características, puedes asegurar que tu servidor web opere eficientemente, detectar problemas antes de que escalen e integrarte perfectamente con tus soluciones de monitorización existentes.