Para habilitar la visualización de la información de actividad y rendimiento del servidor a través de una página HTML, en la que se mostrarán estadísticas, debemos tener instalado el módulo mod_status de Apache.
Este módulo nos mostrará la información en tiempo real, ya que nos permite tener la función de refrescar automáticamente la Web en el navegador en el que este sea compatible con la función. En el caso de no ser compatible con la función de refrescar automáticamente deberemos actualizarlo manualmente o utilizar algún «plugin» del navegador que usemos que haga la función de recargar la Web cada cierto tiempo.
La ventaja de usar este módulo es que podemos averiguar qué provoca un mayor consumo de CPU y memoria. Así se podrán tomar medidas para solventar los problemas que originen ralentización o caídas del servidor.
Pasos para activar Server-status
Comprueba que tienes activado el módulo mod_status
Como root en una terminal o por acceso SSH de tu servidor ejecuta:
apachectl -t -D DUMP_MODULES
Deberá aparecer entre los módulos activados «status_module«.
Si quieres mostrar solamente el resultado de este módulo, como root ejecuta:
apachectl -t -D DUMP_MODULES | grep -i status
Si no aparece el módulo en el listado es que no está activado en Apache.
Si se quiere saber si el módulo está disponible en el sistema, como root ejecutamos:
ls -lh /usr/lib/apache2/modules/
Si el módulo aparece en /usr/lib/apache2/modules/ pero no aparece en el listado de módulos activados, debemos activar el módulo con la herramienta a2enmod como root:
a2enmod status
Y en el caso de querer desactivarlo, como root ejecutamos:
a2dismod status
Una vez hayamos realizado los cambios de activar o desactivar el módulo, debemos recargar la configuración de Apache, como root, ejecutamos:
/etc/init.d/apache2 reload
Una vez activado el módulo, en todos los dominios alojados en el servidor estará visible el Server-status. Por ejemplo, en https://dominiodeprueba.dom/server-status
Para limitar la visualización de Server-status a los dominios en los que quieras tenerlo habilitado solamente, se debe especificar en el archivo de configuración httpd.conf o apache2.conf, dependiendo de la distribución Linux que estemos usando.
En Debian, Ubuntu y derivados de Debian: Editar el archivo /etc/apache2/apache2.conf
En CentOS, RHEL y derivados: Editar el archivo /etc/httpd/conf/httpd.conf
En Gentoo, SuSe Linux, Solaris: Editar el archivo /etc/apache2/httpd.conf
En Slackware: Editar el archivo /etc/httpd/httpd.conf
Añadiremos a este archivo las siguientes líneas:
<Location "/server-status">
SetHandler server-status
Require host example.com
</Location>
Ahora puede visualizar sus estadísticas del estado del servidor solamente el dominio que hemos especificado. Por ejemplo, con la URL:
https://example.com/server-status
Para visualizarlo con actualizaciones automáticas añadiremos al final de la URL: ?refresh=N , sustituyendo N por el número de segundos. Por ejemplo: con la URL:
https://example.com/server-status=refresh=10
Limitar el acceso a Server-status
Se puede limitar el acceso al Server-status a una IP:
En el mismo archivo httpd.conf o apache2.conf, dependiendo de la distribución Linux, editado anteriormente, añadimos las siguientes líneas:
ExtendedStatus on
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 000.000.000.000
</Location>
Sustituyendo 000.000.000.000 por la dirección IP que queramos permitir acceder al Server-status.
Se puede limitar el acceso al Server-status con el uso de una contraseña:
ExtendedStatus on
<Location /server-status>
SetHandler server-status
AuthType basic
AuthName "Apache status"
AuthUserFile /etc/httpd/conf/server-status_htpasswd
Require valid-user
</Location>
Recuerda que tras modificar el archivo de configuración hay que reiniciar el servicio Apache.