En este artículo, aprenderás cómo monitorear la carga y las solicitudes del servidor web Apache utilizando el módulo mod_status en tus distribuciones de Linux como CentOS, RHEL y Fedora.
¿Qué es mod_status?
mod_status es un módulo de Apache que ayuda a monitorear la carga del servidor web y las conexiones httpd actuales con una interfaz HTML que se puede acceder a través de un navegador web.
El mod_status de Apache muestra una página HTML simple que contiene la información sobre las estadísticas actuales del servidor web, incluyendo:
- Número total de solicitudes entrantes
- Número total de bytes y recuenta del servidor
- El uso de CPU del servidor web
- Carga del servidor
- Tiempo de actividad del servidor
- Trafico total
- Número total de trabajadores inactivos
- PIDs con los clientes respectivos y muchos más.
El proyecto Apache predeterminado habilitó su página de estadísticas del servidor al público en general. Para ver una demostración de la página de estado del sitio web ocupado, visita:
Entorno de prueba
Hemos utilizado el siguiente Entorno de prueba para este artículo para explorar más sobre mod_status con algunos ejemplos prácticos y capturas de pantalla.
- Sistema Operativo: CentOS 8/7
- Aplicación – Servidor Web Apache
- Dirección IP – 5.175.142.66
- Directorio de Documentos – /var/www/html
- Archivo de Configuración de Apache – /etc/httpd/conf/httpd.conf
- Puerto HTTP Predeterminado – 80 TCP
- Configuración de Prueba – httpd -t
Los requisitos previos para este tutorial son que ya debes saber cómo instalar y configurar un Servidor Apache Básico. Si no sabes cómo configurar Apache, lee el siguiente artículo que podría ayudarte a configurar tu propio Servidor Web Apache.
Cómo Habilitar mod_status en Apache
La instalación predeterminada de Apache viene con mod_status habilitado. Si no, asegúrate de habilitarlo en el archivo de configuración de Apache.
[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
Busca la palabra “mod_status” o sigue bajando hasta encontrar una línea que lo contenga.
#LoadModule status_module modules/mod_status.so
Si ves un carácter “#” al principio de “LoadModule”, eso significa que mod_status está deshabilitado. Elimina el “#” para habilitar mod_status.
LoadModule status_module modules/mod_status.so
Configurar mod_status
Ahora busca nuevamente la palabra “Ubicación” o desplázate hacia abajo hasta encontrar una sección para mod_status que debería lucir como sigue.
# Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. # #<Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .example.com #</Location>
En la sección anterior, descomenta las líneas para la directiva de Ubicación, SetHandler y las restricciones de directorio según tus necesidades. Por ejemplo, lo estoy manteniendo simple con el Orden Permitir, denegar y está permitido para todos.
<Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from all </Location>
Nota: La configuración anterior es la configuración predeterminada para el sitio web Apache por defecto (un solo sitio web). Si has creado uno o más Hosts Virtuales de Apache, la configuración anterior no funcionará.
Entonces, básicamente, necesitas definir la misma configuración para cada host virtual para cualquier dominio que hayas configurado en Apache. Por ejemplo, la configuración del host virtual para mod_status se verá así.
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/example.com ServerName example.com ErrorLog logs/example.com-error_log CustomLog logs/example.com-access_log common <Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from example.com </Location> </VirtualHost>
Habilitar ExtendedStatus
La configuración de “ExtendedStatus” agrega más información a la página de estadísticas como uso de CPU, petición por segundo, tráfico total, etc. Para habilitarlo, edita el mismo archivo httpd.conf y busca la palabra “Extended” y descomenta la línea y establece el estado “On” para la directiva ExtendedStatus.
# ExtendedStatus controls whether Apache will generate "full" status # information (ExtendedStatus On) or just basic information (ExtendedStatus # Off) when the "server-status" handler is called. The default is Off. # ExtendedStatus On
Reinicia Apache
Ahora asegúrate de que has habilitado y configurado correctamente la página de estado del servidor Apache. También puedes verificar los errores en la configuración de httpd.conf usando el siguiente comando.
[root@tecmint ~]# httpd -t Syntax OK
Una vez que la sintaxis es OK, puedes reiniciar el servicio httpd.
[root@tecmint ~]# service httpd restart OR [root@tecmint ~]# systemctl restart httpd Stopping httpd: [ OK ] Starting httpd: [ OK ]
Accede a la página mod_status
La página de estado de Apache será accesible a través de tu nombre de dominio con “/server-status” en las siguientes URL.
http://serveripaddress/server-status OR http://serev-hostname/server-status
Verás algo similar a la siguiente página con ExtendedStatus habilitado.

En la captura de pantalla anterior, puedes ver una interfaz HTML, que muestra toda la información sobre el tiempo de actividad del servidor, el Id. de proceso con su respectivo cliente, la página que están intentando acceder.
También muestra el significado y uso de todas las abreviaturas utilizadas para mostrar el estado, lo que nos ayuda a comprender mejor la situación.
También puedes actualizar la página cada N segundos (digamos, 5 segundos) para ver las estadísticas actualizadas. Para establecer la actualización automática, agrega “?refresh=N” al final de la URL. Donde N puede ser reemplazado con el número de segundos que desees que se actualice tu página.
http://serveripaddress/server-status/?refresh=5

Vista de la página de estado de la línea de comandos
También puedes ver la página de estado de Apache desde la interfaz de línea de comandos usando los navegadores especiales de línea de comandos llamados links o lynx. Puedes instalarlos usando el gestor de paquetes por defecto llamado yum como se muestra a continuación.
# yum install links OR # yum install lynx
Una vez que los hayas instalado, puedes obtener las mismas estadísticas en tu terminal usando el siguiente comando.
[root@tecmint ~]# links http://serveripaddress/server-status OR [root@tecmint ~]# lynx http://serveripaddress/server-status OR [root@tecmint ~]# /etc/init.d/httpd fullstatus
Apache Server Status for localhost Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 Server Built: Aug 13 2013 17:29:28 -------------------------------------------------------------------------- Current Time: Tuesday, 14-Jan-2014 04:34:13 EST Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST Parent Server Generation: 0 Server uptime: 4 hours 1 minute 7 seconds Total accesses: 2748 - Total Traffic: 9.6 MB CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load .19 requests/sec - 695 B/second - 3658 B/request 1 requests currently being processed, 4 idle workers .__.__W... Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of a worker, "." Open slot with no current process Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request 0-0 - 0/0/428 . 0.30 5572 0 0.0 0.00 1.34 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 1-0 5606 0/639/639 _ 0.46 4 0 0.0 2.18 2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 2-0 5607 0/603/603 _ 0.43 0 0 0.0 2.09 2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 3-0 - 0/0/337 . 0.23 5573 0 0.0 0.00 1.09 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 4-0 5701 0/317/317 _ 0.23 9 0 0.0 1.21 1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 5-0 5708 0/212/213 _ 0.15 6 0 0.0 0.85 0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 6-0 5709 0/210/210 W 0.16 0 0 0.0 0.84 0.84 127.0.0.1 5.175.142.66 GET /server-status HTTP/1.1 7-0 - 0/0/1 . 0.00 5574 0 0.0 0.00 0.00 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 -------------------------------------------------------------------------- Srv Child Server number - generation PID OS process ID Acc Number of accesses this connection / this child / this slot M Mode of operation CPU CPU usage, number of seconds SS Seconds since the beginning of the most recent request Req Milliseconds required to process most recent request Conn Kilobytes transferred this connection Child Megabytes transferred this child Slot Total megabytes transferred this slot -------------------------------------------------------------------------- Apache/2.2.15 (CentOS) Server at localhost Port 80
Conclusión
El módulo mod_status de Apache es una herramienta de monitoreo muy útil para supervisar el rendimiento de la actividad de un servidor web y puede resaltar problemas por sí mismo. Para obtener más información, lea la página de estado que puede ayudarlo a convertirse en un administrador de servidor web más exitoso.
Eso es todo por mod_status por ahora, presentaremos algunos trucos y consejos sobre Apache en futuros tutoriales. Hasta entonces, mantente geek y sintonizado en Tecmint.com y no olvides agregar tus valiosos comentarios.
Source:
https://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/