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
-d Enable debugging output
-E
username using info in this file
-f
-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
report
-M Output a summary report suitable for
emailing.
-n
by subnet, ie. 255.255.255.0
-o
-O
-r Enable javascript column sorting in output
-R Show transfer rate in reports
-s
specified subnet.
-S Show time value in reports
-t '
that are not inside this period will not be
analysed. i.e. '31/10/2003-1/11/2003'
-u
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. |
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. |
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. |
Figura 6: Detalle de Reporte. |
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
Figura 9: Sumatoria en Tiempo Real de Usuarios. |
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
6 comentarios:
Saludos hermano, caí en tu blog desde el foro de pfsense, en verdad muy valiosa tu información ya que todo el mundo quiere averiguar si en verdad esta funcionando el susodicho proxy, estoy en este mundo por que me dedico al negocio de las inalámbricas lo que me obliga aprender sobre estos temas de por si muy complejos.
Hola kilinux.
Tienes razon, muchos hacen uso de squid y solo ven lo que cada usuario hace que es tambien muy importante, pero pocos se preguntan, esta mi cache en realidad ahorrando ancho de banda?
Squid tiene tantas formas y parametros que en realidad uno nunca hara uso al 100% de ellos, una vez que empiezas a entenderlo como funciona es cuando aun mas sabes lo maravilloso que es.
Yo estoy sobre el y me sigo metiendo tanto con pfsense como squid y tambien sobre lo inhalamabrico, aqui estamos para lo que pueda ayudarte, saludos!!!
Qué tal Pedro Moreno, hace poco tiempo caí en tu blog y seguí las instrucciones que diste para instalar squidview en pfsense. Todo funcionó a la perfección, sin embargo, por razones ajenas, tuve que reinstalar el sistema y ahora no logro hacerlo funcionar, he intentado cambiando la dirección de descarga del repositorio de FreeBSD, tanto para i386 como para amd64 y nada. Tengo el Pfsense 2.0.2 con multiples procesadores (Intel Core i3), el paquete se instala pero no me instala la carpeta oculta squidview en el directorio /root. ¿Qué será que estoy haciendo mal? Agradezco de antemano la atención. Saludos, K1blue300C.
Hola kaone blue, que tal si tu la creas a mano?
De todos modos voy a intentar hacerlo yo mismo, te aviso, saludos!!!
Qué tal Pedro Moreno, la solución fue muy sencilla, realmente muy obvia, a veces se nos dificulta lo más sencillo, nos obsesionamos tanto que lo ideal es dejarlo para el día siguiente, ya con la mente fresca las respuestas aparecen.
La solución sólo era ejecutar squidview inmediatamente después de instalarlo, con esto, él mismo generará el directorio, es decir, se crea al momento de ejecutarlo por primera vez y no al momento de instalarlo. Obviamente la primera vez marcará error, y es cuando aplicamos la adaptación que mencionas. Funcionando. Saludos desde Villahermosa, TAB.
K1Blue300C
Hola kaone blue, ya verifique lo que me comentastes y repare el tutorial, muchas gracias!!!
Publicar un comentario