Archivos de Registro

registro de acceso

el registro de acceso al servidor registra todas las solicitudes procesadas por el servidor. La ubicación y el contenido del registro de acceso están controlados por la directiva CustomLog. La directiva LogFormat se puede utilizar para simplificar la selección del contenido de los registros. En esta sección se describe cómo configurar el servidor para registrar información en el registro de acceso.

Por supuesto, almacenar la información en el registro de acceso es solo el inicio de la administración del registro., El siguiente paso es analizar esta información para producir estadísticas útiles. El análisis de registros en general está más allá del alcance de este documento, y no es realmente parte del trabajo del servidor web en sí. Para obtener más información sobre este tema y para las aplicaciones que realizan análisis de registros, consulte El Directorio abierto.

varias versiones de Apache httpd han utilizado otros módulos y directivas para controlar el registro de acceso, incluyendo mod_log_referer, mod_log_agent, y la directiva TransferLog., La directiva CustomLog ahora subsume la funcionalidad de todas las directivas anteriores.

el formato del registro de acceso es altamente configurable. El formato se especifica usando una cadena de formato que se parece mucho a una cadena de formato printf(1) de estilo C. En las siguientes secciones se presentan algunos ejemplos. Para obtener una lista completa de los posibles contenidos de la cadena de formato, consulte mod_log_config cadenas de formato.

formato de registro común

una configuración típica para el registro de acceso podría verse como sigue.,

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

