SARG

SARG (Squid Analysis Report Generator)
Información sobre la plantilla
Sarg.jpg
Es una aplicación que genera estadísticas en formato html usando como datos los logs de Squid, de toda la navegación realizada a través del proxy en un intervalo de tiempo, es una de las herramientas más completas en ese sentido.
Lanzamiento inicial30 de enero de 2007
Sistemas Operativos compatiblesUnix, Windows
LicenciaGPL

Sarg (Squid Analysis Report Generator por sus siglas en inglés) es una de las más completas herramientas para la generación de reportes a partir de las bitácoras del proxy Squid.

Introducción

Es una herramienta que te permite ver con detalle la actividad de todos los equipos y/o usuarios dentro de la red de área local (LAN), registrada en la bitácora del proxy, provee mucha información acerca de las actividades de usuarios de Squid: tiempo, bytes, sitios, etc...

Genera estadísticas en formato html usando como datos los logs de Squid, de toda la navegación realizada a través del proxy en un intervalo de tiempo, es una de las herramientas más completas en ese sentido. En palabras de su programador: Sarg es un Squid Analysis Report

Escenario de uso

Tenemos un computador personal en la casa o la del trabajo, la cual usa Debian GNU/Linux como sistema operativo y es usado por varios miembros de la casa o usuarios (incluidos varios niños y menores de edad) cada uno con su cuenta de usuario, con acceso a internet, sin embargo no se tiene ningún tipo de supervisión por parte de un adulto en las horas en que navegan los niños y adolescentes.

Se desea poder controlar en lo posible lo que ellos pueden ver a través de internet, a su vez poder tener registro de lo que navegan para posteriormente evaluar en que gastan su tiempo cuando están usando el computador.

Sobre todo se desea que la solución basada en Squid+DansGuardian+SARG sea segura e infranqueable para que realmente pueda cumplir su cometido, es decir, que el usuario o el grupo de ellos que se planea controlar, no puedan tener manera de saltarse la restricción impuesta.

Instalación y configuración básica de SARG

El paquete sarg no viene incluido en todas las distribuciones, en Debian/Ubuntu el paquete esta incluido, si su distribución no incluye el paquete sarg siempre puede compilarlo desde las fuentes:

  • En Debian/Ubuntu instale el paquete sarg vía apt:
# apt-get install sarg
  • Sarg lee los parametros de configuración desde el archivo /etc/sarg/sarg.conf, antes de realizar cambios al archivo de configuración se recomienda que haga una copia de respaldo:
# cp /etc/squid/sarg.conf{,.orig}
  • Editamos el archivo principal de configuración de sarg para definir los parametros generales:
# vim /etc/squid/sarg.conf
  • Lo primero que debemos cambiar es la directiva language, la cual define el lenguaje en el Cambiamos el idioma de los reportes a Español:
language Spanish
  • Defina la ruta predeterminada del archivo de logs de accesos de squid usando la directiva access_log, por ejemplo:
access_log /var/log/squid3/access.log
  • Se recomienda que cambie el titulo de los reportes usando la directiva title, por ejemplo:
title "Reportes de Acceso Web por Usuarios"

Defina la ruta predeterminada para almacenar los reportes HTML usando la directiva output_dir, por ejemplo:

output_dir /var/www/squid-reports/Manual

Recomendaciones

Una vez que se haya instalado el paquete de sarg, serán necearías algunas configuraciones previas antes de ejecutar por primera vez el generador de reportes.

Este paquete esta hecho para trabajar en conjunción con squid, y se espera que se haya instalado y configurado squid

Entonces, haremos una verificación previa para comprobar que en el archivo de configuración de squid (/etc/squid/squid.conf) se haya definido la opción para el archivo de registros:

grep cache_access_log /etc/squid/squid.conf
TAG: cache_access_log
cache_access_log /var/log/squid/access.log

Ahí nos muestra que efectivamente /var/log/squid/access.log es el archivo donde guardan los registros de acceso al servidor proxy. Ahora haremos una comprobación de que los archivos en realidad existan:

