Cómo monitorear la carga del servidor web Apache y las estadísticas de la página
En este artículo, aprenderá cómo monitorear la carga y las solicitudes del servidor web Apache utilizando el módulo mod_status en sus distribuciones de Linux como CentOS, RHEL y Fedora.
¿Qué es mod_status?
mod_status es un módulo Apache que ayuda a monitorear la carga del servidor web y las conexiones httpd actuales con una interfaz HTML a la que se puede acceder a través de un navegador web.
mod_status de Apache muestra una página HTML simple que contiene información sobre las estadísticas actuales del servidor web, incluidas.
- Número total de solicitudes entrantes
- Número total de bytes y recuentos del servidor.
- El uso de CPU del servidor web
- Carga del servidor
- Tiempo de actividad del servidor
- Tráfico total
- Número total de trabajadores inactivos
- PID con los respectivos clientes y muchos más.
El Proyecto Apache predeterminado habilitó su página de estadísticas del servidor para el público en general. Para obtener una demostración de la página de estado del sitio web ocupado, visite.
- https://status.apache.org/
Entorno de prueba
Hemos utilizado el siguiente entorno de prueba en 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
- DocumentRoot – /var/www/html
- Archivo de configuración de Apache – /etc/httpd/conf/httpd.conf
- Puerto HTTP predeterminado: 80 TCP
- Probar ajustes de configuración – httpd -t
Los requisitos previos para este tutorial son que ya sepa cómo instalar y configurar un servidor Apache básico. Si no sabe cómo configurar Apache, lea el siguiente artículo que podría ayudarle a configurar su propio servidor web Apache.
- Cree su propio servidor web y aloje un sitio web en Linux
Cómo habilitar mod_status en Apache
La instalación predeterminada de Apache viene con mod_status habilitado. De lo contrario, asegúrese de habilitarlo en el archivo de configuración de Apache.
[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
Busque la palabra “mod_status” o siga desplazándose hacia abajo hasta encontrar una línea que contenga.
#LoadModule status_module modules/mod_status.so
Si ve un carácter '#' al principio de "LoadModule", eso significa que mod_status está deshabilitado. Elimine el '#' para habilitar mod_status.
LoadModule status_module modules/mod_status.so
Configurar mod_status
Ahora busque nuevamente la palabra “Ubicación” o desplácese hacia abajo hasta encontrar una sección para mod_status que debería verse como la siguiente.
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, descomente las líneas de directiva de ubicación, SetHandler y las restricciones de directorio según sus necesidades. Por ejemplo, lo mantengo simple con Permitir pedido, 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 predeterminado de Apache (sitio web único). Si ha creado uno o más hosts virtuales 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
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 estado extendido
La configuración "ExtendedStatus" agrega más información a la página de estadísticas, como uso de CPU, solicitud por segundo, tráfico total. , etc. Para habilitarlo, edite el mismo archivo httpd.conf y busque la palabra "Extendido", descomente la línea y establezca el estado "Activado< ”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
Reiniciar Apache
Ahora asegúrese de haber habilitado y configurado correctamente la página de estado del servidor Apache. También puede verificar los errores en la configuración httpd.conf usando el siguiente comando.
[root@tecmint ~]# httpd -t
Syntax OK
Una vez que obtenga la sintaxis OK, podrá reiniciar el servicio httpd.
[root@tecmint ~]# service httpd restart
OR
[root@tecmint ~]# systemctl restart httpd
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
Acceder a la página mod_status
Se podrá acceder a la página de estado de Apache a través de su nombre de dominio con "/server-status" en la siguiente URL.
http://serveripaddress/server-status
OR
http://serev-hostname/server-status
Verá algo similar a la siguiente página con ExtendedStatus habilitado.
En la instantánea anterior, puede ver una interfaz HTML, que muestra toda la información sobre el tiempo de actividad del servidor, el ID del proceso con su respectivo client, la página a la que están intentando acceder.
También muestra el significado y el uso de todas las abreviaturas utilizadas para mostrar el estado, lo que nos ayuda a comprender mejor la situación.
También puede actualizar la página cada segundos (digamos 5 segundos) para ver las estadísticas actualizadas. Para configurar la actualización automática, agregue “?refresh=N” al final de la URL. Donde N se puede reemplazar con la cantidad de segundos que desea que se actualice su página.
http://serveripaddress/server-status/?refresh=5
Vista de la página de estado de la línea de comandos
También puede ver la página de estado de Apache desde la interfaz de línea de comandos utilizando los navegadores de línea de comandos especiales llamados enlaces o lynx. Puede instalarlos utilizando la utilidad de administración de paquetes predeterminada llamada yum como se muestra a continuación.
yum install links
OR
yum install lynx
Una vez que haya instalado, puede obtener las mismas estadísticas en su 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
Salida de muestra
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 monitorear el desempeño 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 ayudarle a convertirse en un administrador de servidores web más exitoso.
- Página de inicio de Apache mod_status
Eso es todo por mod_status por ahora, ofreceremos más trucos y consejos sobre Apache en futuros tutoriales. Hasta entonces, mantente Geeky y atento a linux-console.net y no olvides agregar tus valiosos comentarios.