miércoles, 28 de julio de 2010

Entendiendo el archivo access.log de Squid3

Los registros son una fuente valiosa de información sobre las cargas de trabajo y el rendimiento de Squid. Los registros no sólo accesan la información, sino también errores de configuración del sistema y el consumo de recursos (por ejemplo, memoria, espacio en disco). 

Hay registro de varios archivos gestionados por Squid. Algunos tienen que ser explícitamente activos durante el tiempo de compilación, otros con seguridad se puede desactivar durante el tiempo de ejecución. Hay algunos puntos básicos comunes a todos los archivos de registro. Las marcas de tiempo registrado en los archivos de registro suelen ser segundos UTC salvo que se indique lo contrario. La marca de tiempo inicial por lo general contiene una extensión de milisegundo.

Una entrada access.log por lo general consiste de (al menos) 10 columnas separadas por uno o más espacios:


1. time: Una marca de tiempo Unix como segundos UTC, con una resolución de milisegundos. Usted puede convertir las marcas de tiempo Unix en algo más legible para usar este script en perl resumen:

             s/^\d+\.\d+/localtime $&/e;

2. duration: El tiempo transcurrido se soporta debido a considera cuántos milisegundos la transacción ocupó la caché. Se diferencia de interpretación entre TCP y UDP: HTTP Para esto es básicamente el momento de haber recibido la solicitud de calamar cuando termina de enviar el último byte de la respuesta. Para la PIC, este es el tiempo entre una programación de respuesta y de hecho lo envío. Por favor tenga en cuenta que las entradas se registran después de la respuesta terminó siendo enviado, no durante la vida útil de la operación.

3. client address: La dirección IP de la instancia de solicitud, la dirección IP del cliente. La opción de configuración client_netmask pueden distorsionar los clientes por razones de protección de datos, pero hace que el análisis sea más difícil. Muchas veces es mejor usar uno de los anonimizadores archivo de registro. Además, la opción de configuración log_fqdn puede registrar el nombre de dominio completo del cliente en lugar de la cuaterna. El uso de esta opción no se recomienda debido a su impacto en el rendimiento.

4. result codes: Esta columna se compone de dos elementos separados por una diagonal. En esta columna se codifica el resultado de transacciones: El resultado de la solicitud de caché contiene información sobre el tipo de solicitud, la forma en que se ha cumplido, ni por qué ha fallado. Por favor, consulte los códigos de resultado para Squid válidos los códigos de resultado simbólico. Varios códigos de versiones anteriores ya no están disponibles, se cambia de nombre, o se separan. Especialmente los códigos ERR_ no parecen figurar en el archivo de registro más. También se refieren a los códigos de resultado Squid para obtener más información sobre los códigos ya no está disponible. La parte de estado contiene el resultado HTTP códigos con algunas extensiones específicas de Squid. Squid utiliza un subconjunto de los códigos de error RFC definidos para HTTP. Consulte la sección de códigos de estado para obtener detalles de los códigos de estado reconocido.

5. bytes: El tamaño es la cantidad de datos entregados al cliente. Lamentamos que esto no constituye el tamaño del objeto red, como los encabezados también se cuentan. Además, no podrán entregar las solicitudes una página de error, el tamaño de la que también se registra aquí.

6. request method: El método de solicitud para obtener un objeto. Por favor, consulte la sección de solicitar los métodos para los métodos disponibles. Si desactivó log_icp_queries en su configuración, no podrá ver (y por tanto incapaces de analizar) el intercambio de la PIC. El método PURGA sólo está disponible, si usted tiene una ACL para purgar "método" habilitadas en su archivo de configuración.

7. URL: Esta columna contiene la dirección URL solicitada. Tenga en cuenta que el archivo de registro puede contener espacios en blanco para la URI. La configuración por defecto para uri_whitespace niega o trunca los espacios en blanco, sin embargo.

8. rfc931: La octava columna puede contener las búsquedas ident para el cliente solicitante. Dado que las búsquedas han ident impacto en el rendimiento, la configuración predeterminada activa ident_loookups apagado. Si se apaga, o no hay información ident está disponible, un "-" se cerrará la sesión.

9. hierarchy code: La información de jerarquía se compone de tres elementos: a) Cualquier etiqueta jerarquía puede ser el prefijo TIMEOUT_, si el tiempo de espera se produce la espera de todas las respuestas a ICP regreso de los vecinos. El tiempo de espera sea dinámica, si el icp_query_timeout no se ha establecido, o el tiempo se ha configurado revolucionado. b) Un código que se explica cómo se manejó la solicitud, por ejemplo, mediante la transmisión a un compañero, o ir directamente a la fuente. Consulte la jerarquía de los códigos para obtener más información sobre los códigos de la jerarquía y quitar los códigos de jerarquía. c) La dirección IP o nombre de host donde (si un extraño) se remitió la solicitud. Para las solicitudes enviadas a los servidores de origen, esta es la dirección del servidor IP de origen. Para las solicitudes enviadas a un cache de vecinos, este es el nombre de host del vecino. versiones NOTA: mayores de Squid pondría el nombre del servidor origen aquí.

10. type: El tipo de contenido del objeto como se ve en la cabecera de respuesta HTTP. Tenga en cuenta que los intercambios de la PIC por lo general no tienen ningún tipo de contenido, y por lo tanto se registra "-". Además, algunas respuestas raro tener tipos de contenido ":" o incluso las vacías.

