He estado analizando distintos reportes para squid, he hablado anteriormente de sarg, pero a veces es necesario tambien ver el desempeño del cache, a veces uno se pregunta si squid esta usando o no el cache.
Una forma muy sencilla es leer nuestro log(access.log) y buscar los parametros con la palabra:
_HIT
Cuando esto aparece significa que squid esta haciendo uso de su cache, es preferible que aparezca:
TCP_MEM_HIT
Pero a veces no es posible, este valor indica que encontro el objeto en la memoria asi que nos ahorramos la ida a disco y como sabemos es mas rapido el acceso a memoria que a disco.
Con lo anterior ya podriamos corroborar que al encontrar palabras con _HIT significa que nuestro cache esta operando, muchos sitios bloquean esto y mas los de contenido dinamico para ello existen otras tecnicas, ahorita estamos enfocados en la configuracion basica de squid.
Mi blog ha sido generalmente basado en la version nano, pero para poder yo sacar datos de mi cache necesite hacer la instalacion en disco asi que ya lo tengo, tuve problemas con mi maquina de pruebas y mi disco nuevos, tanto EIDE y Sata, por alguna razon pFsense tiene problemas en arrancar con mi placa y estos discos, use uno de 20GB y sin problemas, luego les platico.
Regresando a el tema, me vi en la tarea de buscar otros reportes distintos a Sarg y encontre varios, algunos no se lograron instalar ya que dependen de perl 5.10 y algunos ya habia instalado la v 5.12 asi que no quise romper las cosas.
El sitio de squid tiene una pagina donde apunta a varios reportes que uno puede acceder, algunos se ejecutan hasta en Winblows, este es el enlace:
Squid-Reportes-de-Log
De ahi tome algunos y ademas me fui a los ports de FreeBSD a buscar que mas habia, me encontre con algunos interesantes ya que muestran algo que muchos buscamos, como se esta usando mi cache.
Vamos empezando por srg:
Sitio:
http://www.crc.net.nz/software/srg.php
Me agrado su reporte limpio e informativo, nos genera una pagina html y podemos agregar javascript para poder sortear los resultados.
Al parecer no tiene dependencias.
Instalacion:
pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/www/srg-1.1_1.tbz
Una vez instalado recordar ejecutar rehash en la consola.
Parametros:
root# srg
usage: srg [options]
Options:
-a
Perform analysis only on requests from the
specified IP address.
-C Location of the srg config file.
-d Enable debugging output
-E If the username does not exist, look up the
username using info in this file
-f The file to process
-g Group analysis by specified criteria
A=address, S=subnet, U=username
-H Perform DNS lookups on IP addresses to
be displayed in reports.
--help -h Display this help
-m Specify maximum number of days to keep a
report
-M Output a summary report suitable for
emailing.
-n Specify the netmask to be used when grouping
by subnet, ie. 255.255.255.0
-o Output Directory
-O URL where reports will be located
-r Enable javascript column sorting in output
-R Show transfer rate in reports
-s / Perform analysis only on requests from the
specified subnet.
-S Show time value in reports
-t '-' Time period to perform analysis in. Records
that are not inside this period will not be
analysed. i.e. '31/10/2003-1/11/2003'
-u Perform analysis only on requests from the
specified username.
-v Verbose mode. Print relevant messages.
-V Print Version and exit.
Como me genera un reporte en formato html, voy a crearle un folder dentro mi servidor web en este caso ya saben cual usa pfsense, asi que creo mi folder:
root# mkdir /usr/local/www/srg
Ahora me voy a ese directorio:
cd /usr/local/www/srg
Y ejecuto mi comando con estos parametros:
srg -r -R -S -o ./ -f /var/squid/logs/access.log
-r = javascript para poder sortear la salida.
-R=mostrar valores de transferencias.
-S=Mostrar valores de tiempo.
-o=Donde deseo guardar el reporte final.
En mi folder creado voy a tener esto:
drwxr-xr-x 444 root wheel 20992 May 7 21:42 2012May07-2012May07
-rw-r--r-- 1 root wheel 947 May 7 21:42 index.html
-rw-r--r-- 1 root wheel 2877 May 7 21:42 srg.js
-rw-r--r-- 1 root wheel 1329 May 7 21:42 style.css
Apuntamos nuestro navegador a este folder y tenemos esto:
|
Figura 1: Pagina Inicial de srg. |
Cuando le damos click a el enlace mostrado vemos lo siguiente:
|
Figura 2: Detalle del Reporte. |
Como podran observar en la figura 2, se pueden observar las paginas y tenemos ademas varias columnas que nos dan info de como ha trabajado squid, en mi caso deseo saber el desempeño de mi cache, ademas le agregamos un parametro que nos permite sortear en base a la columna deseada, ejemplo al darle click a la columna de HIT, me sorteara el reporte de mayor HIT a menor HIT:
|
Figura 3: Reporte Sorteado por columna HIT. |
Si se van a el final del reporte pueden observar los datos acumulados, ver siguiente figura:
|
Figura 4: Sumatoria del Reporte. |
Como podran ver dice que nuestro cache nos a dado 4.61%, su reporte puede ser distinto, yo he tenido poco trafico en el sistema de produccion voy a obtener resultados mayores.
Este reporte se puede ejecutar con un batch pero mucho antes de rotar el log no se les olvide, no perderle el ojo a este pequeño pero interesante programa.
Free-SA: Este al igual que el anterior nos genera el reporte en HTML para poder verlo atraves de nuestro navegador, tambien le creamos un folder con el mismo nombre en /usr/local/www y ademas este si tiene un archivo de configuracion.
Sitio:
http://free-sa.sourceforge.net/
Instalacion:
pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/www/free-sa-1.6.2.tbz
configuracion: /usr/local/etc/free-sa/
Copeamos el free-sa.conf.sample a free-sa.conf
Y lo ponemos asi:
#########
# FILES #
#########
log="/var/squid/logs/access.log"
#usertab="/usr/local/etc/free-sa/users"
#downloads="/usr/local/etc/free-sa/downloads.sample"
#local_filter=""
#global_filter=""
###############
# DIRECTORIES #
###############
targetdir="/usr/local/www/free-sa"
tmpdir="/var/squid/cache/free-sa"
#####################
# REPORTS SELECTION #
#####################
ts="true"
paf="true"
saf="true"
pdn="true"
sdn="true"
cct="true"
pst="true"
dld="false"
#fullurl="true"
#users="true"
#email=""
##################
# REPORTS LIMITS #
##################
#paf_limit="50"
#saf_limit="50"
#pdn_limit="50"
#sdn_limit="50"
#cct_limit="50"
#pst_limit="50"
#dld_limit="50"
#lcf_limit="50"
#url_limit="50"
#ts_limit="0"
#dld_min="0"
#rtr_timeout="5000"
####################
# OTHER PARAMETERS #
####################
name="free-sa.conf"
#logformat="0"
#skip_errors="false"
fulltraffic="yes""
#inameuser="true"
#user_unescape="false"
indicators="true"
#overwrite="0"
resolveip="false"
showinfo="true"
#site=""
#logo=""
#locale=""
#rotate=""
#divisor="b"
#tz_shift="0"
Lo pueden modificar segun sus parametros. Una vez hecho esto solo ejecutamos el comando en la consola:
root# free-sa
Y ya tendremos nuestros datos en el folder indicado, vamos a verlos.
|
Figura 5: Paginal inicial de Free-SA. |
Le damos click para ver el detalle:
|
Figura 6: Detalle de Reporte. |
|
Pueden ver todos, pero me voy a ir sobre el que dice "Proxy efficiency" y nos da esto:
|
Figura 7: Desempeño de Squid. |
En la figura 7 marque con azul cuantas peticiones se han servidor y con rojo cuantas han sido de cache, es bajo el valor en el sistema de produccion debe ser mayor.
Datos interesantes para tomar el pulso de nuestro squid proxy, tambien se puede poner un batch y ejecutarlo diariamente, recordar que mientras mas informacion se tiene mas podemos saber si las cosas andan bien o necesitamos ajustes.
Ahora sigue: squidview.
Sitio: http://www.rillion.net/squidview/
Instalacion:
pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/www/squidview-0.73.tbz
rehash
squidview
(Este ultimo paso me lo comento kaone blue que se dio cuenta, gracias)
El ultimo comando nos genera el .squidview en el usuario que lo ejecuta en este caso root.
Este programa nos permite ver nuestro log(access.log) en tiempo real, pero como viene de FreeBSD necesitamos hacer unos ajustes a la configuracion, una vez instalado les aparece en el folder del root un directorio escondido llamado: .squiview.
Dentro de ese folder les aparece esto:
lrwxr-xr-x 1 root wheel 32 May 7 13:52 HOWTO -> /usr/local/share/squidview/HOWTO
lrwxr-xr-x 1 root wheel 26 May 7 23:03 log1 -> /var/squid/logs/access.log
lrwxr-xr-x 1 root wheel 4 May 7 13:52 log2 -> log1
lrwxr-xr-x 1 root wheel 4 May 7 13:52 log3 -> log1
La linea que marque ya esta reparada, ya que por default esta apuntando a el access.log donde lo guarda FreeBSD, en mi caso yo lo tengo en la ruta marcada.
Si tratan de ejecutar el comando no va sacar nada de informacion por lo anterior, entonces necesitamos hacer los ajustes que es eliminar ese enlace y crearlo con la ruta correcta:
root# unlink log1
ln -s /var/squid/logs/access.log /root/.squidview/log1
Hora de ejecucion, solo ejecutamos squidview y nos aparece ya una foto de los sitios y quien los tiene abiertos:
|
Figura 8: SquidView reporte inicial. |
Ahora si presionan la h=help=ayuda les mostrara la lista de comandos que porporciona, a mi me gusta el que le pedimos que lea N cantidad de lineas desde la parte de abajo o sea el final del archivo y que nos de una sumatoria de cada usuario encontrado en tiempo real, observen.
Presionamos g, nos pide Goto percentage: 100
Presionamos T, nos manda un mensaje
y tenemos esto:
|
Figura 9: Sumatoria en Tiempo Real de Usuarios. |
En el sistema de produccion esta pantalla tiene mas usuarios y esta mostrando como mencione anteriormente todo en tiempo real.
Si desean limpiar los valores solo presionen la letra 'z' e inicia de 0 todo asi tendremos una clara vision de la operacion.
Este programa no deben perderle el ojo, muy importante la informacion en tiempo real.
...continua