Logformat - Formato de Logs de Squid

Publicado por firecold, Diciembre 09, 2014, 03:27:02 AM

Tema anterior - Siguiente tema

firecold

LOGFORMAT

En esta ocasion amigos de alterserv.com y visitantes de este foro, deseo hablarles de una directiva o parametro de configuracion de squid llamado logformat, el cual se encarga de darle formato a los logs de squid, por defecto dicho parametro biene asi:

logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

El cual nos provee un log en este formato:



Mucho de los problemas de este formato es que no podemos ver la fecha y hora que dichas peticiones fueron hechas y los parametros de configuracion de dicho parametro tambien nos son desconocidas, primero veremos las variables de configuracion de fotmatlog:

PARAMETROS DE CONFIGURACION

La sintaxis basica de cada parametro sera comenzada con un % y en caso de tener tambien un caracter numerico este representara el espacio que tendra de la variable contigua hacia la derecha.


CitarParametros o Argumetos      
     {} Modificador o argumento. También se utiliza para especificar los nombres de cabecera
     > Solicitud (cliente)
     < Respuesta (servidor)
     a una dirección
     A nombre de la dirección
     h todos los encabezados
     i identidad
     p puerto
     r línea de petición (sin consulta)
     t tiempo
     u usuario
     l dirección / puerto local (donde se aceptó la solicitud)

Variables Definidas
Citar%>a Direccion IP del cliente

%>A Cliente FQDN

%>p Puerto de origen del cliente

%<a Direccion IP de Servidor o cache espejo

%<p Numero de puerto del Servidor o cache espejo

%<A Direccion IP del servidor o nombre del cache espejo

%la Direccion IP local cuando la peticion fue aceptada

%lp Puerto local cuando la peticion fue aceptada

%lA Nombre del Puerto local cuando la peticion fue aceptada

%ts Fecha de la solicitud, segundos desde la epoca.

%{format}tl Fecha de la solicitud en formato localtime

%{format}tg Fecha de la solicitud en formato GMT

%tu Fecha de la solicitud, compuesta por sub-segundos

%tr Tiempo en servir la solicitud en milisegundos

%{header}>h Solicitar encabezados

%un Nombre de usuarios autenticado

%ur Reino del usuario autenticado

%us Esquema del susario autenticado

%ui identidad del usuario o nombre de usuario

%Hs Codigo de Status HTTP (200, 404, 407, etc)

%Ht Texto de estado HTTP (Not found, etc)

%Ss Codigo de estatus de Squid  (TCP_HIT, TCP_MISS etc)

%Se Codigo de error de Squid (ERR_DENIED, ERR_...)

%Sh Codigo de jerarquia Squid (FIRST_UP_PARENT, etc)

%mt Tipo MIME de la peticion

%rm Metodo de solicitud.

%ru Solicitar Url, sin la cadena de consulta.

%rq cadena de consulta solicitada, incluyendo ?

%rp Peticion de Protocolo (i.e. HTTP/1.1)

%ps Estado de seleccion de pares (DIRECT, PARENT, CD_PARENT_HIT, etc. including the TIMEDOUT_ variant)

%>sl Tamaño de la peticion

%>sh Tamaño de la peticion de cabezera

%>sH Tamaño de la peticion de cabezera, excluyendo solicitud

%>st Tamaño total de la peticion

%<st Tamaño total de respuesta

Ahora bien ya estudiando un poco cada variable de configuracion podemos agregarle a nuestros logs la informacion que requiramos o necesitemos, un ejemplo que cite fue la fecha en formato legible para humanos, siendo de esta manera:

logformat squid %tg %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<a %mt

Viendose de esta manera:



Espero que experimenten con este parametro para poder realizar sus logs a medida, aunque debo decir que despues de algunas pruebas que hice previo a un mensaje de uno de los usuarios de este foro, me di cuenta que este metodo provoca errores con sarg y muchas veces no genera el reporte, entonces busque la opcion mas comentada en internet que es un:

tail -f /var/log/squid/access.log | perl -pe 's/[\d\.]+/localtime($&)/e'

El cual nos ayudara a obtener casi el mismo resultado en el log, sin perjudicar los reportes de sarg, ahora bien para poder tenerlo en nuestro webpanel tendremos que modificar uno de los php del webpanel, que se encuentra en var raptor aclogsq.php, dejando este parametro:

<?php system("sudo tail -40 /var/log/squid3/access.log"); ?>

Asi:

<?php system("sudo tail -40 /var/log/squid3/access.log | perl -pe 's/[\d\.]+/localtime($&)/e'"); ?>

Saludos

Fuente: http://devel.squid-cache.org/customlog/logformat.html

system_urrutia

Saludos y que hay con sarg no le causa algun error al tratar de tomar la fecha y la hora para hacer los reportes

firecold

Cita de: system_urrutia en Diciembre 09, 2014, 08:23:27 AM
Saludos y que hay con sarg no le causa algun error al tratar de tomar la fecha y la hora para hacer los reportes

Anteriormente te habia mencionado que no les afecta, pero haciendo mas pruebas me di cuenta que si los afecta ya que no da los reportes como deberia, pero bueno, ya vere como lo soluciono, saludos

ninohwifi

como podria modificar para que me aparezca de esa forma en el webpanel?

firecold

Cita de: ninohwifi en Diciembre 09, 2014, 01:38:00 PM
como podria modificar para que me aparezca de esa forma en el webpanel?

Su pregunta es mera confusa amigo, usted habla de la fecha en los logs y que se puedan vizualizar como en las imagenes, si es asi, usted tiene que agregar esta linea en el squid.conf:

logformat squid %tg %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<a %mt

Saludos

juliobrenis

Gracias por tu aporte
me sirvio de mucho

firecold