esto define el apodo common y lo asocia con una cadena de formato de registro particular. La cadena de formato consiste en directivas de porcentaje, cada una de las cuales le dice al servidor que registre una información en particular. Los caracteres literales también se pueden colocar en la cadena de formato y se copiarán directamente en la salida del registro. El carácter de Comilla (") debe escaparse colocando una barra invertida antes para evitar que se interprete como el final de la cadena de formato., La cadena de formato también puede contener los caracteres de control especiales «\n » para la nueva línea y «\t» para la pestaña.

la directiva CustomLog establece un nuevo archivo de registro utilizando el apodo definido. El nombre de archivo para el registro de acceso es relativo al ServerRoot a menos que comience con una barra diagonal.

la configuración anterior escribirá entradas de registro en un formato conocido como Common Log Format (CLF). Este formato estándar puede ser producido por muchos servidores web diferentes y leído por muchos programas de análisis de Registros., Las entradas del archivo de registro producidas en CLF se verán algo como esto:

127.0.0.1 - frank "GET /apache_pb.gif HTTP/1.0" 200 2326

cada parte de esta entrada de registro se describe a continuación.

127.0.0.1(%h) Esta es la dirección IP del cliente (host remoto) que hizo la solicitud para el servidor. SiHostnameLookupsse establece enOn, entonces el servidor intentará determinar el nombre de host y registrarlo en lugar de la dirección IP. Sin embargo, esta configuración no se recomienda ya que puede ralentizar significativamente el servidor., En su lugar, es mejor usar un post-procesador de registro comologresolvepara determinar los nombres de host. La dirección IP reportada aquí no es necesariamente la dirección de la máquina en la que el Usuario está sentado. Si existe un servidor proxy entre el Usuario y el servidor, esta dirección será la dirección del proxy, en lugar de la máquina de origen.-(%l) El «guión» en la salida indica que la información solicitada no está disponible., En este caso, la información que no está disponible es la identidad RFC 1413 del cliente determinada poridentden el equipo del cliente. Esta información es muy poco fiable y casi nunca debe utilizarse, excepto en redes internas estrechamente controladas. Apache httpd ni siquiera intentará determinar esta información a menos queIdentityCheckesté establecido enOn.frank(%u) este es el ID de usuario de la persona que solicita el documento según lo determinado por la autenticación HTTP., El mismo valor se proporciona típicamente a los scripts CGI en la variable de entornoREMOTE_USER. Si el código de estado de la solicitud (Ver más abajo) es 401, entonces este valor no debe ser de confianza porque el usuario aún no está autenticado. Si el documento no está protegido con contraseña, esta parte será «-» al igual que la anterior.(%t) la hora en que se recibió la solicitud., El formato es:

es posible mostrar la hora en otro formato especificando %{format}ten la cadena de formato de registro, donde formates como en strftime(3) de la biblioteca estándar de C, o uno de los tokens especiales soportados. Para obtener más información, consulte las cadenas de formato mod_log_config.

"GET /apache_pb.gif HTTP/1.0"(\"%r\") La línea de petición desde el cliente se da entre comillas dobles. La línea de solicitud contiene una gran cantidad de información útil., En primer lugar, el método utilizado por el cliente es

GET. En segundo lugar, el cliente solicitó el recurso/apache_pb.gif, y en tercer lugar, el cliente utilizó el protocoloHTTP/1.0. También es posible registrar una o más partes de la línea de solicitud de forma independiente. Por ejemplo, la cadena de formato «%m %U%q %H» registrará el método, la ruta, la cadena de consulta y el protocolo, dando como resultado exactamente la misma salida que «%r«.200(%>s) Este es el código de estado que el servidor envía de vuelta al cliente., Esta información es muy valiosa, porque revela si la solicitud se tradujo en una respuesta correcta (códigos de comienzo en 2), una redirección (códigos de inicio en 3), un error causado por el cliente (los códigos de inicio en 4), o un error en el servidor (códigos de comienzo en 5). La lista completa de posibles códigos de estado se puede encontrar en la especificación HTTP (RFC2616 sección 10).2326(%b) la última parte indica el tamaño del objeto devuelto al cliente, sin incluir los encabezados de respuesta., Si no se devolvió ningún contenido al cliente, este valor será «-«. Para registrar «0«sin contenido, use%Ben su lugar.

Combined Log Format

otra cadena de formato comúnmente utilizada se denomina Combined Log Format. Se puede utilizar de la siguiente manera.

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined

este formato es exactamente el mismo que el formato de registro común, con la adición de dos campos más. Cada uno de los campos adicionales utiliza la directiva percent %{header}i, donde el encabezado puede ser cualquier encabezado de solicitud HTTP., El registro de acceso bajo este formato se verá como:

Los campos adicionales son:

"http://www.example.com/start.html"(\"%{Referer}i\") el encabezado de solicitud HTTP «Referer» (SIC). Esto da el sitio del que el cliente informa haber sido referido. (Esta debe ser la página que enlaza o incluye/apache_pb.gif)."Mozilla/4.08 (Win98; I ;Nav)"(\"%{User-agent}i\") el encabezado de solicitud HTTP del agente de usuario. Esta es la información de identificación que el navegador del cliente informa sobre sí mismo.,

registros de Acceso Múltiple

se pueden crear registros de acceso múltiple simplemente especificando varias directivas CustomLog en el archivo de configuración. Por ejemplo, las siguientes directivas crearán tres registros de acceso. El primero contiene la información básica de CLF, mientras que el segundo y el tercero contienen información de referencia y del navegador. Los últimos dos CustomLog líneas muestran cómo imitar los efectos de la etiqueta ReferLog y AgentLog directivas.,

este ejemplo también muestra que no es necesario definir un apodo con la directiva LogFormat. En su lugar, el formato de registro se puede especificar directamente en la directiva CustomLog.

registros condicionales

a veces es conveniente excluir ciertas entradas de los registros de acceso en función de las características de la solicitud del cliente. Esto se logra fácilmente con la ayuda de variables de entorno. En primer lugar, se debe establecer una variable de entorno para indicar que la solicitud cumple ciertas condiciones., Esto generalmente se logra con SetEnvIf. A continuación, la cláusula env= de la directiva CustomLog se utiliza para incluir o excluir solicitudes donde se establece la variable de entorno. Algunos ejemplos:

como otro ejemplo, considere registrar solicitudes de personas de habla inglesa en un archivo de registro y de personas que no hablan inglés en un archivo de registro diferente.

SetEnvIf Accept-Language "en" englishCustomLog logs/english_log common env=englishCustomLog logs/non_english_log common env=!english

en un escenario de almacenamiento en caché uno querría saber acerca de la eficiencia de la caché., Un método muy sencillo para averiguar esto sería:

SetEnv CACHE_MISS 1LogFormat "%h %l %u %t "%r " %>s %b %{CACHE_MISS}e" common-cacheCustomLog logs/access_log common-cache
mod_cache se ejecutará antes de mod_env y, cuando tiene éxito, va a entregar el contenido sin ella. En ese caso, una visita a la caché registrará -, mientras que una falta de caché registrará 1.,

Además de la sintaxis env=, LogFormat admite valores de registro condicionados al código de respuesta HTTP:

LogFormat "%400,501{User-agent}i" browserlogLogFormat "%!200,304,302{Referer}i" refererlog

en el primer ejemplo, el User-agent se registrará si el código de estado HTTP es 400 o 501. En otros casos, se registrará un «-» literal en su lugar. Del mismo modo, en el segundo ejemplo, el Referer se registrará si el código de estado HTTP no es 200, 204 o 302. (Nota el»!»antes de los códigos de estado.,

aunque acabamos de demostrar que el registro condicional es muy potente y flexible, no es la única forma de controlar el contenido de los registros. Los archivos de registro son más útiles cuando contienen un registro completo de la actividad del servidor. A menudo es más fácil simplemente procesar los archivos de registro para eliminar las solicitudes que no desea considerar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *