Monitorización Web Server performance con Apache y Pandora FMS

¿Qué es un servidor Web Apache?

En el artículo de hoy aprenderemos cómo monitorizar en profundidad un servidor Web Apache con Pandora FMS. Pero primero conceptualizaremos brevemente sobre qué es Apache.

Se trata del servidor web HTTP de código abierto más utilizado del mercado, ya que es multiplataforma, gratuito, de alto rendimiento, uno de los más seguros y de los más robustos.

Se fundó en 1999, en Estados Unidos, por un grupo de ocho desarrolladores que formaron en un primer momento el Grupo Apache, del cual surgiría la Apache Software Foundation.

Entre sus múltiples ventajas está su coste, ya que es completamente gratuito y de código abierto; su compatibilidad con Linux, MacOs y Windows; su soporte de seguridad SSL y TLS; su equipo de soporte mundial y funcional y su rendimiento (cuenta con un millón de visitas al día).

Logo de la Apache Software Foundation

Monitorizar un servidor Apache no es tan sencillo como monitorizar el estado del proceso o hacer una petición web para ver si devuelve algo. Esto sería una monitorización básica que cualquiera puede hacer con Pandora FMS, ya que incluso vienen ejemplos en la documentación.

Monitorización del rendimiento del servidor Apache

Existe un plugin en la librería de Pandora FMS que nos permite, en combinación con el módulo server status de Apache, obtener información pormenorizada del rendimiento del servidor.

Además podemos configurar el servidor para obtener información detallada de cada instancia o dominio web que estamos sirviendo en el servidor.

El primer paso es, obviamente, tener un Pandora FMS instalado. Luego instalaremos un agente de Pandora FMS en el servidor Linux donde esté el Apache que queramos monitorizar.


¿Quieres saber más acerca de la monitorización de servidores?

Administración centralizada, alta escalabilidad, Metaconsola… descubre la monitorización de servidores en Pandora FMS Enterprise


 

Una vez instalado el agente, instalaremos el plugin de Apache de la librería de modulos:

https://pandorafms.com/library/apache-performance-plugin/

Lo descargaremos y copiaremos en el directorio de plugins del agente linux, que esté en
/etc/pandora/plugins

Para poder usar el plugin necesitamos configurar el servidor de Apache para que utilice el módulo server-status, que da información detallada del servidor. Para ello editaremos el fichero /etc/httpd/conf/httpd.conf y añadiremos la siguiente configuración:


ExtendedStatus on

SetHandler server-status
Order deny,allow
Deny from all
Allow from XX.XX.XX.XX

Donde pone XX.XX.XX.XX pondremos la IP principal de nuestro servidor Web. Esto es para que solo acepte peticiones de sí mismo, por seguridad.

Una vez hechos estos cambios, reiniciaremos el servidor web y lanzaremos el plugin manualmente para verificar que devuelve algún dato:

/etc/pandora/plugins/apache_plugin http://46.105.97.91/server-status

Que tiene que devolver un XML con datos, ya que es un plugin de agente que devuelve varios módulos. Este es un extracto del todo el XML:

type generic_data/type

Una vez hemos verificado que funciona, añadiremos el plugin al agente de Pandora FMS con la siguiente línea:

module_plugin apache_plugin http://XX.XX.XX.XX/server-status

De nuevo, atentos para reemplazar XX.XX.XX.XX por la IP del servidor Apache, la misma máquina donde se ejecuta el agente de Pandora FMS.

Una vez hecho esto y reiniciado el agente para que coja la nueva configuración, debería tener una vista similar a esta:

captura del agente de Pandora FMS

Monitorización del estado del servidor

Además de la monitorización de rendimiento, deberíamos hacer una monitorización básica del proceso Apache; bastaría con un módulo para verificar que el demonio está funcionando:

module_begin
module_name Apache Status
module_type generic_proc
module_exec ps aux | grep httpd | grep -v grep | wc -l
module_end

Al ser un módulo booleano, solo se pondría en CRÍTICO cuando su valor fuera 0, pero además nos servirá para saber cuántos subprocesos de HTTPD hay activos en el servidor.

Monitorización de la carga de una instancia específica

En Apache podemos configurar una instancia -lo que en su terminología es un host virtual- para que utilice un log específico, solo para él, de esta manera:

ServerAdmin [email protected]
DocumentRoot /var/www/mydomain
ServerName mydomain.com
CustomLog logs/access_log_mydomain common

Ahora solo tenemos que monitorizar el nº de entradas de ese fichero para saber cuantas peticiones por segundo tenemos en nuestro servidor, mediante un módulo de tipo incremental:

module_begin
module_name MyDomain Request/sec
module_type generic_data_inc
module_exec wc -l /var/log/httpd/access_log_mydomain | awk '{ print $1 }'
module_end

Puedes ver el tutorial sobre cómo monitorizar un servidor web Apache aquí:

Para finalizar, recuerda que si tienes que monitorizar más de 100 dispositivos puedes disfrutar de una DEMO GRATUITA de 30 días de Pandora FMS Enterprise. Consíguela aquí.

Shares