Códigos de resultados de Squid:

TCP_ Hace refrencia a peticiones en el HTTP usualmente en el puerto 3128.

TCP_HIT Una copia válida del objeto solicitado fue en la caché. 

TCP_MISS El objeto solicitado no estaba en el caché. 

TCP_REFRESH_HIT Objeto en caché se solicitó, pero el viejo. La consulta IMS para el objeto dado como resultado "304 no se modifica". 

TCP_REFRESH_FAIL_HIT El objeto solicitado guardada en caché, pero rancio. La consulta no IMS y el objeto de entrega era rancio. 

TCP_REFRESH_MISS El objeto solicitado guardada en caché, pero rancio. La consulta IMS devolvió el nuevo contenido.

TCP_CLIENT_REFRESH_MISS El cliente emitido la "no-cache" pragma, o algún comando de control de caché análogos junto con la solicitud. Por lo tanto, la caché tiene que refetch el objeto. 

TCP_IMS_HIT El cliente IMS emitió una solicitud para un objeto que estaba en la caché y fresco. 

TCP_SWAPFAIL_MISS se creía que el objeto se encuentre en la caché, pero no se podía acceder. 

TCP_NEGATIVE_HIT Solicitud de una manera negativa objeto en caché, por ejemplo, "404 no encontrado", por lo que la memoria caché cree saber que es inaccesible. También se refieren a la explainations para negative_ttl en su archivo squid.conf. 

TCP_MEM_HIT una copia válida del objeto solicitado fue en la caché y fue en memoria, evitando accesos a disco. 

TCP_DENIED Se denegó el acceso para esta solicitud. 

TCP_OFFLINE_HIT El objeto solicitado fue encontrado en la caché durante el modo fuera de línea. El modo fuera de línea no valida ningún objeto, consulte en el archivo squid.conf offline_mode. 

TCP_STALE_HIT El objeto fue servido en caché y rancio. Esto es causado usualmente por rancio-mientras-revalidar o rancio--error si. 

TCP_ASYNC_HIT La solicitud de antecedentes (por ejemplo, un iniciadas por rancio-mientras-revalidar) dio lugar a una actualización de golpe. TCP_ASYNC_MISS La solicitud de antecedentes (por ejemplo, un iniciadas por rancio -mientras-revalidar) resultó en un fallo, es decir, el objeto en caché (si los hay) se ha actualizado). 

UDP_HIT una copia válida del objeto solicitado fue en la caché. 

UDP_MISS El objeto solicitado no se encuentra en esta caché. 

UDP_DENIED Se denegó el acceso para esta solicitud. 

UDP_INVALID una petición no válida se recibió.

UDP_MISS_NOFETCH Durante "-Y" de inicio, o durante las averías frecuentes, una caché en modo de único hit se devuelven UDP_HIT o código de este. Los vecinos por lo tanto sólo recoger muestras. 

NONE Visto con peticiones cachemgr y errores, por lo general cuando la transacción falla antes de ser clasificados en uno de los resultados anteriores. 

Los sufijos de código siguientes son específicos de Squid3: 

_ABORTED significa que la conexión con el cliente HTTP se cerró o de otra manera no antes de tiempo. Esto incluye cliente de sockets cerrado la mitad cuando half_closed_clients en squid.conf está apagado. 

_TIMEDOUT Sufijo significa que la operación ha agotado el tiempo al escribir la respuesta al cliente HTTP (por ejemplo, el cliente no estaba leyendo o dejado de leer la respuesta de Squid). 

Los siguientes códigos ya no están disponibles en Squid-2: 

ERR_ ahora figuran en el código de estado. 

TCP_CLIENT_REFRESH Ver: TCP_CLIENT_REFRESH_MISS. 

TCP_SWAPFAIL Ver: TCP_SWAPFAIL_MISS. 

TCP_IMS_MISS suprimido, sustituido ahora con TCP_IMS_HIT. 

UDP_HIT_OBJ Se refiere a una versión antigua que enviaría aciertos de caché en ICP respuestas. Ya no implementado. 

UDP_RELOADING Ver: UDP_MISS_NOFETCH.


4 comentarios:

  1. Hola, ante todo gracias por toda la información. Todo muy, muy interesante!!
    No obstante, tengo una duda/problema:
    Existe alguna forma de saber cuando un equipo cliente cierra la sesión. Es decir, cuando un usuario abre el navegador se registra, pero cuando lo cierra no. Se pude auditar eso??
    Gracias de antemano.
    Saludos,

    ResponderEliminar
    Respuestas
    1. Hola Arturo. Realmente los clientes no inicias sesión, sino que hacen peticiones y el proxy las captura y las gestiona según su configuración.

      Eliminar
  2. Tengo un problema con Squid, no me muestra en el access.logel usuario que está navegando, solo la ip. ¿Como puedo arreglar este problema?

    ResponderEliminar
    Respuestas
    1. Hola.

      Debe verificar si el usuario se esta autenticando correctamente. Recuerde que solo cuando un metodo de autenticacion se esta usando es que salen los usuarios en el log. De lo contrario solo saldra un -

      Saludos.

      Eliminar