Apache Discovery

Este documento describe la funcionalidad del Apache de PandoraFMS, compuesta por el plugin de discovery.

Introducción

Este plugin de discovery de Apache para Pandora FMS está diseñado para automatizar la monitorización de tus servidores web Apache HTTP Server, aprovechando la información detallada que proporciona el módulo mod_status. Al interactuar con la página de estado del servidor (server-status), el plugin puede recopilar métricas vitales en tiempo real que son cruciales para entender el rendimiento y la salud de tu entorno Apache.

Prerrequisitos

Parámetros

Modo simple

--urls URL del servidor de Apache 
--user Nombre del usuario, si el servidor de Apache lo requiere, opcional.
--password Contraseña, si el servidor de Apache lo requiere,opcional.
--ssl Para verificar si quiere las url tiene certificado HTTPS o no, opcional.
--transfer_mode Nombre del modo de transferencia, opcional.
--tentacle_ip  ip del tentacle, opcional.
--tentacle_port Puerto del tantacle, opcional.
--user_agent custom User-Agent header que se envía a Apache, opcional.

Modo avanzado

--conf ruta del archivo de configuración

Archivo de configuración (--conf)

urls= url del servidor de apache 
agent_name= nombre del agente opcional
module_prefix= nombre de prefix para los modulos opcional
username= nombre del usuario si el servidor de apache lo requiere opcional
password= contraseña si el servidor de apache lo requiere opcional
verify_ssl= para verificar si quiere las url tiene certicado https o no opcional
transfer_mode= nombre del modo de tranferencia opcional
tentacle_ip= ip del tentacle opcional
tentacle_port= puerto del tantacle opcional
user_agent= custom User-Agent header que se envía a Apache, opcional.

Ejemplo

urls=https://192.168.0.1/example
agent_name=example
module_prefix=apache
username=admin
password=12345
verify_ssl=true
transfer_mode=tentacle
tentacle_ip=127.0.0.1
tentacle_port=41121
user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36

Ejecución manual

El formato de la ejecución del plugin es el siguiente:

./pandora_apache --url <url del servidor de apache> --user <nombre del usuario de apache> --password <contraseña del servidor de apache> --ssl <verdarero o falso si lo requiere> --transfer_mode < nombre del modo de tranferencia> --tentacle_ip <puedo del tentacle> --tentacle_port <puerto del tentacle> --conf <ruta al fichero de configuración> --string_conf <ruta al fichero de configuración>

Ejemplos:

para ejecutar el modo simple

./pandora_apache --url http://192.168.0.1/server --ssl false --transfer_mode tentacle --tentacle_ip 127.0.0.1 --tentacle_port 41121

para ejecutar el modo avanzado

./pandora_apache --url http://192.168.0.1/server --ssl false --transfer_mode tentacle --tentacle_ip 127.0.0.1 --tentacle_port 41121 --conf /file/file.conf

La ejecución devolverá una salida en formato JSON con información sobre la ejecución, y generará un fichero XML para cada agente monitorizado que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.

Discovery

Este plugin puede integrarse con el Discovery de Pandora FMS.

Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:

https://pandorafms.com/library/

Una vez cargado, se podrán monitorizar los servicio de apache creando tareas de Discovery desde la sección Management > Discovery > Application > Apache

Para cada tarea se solicitarán los siguientes datos mínimos:

image.png

En la siguiente página se nos requerirán los siguientes :

text area para agregar la configuracion de cada uno de los  bloques  de apache que queremos monitorizar

También hay un campo para añadir un agente de usuario personalizado a nivel de tarea.

image.png

Las tareas completadas con éxito tendrán un resumen de ejecución con la siguiente información:

image.png

Agentes y módulos generados por el plugin

El plugin creará un agente por instancia. El nombre se tomará de la URL en modo simple. En modo avanzado, se creará un agente por cada bloque enviado y el nombre se definirá por el campo nombre de agente; si no se especifica, se tomará el nombre de la URL. Las métricas dependen de la configuración y la versión del servidor Apache. En una instalación reciente de Apache con todas las funciones activas, obtendrás todas las métricas. Cada agente contendrá los módulos obtenidos al interactuar con la página de estado del servidor. Los módulos a crear son los siguientes:

