SlideShare a Scribd company logo
WEB y TEXT MINING
Web Log Analysis con AWKJuan Azcurra
Log del web server Apache
 El log que guarda un servidor Apache contiene la siguiente
información:
%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-agent}i"
 Donde:
 %h: IP del cliente.
 %l: identidad del cliente.
 %u: userid de la persona solicitando el documento.
 %t: hora en la que el servidor finalizó el pedido.
 %r: linea solicitada por el cliente.
 %>s: código de estado que el servidor envia al cliente.
 %b: tamaño en bytes del objeto enviado al cliente.
 %{Referer}: desde donde fue referido.
 %{User-agent}: agente de usuario del cliente.
Códigos de estado
 Códigos de respuesta:
 200 - OK
 206 - Partial Content
 301 - Moved Permanently
 302 - Found
 304 - Not Modified
 401 - Unauthorised (password required)
 403 - Forbidden
 404 - Not Found
 301 o 302 indican que hubo una redirección.
 304 indica que el objeto ya se encontraba en la cache del
cliente.
 404 indica que el link está corrupto.
GAWK – Introducción
 Un lenguaje muy potente para procesamiento de texto y búsqueda
de patrones.
 GAWK es una versión GNU de AWK.
 Sintáxis similar a C.
 http://www.gnu.org/software/gawk
 El nombre AWK proviene de las iniciales de sus diseñadores:
Alfred V. Aho, Peter J. Weinberger, and Brian W. Kernighan.
 La versión original de AWK fue escrita en 1977.
GAWK – Ejecución
 gawk ‘commands’ file
 gawk –f prog.gawk
GAWK – Archivos y campos
 Gawk divide el archivo en registros y campos.
 Cada línea es un registro (por defecto).
 Los campos son delimitados por un carácter
especial.
 Por defecto: espacio en blanco (blanco o tab).
 Puede ser cambiado con la opción –F
 Ej. Para indicar que el campo está separado por
comas, usar:
 Gawk –F “,” archivo.csv
GAWK – Campos y variables
 Los campos son accedidos por el prefijo $
 Variables especiales:
 $1 es el primer campo, $2 es el segundo campo,
…
 $0 es un campo especial que contiene todo el
registro.
 NF es una variable especial que indica el número
de campos en el registro actual.
 NR es una variable especial que indica el número
de registro actual.
GAWK - Condiciones
gawk –F "d" 'condición' archivo
 GAWK procesa cada linea del archivo, usando
el delimitado por defecto para dividir cada
linea en campos.
 La acción por defecto es imprimir la linea
completa.
Ejemplo con archivo de prueba
 Utilizaremos el archivo d100.log que contiene
las 100 primeras lineas del archivo de log de
Kdnuggets del 16/11/05,
 Se presentarán algunos códigos de ejemplo
que pueden utilizarse con el archivo completo.
Archivo de prueba d100.log
ip1664.com - - [16/Nov/2005:00:00:43 -0500] "GET /robots.txt HTTP/1.0" 200 173 "-" "msnbot/1.0
(+http://search.msn.com/msnbot.htm)"
ip1664.com - - [16/Nov/2005:00:00:43 -0500] "GET /gpspubs/sigkdd-kdd99-panel.html HTTP/1.0" 200 14199 "-
" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)"
ip2283.unr - - [16/Nov/2005:00:01:02 -0500] "GET /dmcourse/data_mining_course/assignments/assignment-
3.html HTTP/1.1" 200 8090
"http://www.google.com/search?hl=en&q=use+of+data+cleaning+in+data+mining&spell=1" "Mozilla/4.0
(compatible; MSIE 6.0; Windows NT 5.1; SV1)"
ip2283.unr - - [16/Nov/2005:00:01:03 -0500] "GET /dmcourse/dm.css HTTP/1.1" 200 155
"http://www.kdnuggets.com/dmcourse/data_mining_course/assignments/assignment-3.html" "Mozilla/4.0
(compatible; MSIE 6.0; Windows NT 5.1; SV1)"
ip1389.net - - [16/Nov/2005:00:02:46 -0500] "GET /gpspubs/kdd99-est-ben-lift/sld021.htm HTTP/1.1" 200
1385 "http://www.google.com/search?hs=JnE&hl=en&lr=&client=opera&rls=en&q=lift+curve&btnG=Search"
"Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 8.5"
ip1389.net - - [16/Nov/2005:00:02:46 -0500] "GET /gpspubs/kdd99-est-ben-lift/img021.gif HTTP/1.1" 200
7465 "http://www.kdnuggets.com/gpspubs/kdd99-est-ben-lift/sld021.htm" "Mozilla/4.0 (compatible; MSIE
6.0; X11; Linux i686; en) Opera 8.5"
ip1389.net - - [16/Nov/2005:00:02:47 -0500] "GET /favicon.ico HTTP/1.1" 200 899
"http://www.kdnuggets.com/gpspubs/kdd99-est-ben-lift/sld021.htm" "Mozilla/4.0 (compatible; MSIE 6.0;
X11; Linux i686; en) Opera 8.5"
ip1946.com - - [16/Nov/2005:00:02:49 -0500] "GET /news/2001/n10/15i.html HTTP/1.0" 200 4214 "-"
"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)“
Ejemplo 1: Líneas con estado !=
200
 Código de estado se encuentra en el campo $9
 Cuántas lineas tienen el código de estado distinto
