Cómo monitorizar Varnish Caché con Pandora FMS
Varnish es un acelerador de aplicaciones web, esto es, un proxy inverso que actúa como caché HTTP. Es una aplicación muy útil para servicios o aplicaciones web que tienen un gran volumen de tráfico de datos, ya que permite aumentar la velocidad del servicio mediante el cacheo de contenidos. La arquitectura típica de aplicaciones que usan un caché HTTP es la que aparece en la siguiente imagen.
Todo el tráfico HTTP pasa por el servidor Varnish, con el fin de usar la caché del mismo antes de realizar la petición a los servidores situados en el backend.
En todas las aplicaciones en las que está presente un servidor de caché HTTP, Varnish se convierte en una pieza fundamental de la arquitectura. Esto es así ya que el servidor de caché es el que procesa todas las peticiones. Por ello, es muy importante asegurarnos de que su funcionamiento es óptimo en todo momento; de lo contrario podría convertirse en un cuello de botella que ralentice toda la aplicación.
La mejor forma de vigilar el correcto funcionamiento de Varnish es mediante la monitorización de las variables de rendimiento más importantes de este servidor.
Métricas clave de Varnish
Al ejecutarse correctamente, Varnish Caché acelerará el tiempo de respuesta en gran medida. Sin embargo, si nuestro Varnish Caché está mal configurado nos puede provocar retraso o incluso la posible detención de las respuestas de su sitio web.
La mejor forma de poder garantizar el funcionamiento de Varnish Caché es a través del control de los indicadores clave de rendimiento en las siguientes áreas:
- Métricas de clientes: conexiones de clientes y solicitudes.
- El rendimiento de la caché: aciertos de caché, fallos, etc.
- Métricas Thread: creación de hilos, errores, colas, etc.
- Métricas Backend: el éxito, el error y el estado de las conexiones backend.
Párametros de rendimiento de Varnish Caché
Junto con la instalación de Varnish, se instalan varias aplicaciones que nos ayudan a evaluar el rendimiento del servidor, aportando diversas estadísticas. Las aplicaciones son las siguientes:
- varnishtop: Lista agrupada de entradas más frecuentes de diferentes logs.
- varnishhist: representa un histograma con el tiempo que tarda el procesado de las peticiones.
- varnishsizes: realiza la misma tarea que “varnishhist”, pero mostrando el tamaño de los objetos.
- varnishstat: muestra gran cantidad de contenidos sobre aciertos de caché, consumo de recursos, etc.
- varnishlog: permite ver las peticiones realizadas al servidor web situado en el backend.
Si quiere más información acerca de estos comandos y otros adicionales podrá encontrarla en la documentación de Varnish (https://www.varnish-cache.org/docs/3.0/index.html).
Al ejecutar el comando “varnishstat -1” en el mismo servidor que tiene instalado Varnish, obtendremos una larga lista de métricas.
Las métricas básicas para comprobar el rendimiento de Varnish son las siguientes:
- client_conn : conexiones de clientes aceptadas.
- client_req : peticiones de clientes recibidas.
- backend_fail : conexiones fallidas al backend.
- cache_miss : fallos de caché.
- n_object : número de objetos instanciados.
- n_wrk : número de hilos en trabajo.
- n_wrk_create : número de hilos de trabajo creados.
- n_wrk_failed : número de fallos al crear hilos de trabajo.
- n_wrk_max : número máximo de hilos de trabajo.
- n_wrk_drop : número de peticiones de trabajo abandonadas.
- n_lru_nuked : número de objetos LRU.
- esi_errors : errores de parseo ESI.
- n_expired: número de objetos expirados.
Con este comando obtenemos una instantánea de las estadísticas de rendimiento. Una instantánea no nos sirve para comprobar la tendencia, ya que necesitamos los datos de, por ejemplo, la última semana o el último mes, para poder comparar diferentes configuraciones a lo largo del tiempo.
Para obtener esta información tendremos que monitorizar las variables más importantes durante un período de tiempo; con estos datos podremos ver de forma sencilla si los cambios realizados en la configuración de Varnish mejoran el rendimiento. Para realizar la monitorización usaremos Pandora FMS y el plugin para Varnish Caché disponible en su librería. Además de la monitorización, Pandora FMS nos permite configurar alertas que nos avisen ante problemas en el rendimiento e informes que nos muestren la evolución de las diferentes métricas. Con estas funcionalidades desplegaremos una monitorización que nos alertará ante cualquier fallo en nuestro servidor Varnish.
Monitorización de Varnish con Pandora FMS
El primer paso para desplegar la monitorización es descargar e instalar Pandora FMS. Puede encontrar una imagen ISO e incluso una máquina virtual preconfigurada para VMware, aquí: http://pandorafms.com/Community/download/
Una vez instalado Pandora FMS es necesario instalar un agente en la máquina donde se ejecuta el servidor de caché Varnish. Podrá encontrar agentes para diferentes distribuciones Linux en el siguiente enlace: http://sourceforge.net/projects/pandora/files/Pandora%20FMS%204.0.3/
Para no alargar el artículo no vamos a describir el proceso de instalación de cada componente de forma detallada, ya que puede consultar todos los pasos en la documentación oficial de Pandora FMS: http://www.openideas.info/wiki/index.php?title=Pandora:Documentation_es:Instalacion
Ahora es el turno de instalar el plugin para Varnish. Podrá encontrar el plugin en la Librería de módulos de Pandora FMS. El enlace es el siguiente: http://pandorafms.com/index.php? sec=Library&sec2=repository&lng=en&action=view_PUI&id_PUI=537
Para instalar el plugin solo tiene que descomprimir el archivo ZIP y copiar los archivos “varnish-plugin.pl” y “varnish-plugin.conf” a la carpeta de plugins del agente instalado en el servidor de Varnish. Puede usar los siguientes comandos:
# unzip varnish-plugin.zip
# cp varnish-plugin.* /etc/pandora/plugins
Ahora que el plugin está en su ubicación correcta, podemos configurarlo. Para ello tendremos que editar el archivo de configuración; por defecto el archivo se llama “varnish-plugin.conf”. El archivo de configuración por defecto tiene la siguiente estructura:
METRIC
hit_ratio
connect_accept_ratio
backend_success_ratio
work_thread_ratio
STATS
client_conn
client_req
backend_fail
cache_miss
n_object
n_wrk
n_wrk_create
n_wrk_failed
n_wrk_max
n_wrk_drop
n_lru_nuked
esi_errors
n_expired
Este archivo permite configurar dos tipos de métricas. La primera son las estadísticas y están definidas por el token STATS. Esta categoría permite recoger cualquier valor que aparece al ejecutar el comando “varnishstats -1”. Los diferentes parámetros se pueden seleccionar por el nombre que aparece en la primera columna de la salida que devuelve el comando. La segunda métrica son los ratios, definida por el token METRIC. Los ratios ayudan a la comprensión de los valores de rendimiento de Varnish, aportando información normalizada como porcentajes. Los ratios disponibles son los siguientes:
- hit_ratio: ratio aciertos caché.
- connect_accept_ratio: ratio conexiones aceptadas por peticiones recibidas.
- backend_success_ratio: ratio conexiones exitosas con servidor backend.
- work_thread_ratio: ratio hilos trabajando por hilos creados.
Realizando cambios en el archivo de configuración del plugin podremos ajustar la monitorización a nuestras necesidades, añadiendo o quitando variables o métricas a monitorizar. Para que el agente de Pandora FMS ejecute el plugin de forma periódica es necesario añadir un nuevo módulo plugin al archivo de configuración. Para comenzar la monitorización editaremos el archivo de configuración del agente (por defecto en “/etc/pandora/pandora_agent.conf”), añadiendo la siguiente línea:
module_plugin /etc/pandora/plugins/varnish-plugin.pl /etc/pandora/plugins/varnish-plugin.conf
Una vez que el agente envíe los datos al servidor de Pandora, aparecerán los módulos con sus diferentes valores.
En este ejemplo, además de monitorizar las variables relativas al proxy caché Varnish (backend_fail, backend_success_ratio, cache_miss, etc), hemos añadido otras relativas al funcionamiento de la máquina (CPU User, Load Average, Mem Usage y Proctotal). Con esta configuración obtenemos una visión global del rendimiento y los recursos consumidos por el servidor de caché.
En este momento Pandora está recogiendo datos con los que posteriormente podremos crear informes para evaluar la evolución del rendimiento.
Como además queremos usar las funcionalidades de alerta de Pandora FMS, necesitaremos realizar algunas configuraciones adicionales a los módulos. El siguiente paso es configurar los valores que definen el estado del módulo. Estos valores los definiremos sobre los módulos que representan ratios, ya que dan un valor normalizado entre 0 y 100 y nos aportan la información suficiente para evaluar, en una primera instancia, el rendimiento de Varnish. La configuración de los umbrales sería la siguiente:
Modulo |
Min Warn |
Max Warn |
Min Crit |
Max Crit |
backend_success_ratio |
51 |
70 |
0 |
50 |
connect_accept_ratio |
0 |
5 |
20 |
100 |
hit_ratio |
51 |
70 |
0 |
50 |
work_thread_ratio |
51 |
70 |
0 |
50 |
Mem Usage |
80 |
90 |
91 |
100 |
CPU User |
85 |
90 |
91 |
100 |
Con esta configuración, por ejemplo, el módulo hit_ratio pasará a un estado Crítico cuando el número de aciertos en la caché esté entre el 0% y 50%, y pasará a un estado de Advertencia cuando el número de aciertos en caché sea de entre 51% y 70%. Además, hemos definido unos umbrales para poder configurar alertas sobre los módulos de sistemas, en concreto sobre el uso de CPU y memoria. Ahora que los módulos tienen definidos los estados, podemos crear las diferentes alertas para que Pandora FMS nos avise cuando detecte algún problema.
Hemos definido diferentes métodos de aviso según sea el estado más o menos crítico. De tal forma que para los menos críticos, Pandora FMS enviará un email a la lista de los administradores de sistemas, y para los más críticos enviará un SMS a los jefes y encargados de la arquitectura TI del sitio web.
Llegados a este punto tenemos configurada una monitorización reactiva de nuestro servidor de caché Varnish, es decir, somos alertados de los problemas y reaccionamos para buscar la solución. Pero lo que buscamos a la hora de monitorizar nuestro servidor Varnish es una monitorización proactiva y para ello nos debemos fijar en las tendencias y actuar en consecuencia.
Para poder visualizar las tendencias de una forma sencilla, Pandora FMS ofrece la posibilidad de crear informes con la información agrupada en una sola vista. En este caso hemos creado un informe en el que agrupamos información sobre los parámetros de rendimiento de Varnish, junto con los parámetros de rendimiento del sistema.
Además, Pandora FMS permite programar el envío de informes por email, por ejemplo cada semana o cada mes. De tal forma que tendremos un estudio de tendencias sobre Varnish de forma automática en nuestro email, sin necesidad de entrar a la consola de Pandora FMS.
Conclusión
Con esta configuración conseguimos ser alertados ante fallos o caídas de rendimiento en nuestro servidor Varnish Caché. Gracias a las funcionalidades de alerta estaremos informados de cualquier problema que pueda surgir en nuestra aplicación web referente al caché. Por medio de los informes podremos ver las tendencias y realizar un mantenimiento preventivo del servidor para evitar fallos futuros. Esta monitorización nos permitirá estar protegidos ante cuellos de botella que ralenticen el sistema de forma inevitable, ya que Varnish es nuestro único punto de entrada y recibe todo el tráfico web.
Para finalizar, recuerda que Pandora FMS es un software de monitorización flexible, capaz de monitorizar dispositivos, infraestructuras, aplicaciones, servicios y procesos de negocio.
¿Quieres conocer mejor qué es lo que Pandora FMS puede ofrecerte? Descúbrelo entrando aquí: https://pandorafms.com/es
Si cuentas con más de 100 dispositivos para monitorizar puedes contactar con nosotros a través del siguiente formulario: https://pandorafms.com/es/contactar/
Además, recuerda que si tus necesidades de monitorización son más limitadas tienes a tu disposición la versión OpenSource de Pandora FMS. Encuentra más información aquí: https://pandorafms.org/es/
No dudes en enviar tus consultas. ¡El equipo de Pandora FMS estará encantado de atenderte!
El equipo de redacción de Pandora FMS está formado por un conjunto de escritores y profesionales de las TI con una cosa en común: su pasión por la monitorización de sistemas informáticos. Pandora FMS’s editorial team is made up of a group of writers and IT professionals with one thing in common: their passion for computer system monitoring.