Módulo Descripción
ServerVersion La versión del servicio Apache (p. ej., Apache/2.4.62)
ServerMPM El módulo de multiprocesamiento (MPM) que Apache utiliza actualmente (p. ej., event, prefork, worker)
ServerBuild La fecha y hora de compilación del binario del servidor Apache
ParentServerConfigGeneration La generación de la configuración del proceso Apache principal. Se incrementa con cada reinicio.
ParentServerMPMGeneration La generación del MPM del proceso Apache principal
ServerUptimeSeconds El tiempo de actividad del servicio expresado en segundos
Load1 El promedio de carga del sistema durante el último minuto
Load5 El promedio de carga del sistema durante los últimos 5 minutos
Load15 El promedio de carga del sistema durante los últimos 15 minutos
TotalAccesses El número total de solicitudes de cliente recibidas por el servidor desde su último inicio/reinicio. Se calcula como una tasa de cambio.
TotalKBytes La cantidad total de kilobytes de datos servidos por el servidor Apache desde su último inicio/reinicio
TotalDuration El tiempo acumulado dedicado al procesamiento de todas las solicitudes desde que se inició el servidor (en microsegundos o milisegundos, según la versión y configuración de Apache)
CPUUser Tiempo de CPU utilizado por los procesos Apache en modo de usuario desde el inicio del servidor, expresado como porcentaje
CPUSystem Tiempo de CPU utilizado por los procesos Apache en modo de sistema (kernel) desde el inicio del servidor, expresado como porcentaje
CPUChildrenUser Tiempo de CPU utilizado por los procesos secundarios de Apache en modo de usuario
CPUChildrenSystem Tiempo de CPU utilizado por los procesos secundarios de Apache en modo de sistema (kernel)
CPULoad Porcentaje de carga de CPU total consumida por todos los procesos Apache combinados desde el inicio del servidor
Uptime Representación legible del tiempo de actividad del servidor (p. ej., "2 días, 4 horas y 40 minutos"). Se deriva de ServerUptimeSeconds.
ReqPerSec Número promedio de solicitudes atendidas por segundo desde el inicio/reinicio del servidor. No se utiliza, ya que cuenta el promedio desde el último inicio.
BytesPerSec Promedio de bytes servidos por segundo desde el inicio/reinicio del servidor. No se utiliza, ya que cuenta el promedio desde el último inicio.
BytesPerReq Promedio de bytes servidos por solicitud desde el inicio/reinicio del servidor
DurationPerReq Tiempo promedio de procesamiento de cada solicitud desde el inicio/reinicio del servidor (en milisegundos o microsegundos)
BusyWorkers Número total de subprocesos/procesos de trabajo que están actualmente ocupados gestionando solicitudes
GracefulWorkers Número de procesos de trabajo en estado de apagado elegante (esperando a que finalicen las solicitudes actuales)
IdleWorkers Número total de subprocesos/procesos de trabajo actualmente inactivos y listos para gestionar nuevas solicitudes
Processes Número de procesos Apache activos (no subprocesos) ejecutándose actualmente
Stopping Número de procesos de trabajo en estado de detención
ConnsTotal Número total de conexiones al servidor Apache
ConnsAsyncWriting Número de conexiones asíncronas en estado de escritura (aplicable solo al event MPM)
ConnsAsyncKeepAlive Número de conexiones asíncronas en estado de mantenimiento activo (aplicable solo al event MPM)
ConnsAsyncClosing Número de conexiones asíncronas en estado de cierre (aplicable solo al event MPM)
CacheType Tipo de mecanismo de caché utilizado por Apache (p. ej., SHMCB para memoria compartida)
CacheSharedMemory Cantidad total de memoria compartida asignada a la caché (en bytes o kilobytes)
CacheCurrentEntries Número actual de entradas almacenadas en la caché
CacheSubcaches Número de subcachés dentro de la caché principal
CacheIndexesPerSubcaches Número de entradas de índice por subcaché
CacheIndexUsage Porcentaje del espacio de índice de la caché actualmente en uso
CacheUsage Porcentaje total de la memoria de caché actualmente en uso
CacheStoreCount Número total de veces que un elemento se ha almacenado correctamente en la caché
CacheReplaceCount Número total de veces que se ha reemplazado una entrada de caché existente
CacheExpireCount Número total de veces que una entrada de caché ha expirado
CacheDiscardCount Número total de veces que una entrada de caché ha sido descartada
CacheRetrieveHitCount Número total de veces que un elemento solicitado se encontró en la caché (acierto)
CacheRetrieveMissCount Número total de veces que un elemento solicitado no se encontró en la caché (fallo)
CacheRemoveHitCount Número total de veces que un elemento se eliminó correctamente de la caché al encontrarlo
CacheRemoveMissCount Número total de veces que se intentó eliminar un elemento de la caché pero no se encontró

image.png