Generación de logs de acceso en Apache Tomcat

Los logs de acceso son generados por las peticiones que hacen los clientes al servidor web, en este tipo de log generalmente se puede ver el encabezado de la petición, la IP o el host que la realiza, la fecha y hora, el código de respuesta HTTP, entre otros.

Generalmente este tipo de log se configura en el servidor web o de aplicaciones que atienda directamente las peticiones de usuario. Por ejemplo, si la plataforma a monitorear tiene un servidor web Apache recibiendo las peticiones y redireccionándolas a un servidor Apache Tomcat, los logs se deben configurar el en el servidor web; en cambio, si Apache Tomcat recibe las peticiones directamente o, en otras palabras, está expuesto al usuario final, será en los archivos de configuración de Tomcat donde se haga la configuración.

Configuración en Apache Tomcat
Prueba realizada en la versión 6.0.35

0. Antes de realizar cualquier modificación es recomendable hacer una copia de seguridad de los archivos afectados, en este caso el server.xml.

1. Abra en un editor de texto el archivo $CATALINA_HOME/conf/server.xml, donde $CATALINA_HOME es el directorio raíz donde está instalado Tomcat.

2. Vaya a la sección donde se define el log de acceso dentro de <host>, esta sección contiene la Válvula org.apache.catalina.valves.AccessLogValve y está comentada, luce como se muestra en la siguiente imagen.

TomcatAccessValve01.png

3. Elimine los caracteres de comentarios (<!— —>) que rodean a la sección para activarla, debe quedar similar a la siguiente línea:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false" />

4. En el componente pattern se define el contenido del log, la opción common que viene por defecto no incluye el tiempo de respuesta, un dato valioso al momento de realizar un análisis. Para agregar el tiempo de respuesta modifique pattern asignándole el valor {'%h %l %u %t "%r" %s %b %D'}, la sección completa deberá quedar con la siguiente configuración:

<Valve 
       className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
       prefix="localhost_access_log." suffix=".txt" 
       pattern='%h %l %u %t "%r" %s %b %D' resolveHosts="false" />

5. La imagen a continuación es un ejemplo sobre como debería quedar la sección editada:

TomcatAccessValve02.png

6. Ahora cuando ejecute Tomcat y acceda a las aplicaciones verá los logs de acceso en la carpeta $CATALINA_HOME/conf con el nombre indicado en el componente prefix, en este caso localhost_access_log.[fecha].txt. La apariencia de una línea de log es mostrada en la siguiente imagen, donde el último valor corresponde al tiempo de respuesta y la primera a la IP de origen (el ejemplo muestra el formato IPV6):

AccessLogExample.png

Para documentación más detallada sobre las opciones de configuración y el formato del log visite la documentación oficial de Apache Tomcat en: http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve.

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