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:
| Comando | Función |
|---|---|
stats count | Contar eventos |
top | Mostrar valores más frecuentes |
timechart | Gráfico temporal |
where | Filtrar resultados |
table | Mostrar en tabla |
sort | Ordenar resultados |
dedup | Eliminar duplicados |
fields | Seleccionar campos |
eval | Crear 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