SARG.CONF

Sarg - Squid Analysis Report Generator
Conociendo a SARG, un analizador de logs de Squid.
Si alguna vez hemos utilizado el ultra conocido proxy-cache Squid, sabremos que una de las tareas que debemos realizar para poder llevara acabo un mejor control en el trafico en nuestra red, es la de analizar sus logs, obviamente tal y como Squid los genera, son muy poco amigables como para realizar informes, estadísticas, etc. Es por ello que existen muchas herramientas que pueden hacer esto mismo por nosotros y de una manera mucho mas fácil.
En este caso vamos a hablar de Sarg (Squid Analysis Report Generator), una herramienta realmente muy útil y sencilla de usar. Y como si fuera poco también tenemos una entrevista con su desarrollador principal, Pedro Orso, quien nos contara un poco como fue que se gesto este proyecto y también su historia.

instalación
En este paso recomiendo descargar las fuentes desde el sitio oficial de Sarg ( sarg.sourceforge.net), al momento de redactar este articulo, la ultima versión estable era la sarg-2.2.5.
Si bien se puede instalar mediante las herramientas que dispongamos en nuestra distro para el manejo de paquetes, como puede ser Apt en Debian, seguramente nos pasara que en los repositorios no estarán las ultimas actualizaciones y esto puede ocasionarnos que alguna función que queramos usar pueda contener algún error, y seguramente ya este solucionado en la ultima versión.
Bueno entonces ya damos por hecho que por un lado ya disponen de Squid instalado en sus equipos y por otro que han entrado a la pagina del proyecto Sarg y han descargado la ultima versión disponible, ahora bien, vamos a realizar lo siguiente:

1. Copiamos el paquete a /usr/src/

2. Lo descomprimimos:

#tar -xvzf sarg-2.2.5.tar.gz



3. Accedemos al directorio que se ha creado del mismo

#cd sarg-2.2.5


4. Una vez dentro ejecutamos:

#./configure


5. Compilamos el paquete...

#make


6. Y copiamos cada cosa en su lugar con:

#make install


Si todo salio bien la ubicación de Sarg sera ( /usr/local/sarg).


CONFIGURACIÓN

Ahora vamos a conocer algunos puntos de su configuración. En primer lugar vamos a ubicar su archivo de configuración, si se ha instalado como lo indicamos anteriormente, su ubicación sera (/usr/local/sarg/sarg.conf).
Pasemos ahora sí, a conocer algunos de sus parámetros:

Idioma:
# TAG: language

# Available languages:

# Bulgarian_windows1251

# Catalan

# Czech

# Czech_UTF8

# Dutch

# English

# French

# German

# Greek

# Hungarian

# Indonesian

# Italian

# Japanese

# Latvian

# Polish

# Portuguese

# Romanian

# Russian_koi8

# Russian_UFT-8

# Russian_windows1251

# Serbian

# Slovak

# Spanish

# Turkish


#


#language English





Como podrán ver, posee varios idiomas para presentarnos los informes, solo habrá que descomentar la linea “language English” y reemplazarlo por el que queramos. Por defecto el idioma Ingles.

Log de Squid:
# TAG: access_log file


# Where is the access.log file


# sarg -l file


#


access_log /var/log/squid/access.log



En este caso se indica la ruta que apunta a donde se encuentra el fichero access.log generado por Squid, Sarg tomara de allí todos los datos para generar los distintos informes.

Directorio de salida:
# TAG: output_dir


# The reports will be saved in that directory


# sarg -o dir


#


#output_dir /var/www/html/squid-reports



Este directorio sera donde se irán almacenando los distintos informes generados por Sarg.




Excluir páginas:
# TAG: exclude_hosts file

# Hosts, domains or subnets will be excluded from reports.
#
# Eg.: 192.168.10.10 - exclude ip address only
# 192.168.10.0 - exclude full C class
# s1.acme.foo - exclude hostname only
# acme.foo - exclude full domain name
#
#exclude_hosts none
exclude_hosts /usr/local/sarg/exclude.hosts

Este parámetro sirve para excluir páginas que no queremos que aparezcan en nuestro informe, en el ejemplo anterior se hace referencia a un fichero con el nombre exclude.hosts, el cual tendremos que crear y dentro de este podría contener algo como lo siguiente:

www.midominio.com
www.intranet.com

Como vemos por cada línea ira una página, esto es muy útil para excluir de los informes paginas como por ejemplo: la de nuestra empresa, servidores locales, etc, que a la hora de generar los informes no son relevantes como para que aparezcan dentro de los mismos.

Excluir cadenas:
# TAG: exclude_string “string1:string2:...:stringn”
# Records from access.log file that contain one of listed strings will be ignored.
#
#exclude_string none
exclude_string /usr/local/sarg/exclude.string

Este tipo de exclusión es una de las más minuciosas, ya que analiza las líneas del fichero log, y si alguna de estas coincide con alguna cadena incluida aquí dentro, este la excluirá automáticamente.
Como vimos en el ejemplo de excluir paginas, también estamos apuntando a un fichero, en este caso llamado exclude.string, el mismo también tendremos que crearlo y dentro de este podría llegar a contener algo así:

midominio
miempresa


Excluir usuarios:
# TAG: exclude_users file
# users within the file will be excluded from reports.
# you can use indexonly to have only index.html file.
#
#exclude_users none
exclude_users /usr/local/sarg/exclude.users

Lo que vamos a declarar dentro de exclude.users son los equipos que no queremos que aparezcan dentro de los informes generados, como lo venimos haciendo este fichero tendremos que crearlo y podría contener algo como lo siguiente:

