Cómo monitorear la carga del servidor web Apache y las estadísticas de la página


Como se prometió en nuestros tutoriales anteriores de la serie Apache, hoy estamos aquí con otro artículo sobre el servidor web Apache HTTP que puede hacer que la vida de un administrador del sistema sea mucho más fácil para manejar una carga de servidor web Apache usando el módulo mod_status.

¿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 a la 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, incluido.

  1. Total number of incoming requests
  2. Total number of bytes and counts server
  3. The CPU usage of Webserver
  4. Server Load
  5. Server Uptime
  6. Total Traffic
  7. Total number of idle workers
  8. PIDs with the respective clients and many more.

El Proyecto Apache predeterminado habilitó la página de estadísticas de su servidor para el público en general. Para obtener una demostración de la página de estado del sitio web ocupado, visite.

  1. https://status.apache.org/

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.

  1. Operating System – CentOS 6.9
  2. Application – Apache Web Server
  3. IP Address – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Apache Configuration file – /etc/httpd/conf/httpd.conf (for Red Hat)
  6. Default HTTP Port – 80 TCP
  7. Test Configuration Settings – httpd -t

Los requisitos previos para este tutorial son que ya debe saber 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 ayudarlo a configurar su propio servidor web Apache.

  1. Create Your Own Webserver and Hosting A Website in Linux

Cómo habilitar mod_status en Apache

La instalación predeterminada de Apache viene con mod_status habilitado. Si no es así, asegúrese de habilitarlo en el archivo de configuración de Apache.

[[email protected] ~]# vi /etc/httpd/conf/httpd.conf

Busque la palabra "mod_status" o siga desplazándose hacia abajo hasta que encuentre una línea que contenga.

#LoadModule status_module modules/mod_status.so

Si ve un carácter "#" al principio de "LoadModule", significa que mod_status está deshabilitado. Quite el "#" para habilitar mod_status.

LoadModule status_module modules/mod_status.so

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, elimine el comentario de las líneas para la directiva Location, SetHandler y las restricciones de directorio según sus necesidades. Por ejemplo, lo mantengo simple con la orden Permitir, denegar y está permitido para todos.

<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from all 
</Location>

Entonces, básicamente, debe definir la misma configuración para cada host virtual para cualquier dominio que haya 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>

La configuración de "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 "Extended" y elimine el comentario de la línea y configure 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

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 de httpd.conf usando el siguiente comando.

[[email protected] ~]# httpd -t

Syntax OK

Una vez que obtenga la sintaxis correcta, podrá reiniciar el servicio httpd.

[[email protected] ~]# service httpd restart
OR
[[email protected] ~]# systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

Se podrá acceder a la página de estado de Apache a través de su nombre de dominio con "/ server-status" en las siguientes 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 que una interfaz HTML, que muestra toda la información sobre el tiempo de actividad del servidor, procesa la identificación con su cliente respectivo, 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 segundo (digamos 5 segundos) para ver las estadísticas actualizadas. Para configurar la actualización automática, agregue "? Refresh u003d N" al final de la URL. Donde N se puede reemplazar con la cantidad de segundos que desea que su página se actualice.

http://serveripaddress/server-status/?refresh=5

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 usando la utilidad de administrador de paquetes predeterminada llamada yum como se muestra a continuación.

# yum install links

OR

# yum install lynx

Una vez que haya instalado el, puede obtener las mismas estadísticas en su terminal usando el siguiente comando.

[[email protected] ~]# links http://serveripaddress/server-status
OR
[[email protected] ~]# lynx http://serveripaddress/server-status
OR
[[email protected] ~]#  /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 monitorear el desempeño de la actividad de un servidor web y puede resaltar los 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.

  1. Apache mod_status Homepage

Eso es todo por mod_status por ahora, encontraremos algunos trucos y consejos más sobre Apache en futuros tutoriales. Hasta entonces, manténgase atento a Tecmint.com y no olvide agregar sus valiosos comentarios.