ls /var/log/squid/access.log
/var/log/squid/access.log       
/var/log/squid/access.log.2.gz 
/var/log/squid/access.log.4.gz
/var/log/squid/access.log.1.gz  
/var/log/squid/access.log.3.gz 
/var/log/squid/access.log.5.gz

Como vemos en el ejemplo, existe el archivo de log y otros comprimidos que son de las semanas anteriores. (En tu caso es posible que no existan los archivos .gz).

Comprobación de configuración

Este paquete de sarg, tiene preconfigurado el uso del archivo

/var/log/squid/access.log

que es de donde sacara la información de accesos para generar los reportes.

cd /etc/sarg
cp sarg.conf sarg.conf.orig

- Abrir el archivo de configuración de sarg (/etc/sarg/sarg.conf)

Y comprobar que:

access_log /var/log/squid/access.log

Este apuntando a el archivo access.log correctamente. Este paquete esta preconfigurado para que cuando se ejecute sarg sin ningun parametro mande el reporte a /var/www/sarg/ONE-SHOT, lo cual esta definido en:

output_dir /var/www/sarg/ONE-SHOT

El paquete crea los directorios en /var/www/sarg

ls /var/www/sarg
ONE-SHOT/  daily/  index.html  monthly/  sarg.css  weekly/

Como vemos existe un archivo index.html el cual tiene los enlaces para ver los reportes diarios, semanales y mensuales, y además el acceso a ONE-SHOT que es a donde se van los reportes generados manualmente al ejecutar sarg sin ningún parámetro. Los directorios daily, weekly y monthly están reservados para que hay se guarden los reportes generados por el trabajo de cron, (/etc/cron.{daily,weekly,monthly}/sarg)

Si deseas cambiar el lenguaje de los reportes cambia la opción de:

Lenguaje English a cualquiera de los lenguajes que están disponibles en el Archivo de configuración, por ejemplo:

languaje Spanish

Bien si hiciste alguna modifcacion a el archivo /etc/sarg/sarg.conf guardalo y Hagamos una prueba: como root ejecuta:

sarg
SARG: Records in file: 2588, reading: 100.00%

Ahora veamos si genero el directorio y su index del reporte.

ls /var/www/sarg/ONE-SHOT/
2005Sep05-2005Sep05/images/index.html

Como vemos ahí puso un reporte de 2011Ago05-20011Ago05/

Para poder verlo vía Web, será necesario configurar apache para que use la configuración de

/etc/apache/sarg.conf
Alias /sarg "/var/www/sarg/"
<Directory "/var/www/sarg">
   DirectoryIndex index.html
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
 </Directory>

Ese archivo contiene las directivas de acceso a ese directorio (http://ip.ser.ver/sarg/) que esta restringido solo para el host local.

Por ejemplo si quisiéramos ver los reportes desde nuestra maquina (la del admin) Que tiene la ip 10.0.20.2 agregaríamos una línea como esta:

Allow from 10.0.20.2

Guardamos el archivo sarg.conf y agregamos unas líneas a /etc/apache/httpd.conf Al final agregar algo asi:

==> sarg configuration settings <==
PACKAGES REQUIRED: squid, sarg
Include /etc/apache/sarg.conf

Reiniciamos apache:

/etc/rc.d/rc.httpd restart

Y en un navegador web poner:

http://ip.ser.ver/sarg/

y veras un índice donde hay ligas a reportes de ONE-SHOT, daily, weekly y monthly. Dar click en ONE-SHOT y veras el reporte que se acaba de generar. Listo, si deseas probar que genere un reporte diario puedes ejecutar:

sh /etc/cron.daily/sarg

y verlo vía Web.

Si tienes logs de una semana antes, o un mes ejecuta el script de:

/etc/cron.weekly/sarg o /etc/cron.monthly/sarg

Sistemas Operativos Compatibles

Sarg puede ejecutarse en los siguientes Sistemas Operativos:

Fuente