de 200? :
gawk '$9 != 200' d100.log
Resultado: 27
Para contar el estado igual a 200, usar:
'$9 == 200'
no '$9 = 200' (esto setea $9 al valor 200)
Ejempo 2: Contar referencias de
Google
 Gawk tiene un poderoso evaluador de
patrones
 variable ~ "pattern"
 Ejemplo: cuántas líneas del log tiene la
referencia (campo $11) desde google:
gawk '$11 ~ "google"' d100.log
Resultado: 2
Ejemplo 3: Condiciones
complejas
 Cuántos hits tienen el método GET y estado
404?
 (status 404 es un código de error)
 El método está en $6, pero el método está
separado por un espacio. Se puede utilizar:
gawk '$6 ~ "GET" && $9 == 404' d100.log
Resultado: 1
Ejemplo 4a: Contando solicitudes
de HTML
 El archivo solicitado está en el campo $7, se
puede utilizar esta condición para evaluar si
terminar con .html
 Nota: $ en una expresión regular indica el fin
de la cadena.
gawk '$7 ~ ".html$"' d100.log
Resultado: 21
Ejemplo 4b: Contando solicitudes
de HTM o HTML
Algunos archivos finalizan con .html, se puede
utilizar:
gawk '$7 ~ ".html$|.htm$"'
d100.log
Resultado: 22
 O también:
gawk '$7 ~ ".htm"' d100.log
Resultado: 22
Ejemplo 4c: Contado solicitudes de
directorios
 Algunos pedidos pueden ser a un directorio,
por ejemplo un pedido a www.kdnuggets.com/
tendría el literal "GET / HTTP/1.1".
 Para contar estas solicitudes:
gawk '$7 ~ "/$"' d100.log
Resultado: 6
Ejemplo 4d: Contando todas las
solicitudes HTML
 o contar html, htm y directorios con:
gawk '$7 ~ "(html|htm|/)$"'
d100.log
Resultado: 28
GAWK – Cálculos
 Forma general de la sentencia
gawk '{sentencias;…}' archivo
 Las sentencias son ejecutadas para cada
línea del archivo.
 Las sentencias incluyen condicionales, loops,
etc.
Ejemplo 5: Referencias
externas
 Imprimir referencias a páginas html,
excluyendo acceso directo (donde la
referencia es "-" )
 Nota: para testear si $11 es "-", es
necesario utilizar la comilla con escape "
 Código:
gawk '{if ($7~"html$" &&
$11!=""-"") print $11}'
d100.log
Resultado: 7
GAWK – Sentencias BEGIN,
END
 Para ejecutar sentencias antes de leer la
primera linea se utiliza la palabra clave BEGIN
 Para ejecutar sentencias despues de leer la
última linea se utiliza la palabra clave END
gawk 'BEGIN{sent1;…} {sent2;…} END
{sent3;…}' archivo
Ejemplo 6
 Sumar los bytes transmitidos con código de
