Apache-manager: sencilla utilidad para monitorizar y controlar workers de Apache

Apache-manager es una interesante herramienta desarrollada en Python que nos permite monitorizar y realizar diversos ajustes en el comportamiento de los workers de nuestro servidor web Apache. Para ello hace uso principalmente de la información proporcionada por mod_status.

Su instalación con el gestor pip es tan sencilla como siempre:

pip install apache-manager

En su forma de uso más simple ejecutaremos desde terminal apache-manager sin argumentos. Nos mostrará un resumen de diversas métricas de workers, carga de CPU, uso de memoria, etc… de Apache:

Si queremos que se actualice cada 10 segundos podemos lanzar apache-manager -w (similar a un watch)

Además de monitorización de carga también permite ajustar el comportamiento de los workers de Apache en función de diversos parámetros como memoria máxima (para workers activos o inactivos) o tiempo desde la última request recibida. Veamos algunos ejemplos:

# Kill de procesos workers activos que utilicen más de 25 MB de memoria
apache-manager -a 25M

# Kill de procesos workers inactivos (idle) que utilicen más de 10 MB de memoria
apache-manager -i 10M

# Kill de workers cuya request más reciente haya sido recibida hace 30 minutos
apache-manager -t 30m

Podemos hacer combinaciones con las opciones anteriores, por ejemplo apache-manager -a 25m -t 30m.

Si la utilidad no encuentra ningún worker sobre el que actuar recibiremos notificación:

Resulta especialmente útil para integrarla en un crontab y realizar comprobaciones periódicas de uso de recursos de nuestro Apache, eliminando workers ociosos o que superen un determinado umbral de memoria antes de que afecten a la estabilidad de nuestro servidor.

Para ver todas las opciones de forma detallada podéis consultar apache-manager --help

Tenéis el proyecto en GitHub al igual que documentación más completa en la entrada correspondiente de readthedocs.