miércoles, 11 de agosto de 2010

Análisis de archivos de logs

PowerShell facilita el trabajo con archivos de registros. Por ejemplo, imaginemos que necesitamos saber qué direcciones IP han accedido a nuestro servidor IIS.
Con PowerShell lo podemos hacer fácilmente, pero previamente debemos realizar unos cambios sobre el archivo de registro de IIS.

1) Hacemos una copia del archivo que queremos analizar.

2) Borramos todas las líneas de comentarios, salvo la que establece los nombres de los campos.

Las dos siguientes imágenes, muestran parte del archivo original de IIS y del que vamos a analizar nosotros:









3) Importamos los datos a PowerShell.

$a=import-csv -Delimiter " " archivo.log

Podemos ver el número de líneas importado: $a.count
Para acceder a una línea, por ejemplo a la 0: $a[0]
Para ver las propiedades de cada línea: $a[0]| Get-Member. Se crea una propiedad por cada columna existente en el archivo.
Para ver el archivo importado: $a[0]| Format-Table

4) Almacenamos todas las IPs en un array:

$col=@()
foreach ($i in $a) {$col+=$i."s-ip"}


5) Ordenamos el array y quitamos los duplicados:

$col | sort-object | get-unique

No hay comentarios:

Publicar un comentario