estado 200
gawk '{if ($9 == 200) suma += $10}
END{print suma}' d100.log
Resultado: 396460
Nota: no es necesario inicializar suma, todas
las variables son inicializadas en 0 por
defecto.
GAWK - Arreglos
 Es posible utilizar variables compuestas
 Por ejemplo, imprimir la cantidad de hits por
IP:
gawk '{!a[$1]++} END {for(i in
a) print i, a[i]}'d100.log
Resultado:
ip2171.unr 1
ip967.com 5
ip1037.com 1

More Related Content

Viewers also liked

Cuestión 1
Cuestión 1Cuestión 1
Cuestión 1
Fatima Diaz
 
Network part1
Network part1Network part1
Network part1
parsis com
 
Opinion mining
Opinion miningOpinion mining
Opinion mining
Juan Azcurra
 
rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...
rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...
rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...
ginocuarite2015
 
Archivo academico2008
Archivo academico2008Archivo academico2008
Archivo academico2008
marcelo leal
 
GHGHGH
GHGHGHGHGHGH
GHGHGH
David Wan
 
Mauvaise Pub
Mauvaise PubMauvaise Pub
Mauvaise Pub
guest2f53b8
 
Grecia
GreciaGrecia
Deporte Para Todos
Deporte Para TodosDeporte Para Todos
Deporte Para Todos
deporbahia
 
Politica
PoliticaPolitica
Politica
Acer2008
 
Onildo Direitos Humanos
Onildo Direitos HumanosOnildo Direitos Humanos
Onildo Direitos Humanos
guestb20a74
 
Art On Banana
Art On BananaArt On Banana
Art On BananaThilini
 
Bigger, larger, heavier
Bigger, larger, heavierBigger, larger, heavier
Bigger, larger, heavier
BVG Associates
 
Adolescencia Gt[1]
Adolescencia Gt[1]Adolescencia Gt[1]
Adolescencia Gt[1]
sanbib
 
Presentación (irene)
Presentación (irene)Presentación (irene)
Presentación (irene)
Irene00
 
Id. corp. con fines com.
Id. corp. con fines com.Id. corp. con fines com.
Id. corp. con fines com.
katinita
 
Defensa acusación 26/04
Defensa acusación 26/04Defensa acusación 26/04
Defensa acusación 26/04
cee_info_2012
 
Festividad de san pedro y san pablo ninos
Festividad de san pedro y san pablo ninosFestividad de san pedro y san pablo ninos
Festividad de san pedro y san pablo ninos
Gladysmorayma Creamer Berrios
 
Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016
Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016
Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016
Jorge Vallina Crespo
 
Fotos capacitacion docentes
Fotos capacitacion docentesFotos capacitacion docentes
Fotos capacitacion docentesminsa1
 

Viewers also liked (20)

Cuestión 1
Cuestión 1Cuestión 1
Cuestión 1
 
Network part1
Network part1Network part1
Network part1
 
Opinion mining
Opinion miningOpinion mining
Opinion mining
 
rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...
rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...
rrrrrrrrrrrrrrrrrrrrrrrrreffffffffffv aghhhhhlizacindeseguriddad-130217120348...
 
Archivo academico2008
Archivo academico2008Archivo academico2008
Archivo academico2008
 
GHGHGH
GHGHGHGHGHGH
GHGHGH
 
Mauvaise Pub
Mauvaise PubMauvaise Pub
Mauvaise Pub
 
Grecia
GreciaGrecia
Grecia
 
Deporte Para Todos
Deporte Para TodosDeporte Para Todos
Deporte Para Todos
 
Politica
PoliticaPolitica
Politica
 
Onildo Direitos Humanos
Onildo Direitos HumanosOnildo Direitos Humanos
Onildo Direitos Humanos
 
Art On Banana
Art On BananaArt On Banana
Art On Banana
 
Bigger, larger, heavier
Bigger, larger, heavierBigger, larger, heavier
Bigger, larger, heavier
 
Adolescencia Gt[1]
Adolescencia Gt[1]Adolescencia Gt[1]
Adolescencia Gt[1]
 
Presentación (irene)
Presentación (irene)Presentación (irene)
Presentación (irene)
 
