SPL (Search Processing Language) - Básico

Cuando empecé a trabajar con Splunk, lo que más me costó fue entender la lógica del SPL. Pero una vez que captas cómo fluye la información, es como aprender a usar un lenguaje natural para hablar con tus datos.

Estructura básica

Para entender el SPL, yo siempre vuelvo a está base fundamental:

<comando> <campos> <opciones>

Búsquedas fundamentales

Estas son las que yo uso a diario para filtrar ruido y encontrar lo que importa:

Buscar todos los eventos de un índice

index=botsv3 earliest=0

Contar eventos por tipo

index=botsv3 | stats count by sourcetype

Buscar por texto específico

index=botsv3 "malware"

Buscar por campo

index=botsv3 src_ip="192.168.1.100"

Top 10 fuentes

index=botsv3 | top limit=10 source

Eventos por hora

index=botsv3 | timechart span=1h count

Contar por campo

index=botsv3 | stats count by src_ip

Comandos más usados

Si quieres ser eficiente, estos son los comandos que yo tengo en mi “caja de herramientas” mental:

ComandoFunción
stats countContar eventos
topMostrar valores más frecuentes
timechartGráfico temporal
whereFiltrar resultados
tableMostrar en tabla
sortOrdenar resultados
dedupEliminar duplicados
fieldsSeleccionar campos
evalCrear campos calculados

Ejemplos prácticos

Aquí te dejo algunos ejemplos que yo mismo aplico para acelerar mis investigaciones:

Top 10 IPs origen con más eventos

index=botsv3 | top limit=10 src_ip

Eventos de error en las últimas 24h

index=botsv3 earliest=-24h | where log_level="ERROR"

Tráfico por hora

index=botsv3 | timechart span=1h count by sourcetype

Buscar eventos de autenticación

index=botsv3 sourcetype=wineventlog EventCode=4624 | stats count by src_ip, user

Login fallidos

index=botsv3 sourcetype=wineventlog EventCode=4625 | stats count by src_ip, user