Dígame cómo utilizar expresiones regulares para analizar los registros de acceso de Tomcat.
Un servidor web general tiene dos partes de registros:
La primera es el registro de ejecución, que registra principalmente información de ejecución, especialmente información de registro de errores anormales
El segundo es la información del registro de acceso, que registra el tiempo de acceso, la IP, la información accedida y otra información relacionada.
Ahora permítanme presentarles los datos del registro de acceso generados por Tomcat. ¿Qué análisis de datos efectivo podemos hacer?
El primero es configurar los datos del registro de acceso de Tomcat. De forma predeterminada, el registro de acceso no está activado. El método de configuración es el siguiente:
Editar ?${catalina}. Archivo /conf/server.xml Nota: ${catalina} es el directorio de instalación de Tomcat
Simplemente elimine los siguientes comentarios ().
¿dónde?directorio ¿Es el directorio generado? Tomcat instala ${catalina} como el directorio actual
el patrón indica el formato de producción de registros, y lo común es un formato de configuración estándar proporcionado por Tomcat. Su expresión específica es?%h?%l?%u?%t?"%r"?%s?%b
Pero recomiendo la siguiente configuración específica, porque hay algunas configuraciones estándar Registro importante No se pueden generar datos.
%h?%l?%u?%t?"%r"?%s?%b?%T?
La descripción específica del estilo de generación de registros es la siguiente ( del extracto oficial del documento):
*?%a?-?Dirección?IP?remota
*?%A?-?Dirección?IP?local?
*?%b?-?Bytes?enviados,?excluyendo?encabezados?HTTP?o?'-'?if?zero
*?%B?-?Bytes?enviados, ?excluyendo?HTTP ?encabezados
*?%h?-?Remote?host?name?(o?IP?address?if?resolveHosts?is?false)
*? %H?- ?Solicitar?protocolo
*?%l?-?Remoto?nombre de usuario?lógico?de?identd?(siempre?devuelve?'-')
*? %m?- ?Método?de?solicitud?(GET,?POST,?etc.)
*?%p?-?Puerto?local?en?cuál?se?recibió?esta?solicitud p>
*?%q?-?Query?string?(antepuesto?a?'?'?si?existe)
*?%r?-?First?line ?de?la ?solicitud?(método?y?solicitud?URI)
*?%s?-?HTTP?código?de?estado?de?la?respuesta
*? %S?- ?ID?de?sesión?de?usuario
*?%t?-?Fecha?y?hora,?en?formato?de?registro?común
*?%u? -?Usuario?remoto?que?fue?autenticado?(si?hay alguno),?else?'-'
*?%U?-?URL?solicitada?ruta
*?%v ?-?Nombre?del?servidor?local
*?%D?-?Tiempo?necesario?para?procesar?la?solicitud?,?en?millis
* ?%T? -?Tiempo?que?se?toma??procesar?la?solicitud?,?en?segundos
¿También?hay?soporte?para?escribir?información?desde?la?cookie? encabezado
entrante,?la?Sesión?o?algo?en?la?ServletRequest.?Está
modelado?según?la?sintaxis?de?apache: p>
*?%{xxx}i?para?encabezados?entrantes
*?%{xxx}c?para?una?cookie?específica
*?% {xxx}r ?xxx?es?un?atributo?en?la?ServletRequest
*?%{xxx}s?xxx?es?un?atributo?en?la?HttpSession
Ahora regresemos y echemos un vistazo a los datos del registro de acceso producidos por la siguiente configuración:%h?%l?%u?%t?"%r"?%s?%b?%T? ¿Qué hacemos?
Echemos un vistazo primero. Los datos que podemos obtener son:
*?%h?Dirección IP del usuario visitado
.p>
*?%l?Acceder al nombre de usuario lógico, generalmente devuelve '-'
*?%u?Acceder al nombre de usuario de verificación, generalmente devuelve'-'
* ?% t?Fecha y hora de acceso
*?%r?Método de acceso (publicar u obtener), recursos accedidos y versión del protocolo http utilizada
*?%s? el acceso
*?%b?El tráfico devuelto por el recurso de acceso
*?%T?El tiempo utilizado para el acceso
Con estos datos, podemos hacer el siguiente análisis y procesamiento según el período de tiempo (las imágenes se generan dinámicamente usando la herramienta jfreechart):
*?Estadísticas sobre el número de IP independientes
*?Estadísticas sobre el número de solicitudes de acceso
*? ¿Estadísticas sobre el número de archivos de datos de acceso
*? ¿Estadísticas sobre el tráfico de acceso?
*? tiempo
*? Estadísticas de las 404 páginas de error
*? ¿Contar las 500 páginas de error
*? p>*? Cuente las páginas con el tiempo de procesamiento de acceso más largo
*?Estadísticas sobre las páginas con la mayor frecuencia de acceso simultáneo
La herramienta de análisis incluye dos partes. intérprete, que se ejecuta una vez al día para analizar los datos de registro en segundo plano y guardarlos en la base de datos.
El segundo es el programa de visualización, que consulta datos de la base de datos y genera la información del gráfico correspondiente.