Id. corp. con fines com.
Id. corp. con fines com.Id. corp. con fines com.
Id. corp. con fines com.
 
Defensa acusación 26/04
Defensa acusación 26/04Defensa acusación 26/04
Defensa acusación 26/04
 
Festividad de san pedro y san pablo ninos
Festividad de san pedro y san pablo ninosFestividad de san pedro y san pablo ninos
Festividad de san pedro y san pablo ninos
 
Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016
Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016
Seminarios Turismo Sostenible Agrotravel & Formagrupo 2016
 
Fotos capacitacion docentes
Fotos capacitacion docentesFotos capacitacion docentes
Fotos capacitacion docentes
 

Similar to Web Log Analysis - AWK

Curso de php
Curso de phpCurso de php
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpd
runa
 
21 protocolo de configuración dinámica de hosts dhcp
21  protocolo de configuración dinámica de hosts dhcp21  protocolo de configuración dinámica de hosts dhcp
21 protocolo de configuración dinámica de hosts dhcp
josemanuelacostarendon
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
Onestic
 
Presentación1
Presentación1Presentación1
Presentación1
fabymon
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
Raaulroodriguez
 
20 dhcp linux_asoitson
20 dhcp linux_asoitson20 dhcp linux_asoitson
20 dhcp linux_asoitson
OpenCourseWare México
 
Manual ldap
Manual ldapManual ldap
Manual ldap
omarhl2
 
21 protocolo de configuración dinámica de hosts dhcp
21  protocolo de configuración dinámica de hosts dhcp21  protocolo de configuración dinámica de hosts dhcp
21 protocolo de configuración dinámica de hosts dhcp
Aprende Viendo
 
Ajax
AjaxAjax
Ajax
ousli07
 
Servidor web Apache
Servidor web ApacheServidor web Apache
Servidor web Apache
Javier Martin Rivero
 
Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
Octavio Izucar Martinez
 
Programación web con JSP
Programación web con JSPProgramación web con JSP
Programación web con JSP
ousli07
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
wcuestas
 
Apache: instalación y configuración en Ubuntu Server y Windows Server
Apache: instalación y configuración en Ubuntu Server y Windows ServerApache: instalación y configuración en Ubuntu Server y Windows Server
Apache: instalación y configuración en Ubuntu Server y Windows Server
Nombre Apellidos
 
Redes wan
Redes wanRedes wan
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
openfinanceDev
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
Octavio Izucar Martinez
 
Nginx
NginxNginx
Nginx
infotejero
 
1212
12121212
1212
chucho92
 

Similar to Web Log Analysis - AWK (20)

Curso de php
Curso de phpCurso de php
Curso de php
 
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpd
 
21 protocolo de configuración dinámica de hosts dhcp
21  protocolo de configuración dinámica de hosts dhcp21  protocolo de configuración dinámica de hosts dhcp
21 protocolo de configuración dinámica de hosts dhcp
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Presentación1
Presentación1Presentación1
Presentación1
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 
20 dhcp linux_asoitson
20 dhcp linux_asoitson20 dhcp linux_asoitson
20 dhcp linux_asoitson
 
Manual ldap
Manual ldapManual ldap
Manual ldap
 
21 protocolo de configuración dinámica de hosts dhcp
21  protocolo de configuración dinámica de hosts dhcp21  protocolo de configuración dinámica de hosts dhcp
21 protocolo de configuración dinámica de hosts dhcp
 
Ajax
AjaxAjax
Ajax
 
Servidor web Apache
Servidor web ApacheServidor web Apache
Servidor web Apache
 
Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
 
Programación web con JSP
Programación web con JSPProgramación web con JSP
Programación web con JSP
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
 
Apache: instalación y configuración en Ubuntu Server y Windows Server
Apache: instalación y configuración en Ubuntu Server y Windows ServerApache: instalación y configuración en Ubuntu Server y Windows Server
Apache: instalación y configuración en Ubuntu Server y Windows Server
 
Redes wan
Redes wanRedes wan
Redes wan
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Nginx
NginxNginx
Nginx
 
1212
12121212
1212
 

More from Juan Azcurra

