LOG DE SQUID …
LOG DE SQUID EN PYTHON PARTE I
En mi proceso de aprendizaje de python me propuse a desarrollar el siguiente script :
Script que permite obtener via SSH el log de navegacion que genera
Script que permite obtener via SSH el log de navegacion que genera
el servidor proxy squid y copiarlo localmente al pc que lo llama o ejecuta para luego e ingresarlo en una Base de Datos PostGreSql o Sqlite y de esta manera sea mas facil realizar consultas de lo que están haciendo los usuario con el Internet , bien sea consultando las paginas a las que accedan, la fecha, las horas, los accesos denegados y otras cosas mas. La verdad confieso que comenzó siendo algo corto y sencillo pero lo e ido puliendo y ya van algunas lineas de código :P
- La teoría:
El script hace una conexión via ssh al servidor squid y realiza lo siguiente:
- Detiene el el squid
- renombra el archivo *”/var/log/squid3/access.log”* por *access_fechahoy.log*
- Crea un nuevo archivo access.log
- Le da los permisos al nuevo archivo creado access.log
- Inicia de nuevo el servidor Squid
- Copia vía ssh el archivo *access_fechahoy.log* desde el servidor a la maquina local que hizo el llamado.
- Abro el archivo local *access_fechahoy.log* y leo linea por linea separando de cada linea aquellas palabras que tengan un espacio entre ellas y las guardo en una lista de python Ej: 1325523994.041 12 10.121.3.34 TCP_IMS_HIT/304 291 GET http://www.panorama.com.ve/uploads/ojos(1).swf – NONE/- application/x-shockwave-flash.
- Limpio de ese resultado aquellos valores que devolvieron espacios sin datos es decir vacios Ej: ’10410021221′, ‘ ‘, ‘ ‘
- Ahora recorro la lista y extraigo cada campo fecha,puerto,ip,acceso, método,direccionweb.
- Luego transformo la hora que coloca squid ”10410021221″ en formato fecha hora normal ddmmaaaa hhmmss.
- Mediante un metodo transformo la ip que me da squid en el nombre del pc
- Por ultimo inserto el registro en postgresql o sqlite
Módulos Utilizados:
psycopg2 : Para conectarse a una base de datos PostGresql
socket : Para obtener el nombre de un pc via socket
paramiko : Para conectarse via ssh a un pc remoto
time : Para obtener la fecha actua
NOTA:ESTO SE EJECUTA COMO UN PROCESO EN LAS MADRUGADASl
Advertisement

Me falta publicarlo el código por aquí y en gitorious