192.168.0.10
192.168.0.11
192.168.0.15
192.168.0.22


Lo que le estamos indicando en este caso, es que las direcciones IP dentro de este fichero las ignore a la hora de generar los informes. Esto es muy útil, ya que seguramente habrá algún que otro equipo que no quisiéramos saber que paginas visita, llámese equipo del jefe, gerente, el nuestro ;) , etc.

Formato de Fecha:
# TAG: date_format


# Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w$


#


#date_format u



Como podemos ver en esta opción, podemos presentar la hora en dos formatos diferentes, por defecto se nos presentara con el formato Americano = mm/dd/yy, si quisiéramos cambiarlo solo debemos descomentar date_format y colocarle la opción “e” para el formato Europeo = dd/mm/yy.

Muchos Más:
Como seguramente ya se habrán dado cuenta, Sarg posee innumerables opciones para lograr una personalizaron muy fina de los informes, sera tarea de cada uno de nosotros el investigar un poco mas dentro de este archivo de configuración y sacarle el mayor provecho a esta gran herramienta.
Van a poder cambiar desde su apariencia, como así también muchísimas mas opciones que harán de Sarg su herramienta preferida a la hora de generar informes de Squid.

Ejecutando Sarg


Existen diferentes formas de ejecutar Sarg, cada una de ellas nos generara un tipo de informe distinto, empecemos por la mas sencilla:

emilianox:/# sarg


SARG: Records in file: 868, reading: 100.00%


SARG: Successful report generated on /var/www/html/squid-reports/2008Jul22-2008Jul29



Con solo ejecutar el comando sarg, este nos creara un informe y el nombre del mismo sera el rango de fechas que tenemos registro en nuestro access.log de Squid.




Como podemos ver en la imagen de arriba, la forma de ingresar a los informes es por medio de un navegador como puede ser Firefox, siempre y cuando estemos en el mismo equipo, en caso contrario, vamos a necesitar tener instalado Apache para poder ingresar y ver los informes. En mi caso estoy accediendo a un equipo dentro de la red, el cual se ientifica con la direccion Ip: 192.168.4.104, y la forma de acceder a el mismo por mi navegador, es colocando esa direccion y haciendo referencia a el directorio donde contiene los informes Sarg (http://192.168.4.104/html/squid-reports/) Luego haciendo un click sobre el nombre creado, podremos ver mas opciones, como por ejemplo, Topsites Sites(sitios mas visitados) Sites & Users (sitios por usuario), Downloads (descargas realizadas), como así también disponemos de la opción de poder elegir por usuario, como vemos en la imagen a continuación:



(ya haciendo click sobre las fechas de los informes, podemos apreciar que ahora disponemos de mas opciones para ver los informes, como puede ser, la eleccion por usuario)

Y dentro de cada usuario, se amplían aun mas las posibilidades, ya que podemos ver por ejemplo: la cantidad de conexiones realizadas contra una pagina en especial, los bytes consumidos, el uso del cache, el tiempo de navegación sobre esa pagina, etc.



(en esta imagen podemos apreciar la gran cantidad de información que nos proporciona Sarg)

Otras opciones de ejecución:


Por Host:
Ahora bien, si lo que queremos es generar un informe en particular, y por ejemplo quisiéramos solo saber lo que paso con un equipo en particular, lo que podríamos aplicar es un filtro por dirección IP, y de esta manera solo tener un informe sobre ese equipo. Para realizar esto podemos hacer lo siguiente:

emilianox:/# sarg -a 192.168.4.102


SARG: Records in file: 964, reading: 100.00%


SARG: Successful report generated on /var/www/html/squid-reports/2008Jul29-2008Jul29-192.168.4.102



De esta manera tendremos un informe especifico por equipo, como el que vemos a continuación:



( Informe generado especialmente por equipo)

Por destino:
Otro de los informes interesantes a crear, es el que veremos a continuación: de una forma sencilla podemos especificar una pagina de destino en especial, como por ejemplo www.google.com.ar, y dentro de nuestro informe nos aparecerán todos los equipos que han solicitado la misma.

emilianox:/# sarg -s www.google.com.ar


SARG: Records in file: 969, reading: 100.00%


SARG: Successful report generated on /var/www/html/squid-reports/2008Jul28-2008Jul29-www.google.com.ar





(en esta imagen podemos apreciar el informe creado, especialmente para indicar que equipos navegaron por una pagina en especial)



MAS OPCIONES:

Como ya nos esta acostumbrado Sarg, obviamente existen muchísimas mas opciones para ejecutarlo, las mismas las podemos ver ejecutando el siguiente comando:

emilianox:/# sarg -h


sarg: Usage [options...]


-a Hostname or IP address

-b Useragent log

-c Exclude file

-d Date from-until dd/mm/yyyy-dd/mm/yyyy

-e Email address to send reports (stdout for console)

-f Config file (/usr/local/sarg/sarg.conf)

-g Date format [e=Europe -> dd/mm/yy, u=USA -> mm/dd/yy]

-h Help (this...)

-i Reports by user and IP address

-l Input log

-n Resolve IP Address

-o Output dir

-p Use Ip Address instead of userid (reports)

-s Accessed site [Eg. www.microsoft.com, www.netscape.com]

-t Time [HH, HH:MM]

-u User


-w Temporary dir


-x Process messages


-z Debug messages


-convert Convert the access.log file to a legible date


-split Split the log file by date in -d parameter


sarg-2.2.5 Mar-03-2008 by Pedro Lineu Orso - pedro.orso@gmail.com

http://sarg.sourceforge.net


Please donate to the sarg project:

http://sarg.sourceforge.net/donations.php

Comentarios