Gestión de la Calidad en Proyectos
Gestión de la Calidad en ProyectosGestión de la Calidad en Proyectos
Gestión de la Calidad en Proyectos
Juan Azcurra
 
Gestión del Alcance en los Proyectos
Gestión del Alcance en los ProyectosGestión del Alcance en los Proyectos
Gestión del Alcance en los Proyectos
Juan Azcurra
 
Fundamentos de Administración de Proyectos
Fundamentos de Administración de ProyectosFundamentos de Administración de Proyectos
Fundamentos de Administración de Proyectos
Juan Azcurra
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Juan Azcurra
 
Introducción a Business Intelligence
Introducción a Business IntelligenceIntroducción a Business Intelligence
Introducción a Business Intelligence
Juan Azcurra
 
NoSQL - MongoDB
NoSQL - MongoDBNoSQL - MongoDB
NoSQL - MongoDB
Juan Azcurra
 
Text mining
Text miningText mining
Text mining
Juan Azcurra
 
Web Link Analysis
Web Link AnalysisWeb Link Analysis
Web Link Analysis
Juan Azcurra
 
Web Usage Mining
Web Usage MiningWeb Usage Mining
Web Usage Mining
Juan Azcurra
 
Web Usage Mining - Temas Avanzados
Web Usage Mining - Temas AvanzadosWeb Usage Mining - Temas Avanzados
Web Usage Mining - Temas Avanzados
Juan Azcurra
 
Web Content Mining - Information Retrieval
Web Content Mining - Information RetrievalWeb Content Mining - Information Retrieval
Web Content Mining - Information Retrieval
Juan Azcurra
 
Web Content Mining - Datos estructurados
Web Content Mining - Datos estructuradosWeb Content Mining - Datos estructurados
Web Content Mining - Datos estructurados
Juan Azcurra
 
Introducción a Web Mining
Introducción a Web MiningIntroducción a Web Mining
Introducción a Web Mining
Juan Azcurra
 
Introducción a Big Data
Introducción a Big DataIntroducción a Big Data
Introducción a Big Data
Juan Azcurra
 
Introducción a Text Mining
Introducción a Text MiningIntroducción a Text Mining
Introducción a Text Mining
Juan Azcurra
 

More from Juan Azcurra (15)

Gestión de la Calidad en Proyectos
Gestión de la Calidad en ProyectosGestión de la Calidad en Proyectos
Gestión de la Calidad en Proyectos
 
Gestión del Alcance en los Proyectos
Gestión del Alcance en los ProyectosGestión del Alcance en los Proyectos
Gestión del Alcance en los Proyectos
 
Fundamentos de Administración de Proyectos
Fundamentos de Administración de ProyectosFundamentos de Administración de Proyectos
Fundamentos de Administración de Proyectos
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Introducción a Business Intelligence
Introducción a Business IntelligenceIntroducción a Business Intelligence
Introducción a Business Intelligence
 
NoSQL - MongoDB
NoSQL - MongoDBNoSQL - MongoDB
NoSQL - MongoDB
 
Text mining
Text miningText mining
Text mining
 
Web Link Analysis
Web Link AnalysisWeb Link Analysis
Web Link Analysis
 
Web Usage Mining
Web Usage MiningWeb Usage Mining
Web Usage Mining
 
Web Usage Mining - Temas Avanzados
Web Usage Mining - Temas AvanzadosWeb Usage Mining - Temas Avanzados
Web Usage Mining - Temas Avanzados
 
Web Content Mining - Information Retrieval
Web Content Mining - Information RetrievalWeb Content Mining - Information Retrieval
Web Content Mining - Information Retrieval
 
Web Content Mining - Datos estructurados
Web Content Mining - Datos estructuradosWeb Content Mining - Datos estructurados
Web Content Mining - Datos estructurados
 
Introducción a Web Mining
Introducción a Web MiningIntroducción a Web Mining
Introducción a Web Mining
 
Introducción a Big Data
Introducción a Big DataIntroducción a Big Data
Introducción a Big Data
 
Introducción a Text Mining
Introducción a Text MiningIntroducción a Text Mining
Introducción a Text Mining
 

Recently uploaded

Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
ranierglez
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
renzocruz180310
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
AngelCristhianMB
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
jgvanessa23
 

