V
e
r

l
i
s
t
a
d
o

tractatus@lapipaplena:/# _

 

grok

Herramienta diseñada para analizar texto, especialmente registros [logs] o salidas de programas, usando patrones definidos. La utilidad radica en poder extraer información estructurada de datos no estructurados como logs del sistema, salidas de comandos, etc. Se basa en expresiones regulares simplificadas y nombradas, llamadas patrones Grok, que hacen más fácil reconocer partes específicas del texto, como fechas, direcciones IP, nombres de usuario, etc.

Un patrón Grok se ve así:

%{IP:client_ip}

Este extrae una dirección IP y la guarda bajo el nombre `client_ip`.

Supongamos este log:

192.168.1.10 - - [18/May/2025:15:23:12 +0000] "GET /index.html HTTP/1.1" 200 532

Se puede definir un patrón para extraer partes específicas:

$ echo '192.168.1.10 - - [18/May/2025:15:23:12 +0000] "GET /index.html HTTP/1.1" 200 532' \

| grok '%{IP:client} - - \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{URIPATH:request} HTTP/%{NUMBER:http_version}" %{NUMBER:status} %{NUMBER:bytes}'

La salida:

{

"client": "192.168.1.10",

"timestamp": "18/May/2025:15:23:12 +0000",

"method": "GET",

"request": "/index.html",

"http_version": "1.1",

"status": "200",

"bytes": "532"

}

grok ya incluye muchos patrones útiles. Algunos ejemplos:

IP --> Dirección IP

USERNAME --> Nombre de usuario

WORD --> Palabra simple

NUMBER --> Número

HTTPDATE --> Fecha en logs HTTP

URIPATH --> Ruta de URL

1.-

Ejemplo interactivo

Failed password for invalid user admin from 10.0.0.5 port 2234 ssh2

$ cat log.txt | grok 'Failed password for %{GREEDYDATA:user} from %{IP:ip} port %{NUMBER:port} ssh2'

Salida:

{

"user": "invalid user admin",

"ip": "10.0.0.5",

"port": "2234"

}

Navegando por staredsi.eu aceptas las cookies que utilizamos en esta web. Más información: Ver política de cookies
[0] 0:bash*
3873 entradas - Acerca del Tractatus
La Pipa Plena 2025