Ficheros .log y su control

Para gestionar y administrar de forma efectiva un servidor web, es necesario tener registros tanto de la actividad y rendimiento como de cualquier otro problema que pueda surgir. El servidor Apache 2.0 ofrece un gran número de características para conseguir un seguimiento y control óptimos del servidor.

Registro de errores

El registro de errores del servidor, cuyo nombre y ubicación se especifica en la directiva ErrorLog, es el más importante de todos los registros. Apache enviará cualquier información de diagnóstico y registrará cualquier error que encuentre al procesar peticiones al archivo de registro seleccionado. Es el primer lugar donde se debe mirar cuando surja un problema al iniciar el servidor o durante su operación normal, porque con frecuencia se encontrará en él información detallada de qué ha ido mal y cómo solucionar el problema.

El registro de errores se escribe normalmente en un fichero (cuyo nombre suele ser error_log en sistemas Unix y error.log en Windows y OS/2). En sistemas Unix también es posible hacer que el servidor envíe los mensajes de error al syslog o pasarlos a un programa.

El formato del registro de errores es relativamente libre y descriptivo. No obstante, hay cierta información que se incluye en casi todas las entradas de un registro de errores. Por ejemplo, este es un mensaje típico:

[Mon Feb 22 13:23:32 2007] [error] [client 127.0.0.1] client denied by server configuration: > /home/dap/testing

El primer elemento de la entrada es la fecha y la hora del mensaje. El segundo indica la gravedad del error que se ha producido. La directiva LogLevel se usa para controlar los tipos de errores que se envían al registro de errores según su gravedad. La tercera parte contiene la dirección IP del cliente que generó el error. Después de la dirección IP está el mensaje de error propiamente dicho, que en este caso indica que el servidor ha sido configurado para denegar el acceso a ese cliente. El servidor reporta también la ruta en el sistema de ficheros (en vez de la ruta en el servidor web) del documento solicitado.

En el registro de errores puede aparecer una amplia variedad de mensajes diferentes. La mayoría tienen un aspecto similar al del ejemplo de arriba. El registro de errores también contiene mensaje de depuración de scripts CGI. Cualquier información escrita en el stderr por un script CGI se copiará directamente en el registro de errores.

El registro de errores no se puede personalizar añadiendo o quitando información. Sin embargo, las entradas del registro de errores que se refieren a determinadas peticiones tienen sus correspondientes entradas en el registro de acceso. El ejemplo de arriba se corresponde con una entrada en el registro de acceso que tendrá un código de estado 403. Como es posible personalizar el registro de acceso, puede obtener más información sobre los errores que se producen usando también ese registro.

Si se hacen pruebas, suele ser de utilidad monitorizar de forma continua el registro de errores para comprobar si ocurre algún problema. En sistemas Unix, esto se puede hacer usando:

tail -f error_log

Registro de acceso

El servidor Apache 2.0 no sólo almacena en los registros datos relacionados con errores, sino también todos aquéllos que tienen que ver con el acceso. Es decir, se podrán comprobar la fecha y hora de acceso, la dirección IP del cliente que ha accedido, qué recurso a solicitado, etc.

En la gestión de este tipo de registros, las directivas LogFormat y CustomLog son de una gran utilidad. LogFormat se utiliza para configurar el formato que se desea aplicar en los registros, y CustomLog para establecer la ubicación del archivo de registro y qué datos son los que queremos registrar.

Una configuración típica del registro de acceso podría tener un aspecto similar a este:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

Con esto se define el apodo (nickname) common, y se le asocia con un determinado formato. El formato consiste en una serie de directivas con tantos por ciento, cada una de las cuales le dice al servidor que registre una determinada información en particular. El formato también puede incluir caracteres literales, que se copiarán directamente en el registro. Si se usa el carácter comillas (") se debe de anteponer una barra invertida para evitar que sea interpretado como el final de la cadena de caracteres a registrar. El formato que se especifique también puede contener los caracteres de control especiales "\n" para salto de línea y "\t" para tabulador. La directiva CustomLog crea un nuevo fichero de registro usando el apodo definido.

Un archivo de registro suele tener el siguiente formato:

127.0.0.1 – usuario1 [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

A continuación se explicarán cada una de estas partes:

127.0.0.1 (%h): Es la dirección IP del cliente (host remoto) que hizo la petición al servidor.

- (%l): Un guión significa que la información que debería estar en ése lugar no está disponible. Esta información es muy poco fiable, por lo que no se recomienda su uso.

usuario1 (%u): Es el identificador de usuario de quien solicita el documento determinado por la autentificación HTTP.

[10/Oct/2000:13:55:36 -0700] (%t): La fecha y hora en la que el usuario solicitó el recurso.

"GET /apache_pb.gif HTTP/1.0" (\"%r\"): El recurso que el usuario solicitó, junto con la versión del protocolo.

200 (%>s): Es el código de estado que devuelve el servidor.

2326 (%b): Es el tamaño del objeto enviado al cliente.

Controlar la actividad del servidor: mod_status

El módulo Status permite al administrador del servidor encontrar la mejor manera de gestionar y administrar la actividad y servicio de Apache 2.0. Este módulo, para presentar la información de estado del servidor, presenta una página web con las actuales estadísticas en un formulario de fácil lectura.

Para activar los informes de estado para acceder con el navegador sólo desde el dominio dominio.com, se debe añadir el siguiente código al archivo de configuración httpd.conf:

<Location /server-status>
SetHandler server-status

Order Deny,Allow
Deny from all
Allow from .dominio.com
</Location>

Ahora se puede acceder a las estadísticas del servidor usando un navegador web desde la página http://nombre_del_servidor/server-status.

« Apache 2 | Monitorización en Apache 2

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License