Recently uploaded (20)

Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 

Web Log Analysis - AWK

  • 1. WEB y TEXT MINING Web Log Analysis con AWKJuan Azcurra
  • 2. Log del web server Apache  El log que guarda un servidor Apache contiene la siguiente información: %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-agent}i"  Donde:  %h: IP del cliente.  %l: identidad del cliente.  %u: userid de la persona solicitando el documento.  %t: hora en la que el servidor finalizó el pedido.  %r: linea solicitada por el cliente.  %>s: código de estado que el servidor envia al cliente.  %b: tamaño en bytes del objeto enviado al cliente.  %{Referer}: desde donde fue referido.  %{User-agent}: agente de usuario del cliente.
  • 3. Códigos de estado  Códigos de respuesta:  200 - OK  206 - Partial Content  301 - Moved Permanently  302 - Found  304 - Not Modified  401 - Unauthorised (password required)  403 - Forbidden  404 - Not Found  301 o 302 indican que hubo una redirección.  304 indica que el objeto ya se encontraba en la cache del cliente.  404 indica que el link está corrupto.
  • 4. GAWK – Introducción  Un lenguaje muy potente para procesamiento de texto y búsqueda de patrones.  GAWK es una versión GNU de AWK.  Sintáxis similar a C.  http://www.gnu.org/software/gawk  El nombre AWK proviene de las iniciales de sus diseñadores: Alfred V. Aho, Peter J. Weinberger, and Brian W. Kernighan.  La versión original de AWK fue escrita en 1977.
  • 5. GAWK – Ejecución  gawk ‘commands’ file  gawk –f prog.gawk
  • 6. GAWK – Archivos y campos  Gawk divide el archivo en registros y campos.  Cada línea es un registro (por defecto).  Los campos son delimitados por un carácter especial.  Por defecto: espacio en blanco (blanco o tab).  Puede ser cambiado con la opción –F  Ej. Para indicar que el campo está separado por comas, usar:  Gawk –F “,” archivo.csv
  • 7. GAWK – Campos y variables  Los campos son accedidos por el prefijo $  Variables especiales:  $1 es el primer campo, $2 es el segundo campo, …  $0 es un campo especial que contiene todo el registro.  NF es una variable especial que indica el número de campos en el registro actual.  NR es una variable especial que indica el número de registro actual.
  • 8. GAWK - Condiciones gawk –F "d" 'condición' archivo  GAWK procesa cada linea del archivo, usando el delimitado por defecto para dividir cada linea en campos.  La acción por defecto es imprimir la linea completa.
  • 9. Ejemplo con archivo de prueba  Utilizaremos el archivo d100.log que contiene las 100 primeras lineas del archivo de log de Kdnuggets del 16/11/05,  Se presentarán algunos códigos de ejemplo que pueden utilizarse con el archivo completo.
  • 10. Archivo de prueba d100.log ip1664.com - - [16/Nov/2005:00:00:43 -0500] "GET /robots.txt HTTP/1.0" 200 173 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)" ip1664.com - - [16/Nov/2005:00:00:43 -0500] "GET /gpspubs/sigkdd-kdd99-panel.html HTTP/1.0" 200 14199 "- " "msnbot/1.0 (+http://search.msn.com/msnbot.htm)" ip2283.unr - - [16/Nov/2005:00:01:02 -0500] "GET /dmcourse/data_mining_course/assignments/assignment- 3.html HTTP/1.1" 200 8090 "http://www.google.com/search?hl=en&q=use+of+data+cleaning+in+data+mining&spell=1" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" ip2283.unr - - [16/Nov/2005:00:01:03 -0500] "GET /dmcourse/dm.css HTTP/1.1" 200 155 "http://www.kdnuggets.com/dmcourse/data_mining_course/assignments/assignment-3.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" ip1389.net - - [16/Nov/2005:00:02:46 -0500] "GET /gpspubs/kdd99-est-ben-lift/sld021.htm HTTP/1.1" 200 1385 "http://www.google.com/search?hs=JnE&hl=en&lr=&client=opera&rls=en&q=lift+curve&btnG=Search" "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 8.5" ip1389.net - - [16/Nov/2005:00:02:46 -0500] "GET /gpspubs/kdd99-est-ben-lift/img021.gif HTTP/1.1" 200 7465 "http://www.kdnuggets.com/gpspubs/kdd99-est-ben-lift/sld021.htm" "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 8.5" ip1389.net - - [16/Nov/2005:00:02:47 -0500] "GET /favicon.ico HTTP/1.1" 200 899 "http://www.kdnuggets.com/gpspubs/kdd99-est-ben-lift/sld021.htm" "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 8.5" ip1946.com - - [16/Nov/2005:00:02:49 -0500] "GET /news/2001/n10/15i.html HTTP/1.0" 200 4214 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)“
  • 11. Ejemplo 1: Líneas con estado != 200  Código de estado se encuentra en el campo $9  Cuántas lineas tienen el código de estado distinto de 200? : gawk '$9 != 200' d100.log Resultado: 27 Para contar el estado igual a 200, usar: '$9 == 200' no '$9 = 200' (esto setea $9 al valor 200)
  • 12. Ejempo 2: Contar referencias de Google  Gawk tiene un poderoso evaluador de patrones  variable ~ "pattern"  Ejemplo: cuántas líneas del log tiene la referencia (campo $11) desde google: gawk '$11 ~ "google"' d100.log Resultado: 2
  • 13. Ejemplo 3: Condiciones complejas  Cuántos hits tienen el método GET y estado 404?  (status 404 es un código de error)  El método está en $6, pero el método está separado por un espacio. Se puede utilizar: gawk '$6 ~ "GET" && $9 == 404' d100.log Resultado: 1
  • 14. Ejemplo 4a: Contando solicitudes de HTML  El archivo solicitado está en el campo $7, se puede utilizar esta condición para evaluar si terminar con .html  Nota: $ en una expresión regular indica el fin de la cadena. gawk '$7 ~ ".html$"' d100.log Resultado: 21
  • 15. Ejemplo 4b: Contando solicitudes de HTM o HTML Algunos archivos finalizan con .html, se puede utilizar: gawk '$7 ~ ".html$|.htm$"' d100.log Resultado: 22  O también: gawk '$7 ~ ".htm"' d100.log Resultado: 22
  • 16. Ejemplo 4c: Contado solicitudes de directorios  Algunos pedidos pueden ser a un directorio, por ejemplo un pedido a www.kdnuggets.com/ tendría el literal "GET / HTTP/1.1".  Para contar estas solicitudes: gawk '$7 ~ "/$"' d100.log Resultado: 6
  • 17. Ejemplo 4d: Contando todas las solicitudes HTML  o contar html, htm y directorios con: gawk '$7 ~ "(html|htm|/)$"' d100.log Resultado: 28
  • 18. GAWK – Cálculos  Forma general de la sentencia gawk '{sentencias;…}' archivo  Las sentencias son ejecutadas para cada línea del archivo.  Las sentencias incluyen condicionales, loops, etc.
  • 19. Ejemplo 5: Referencias externas  Imprimir referencias a páginas html, excluyendo acceso directo (donde la referencia es "-" )  Nota: para testear si $11 es "-", es necesario utilizar la comilla con escape "  Código: gawk '{if ($7~"html$" && $11!=""-"") print $11}' d100.log Resultado: 7
  • 20. GAWK – Sentencias BEGIN, END  Para ejecutar sentencias antes de leer la primera linea se utiliza la palabra clave BEGIN  Para ejecutar sentencias despues de leer la última linea se utiliza la palabra clave END gawk 'BEGIN{sent1;…} {sent2;…} END {sent3;…}' archivo
  • 21. Ejemplo 6  Sumar los bytes transmitidos con código de estado 200 gawk '{if ($9 == 200) suma += $10} END{print suma}' d100.log Resultado: 396460 Nota: no es necesario inicializar suma, todas las variables son inicializadas en 0 por defecto.
  • 22. GAWK - Arreglos  Es posible utilizar variables compuestas  Por ejemplo, imprimir la cantidad de hits por IP: gawk '{!a[$1]++} END {for(i in a) print i, a[i]}'d100.log Resultado: ip2171.unr 1 ip967.com 5 ip1037.com 1