2. Búsquedas básicas¶
Las búsquedas básicas son el punto de entrada al trabajo diario con Splunk. Permiten localizar eventos, limitar los resultados a una condición y mostrar solo la información necesaria para responder una pregunta operativa.
En esta parte no buscamos todavía construir consultas complejas. El objetivo es aprender una secuencia fiable: empezar por el índice, añadir un filtro, comprobar el resultado y solo después ordenar o resumir la información.
La búsqueda más sencilla¶
Una búsqueda puede consistir únicamente en el índice:
Esta consulta devuelve los eventos del índice curso dentro del intervalo
temporal seleccionado en Splunk Web. El índice debe aparecer desde el
principio, especialmente cuando tienes permisos de administrador y puedes
acceder a muchos índices. Así evitas mezclar datos del laboratorio con eventos
de otros entornos.
Después de ejecutarla, revisa algunos eventos y confirma que los metadatos son coherentes:
_time: momento que Splunk utiliza para ordenar y filtrar el evento;host: equipo o sistema que origina el dato;source: archivo, entrada o fuente concreta;sourcetype: tipo de datos y reglas de extracción asociadas;index: índice donde se ha almacenado el evento.
Buscar texto y buscar campos¶
Un texto sin nombre de campo busca coincidencias en el contenido indexado:
Es mejor usar un campo cuando sabes qué quieres comprobar:
La forma campo=valor es más precisa y normalmente ayuda a Splunk a reducir
el trabajo de búsqueda. Si el valor contiene espacios o caracteres especiales,
utiliza comillas:
No confundas el nombre de un campo con el valor que contiene. status=404
filtra por el campo status; escribir solamente 404 busca el texto y puede
producir resultados diferentes.
Operadores booleanos y comparaciones¶
Puedes combinar condiciones para describir el caso que quieres investigar:
Cuando necesitas expresar alternativas, usa OR y agrupa la condición con
paréntesis:
Para excluir resultados utiliza NOT o el operador !=:
Las comparaciones numéricas son útiles para códigos HTTP o medidas extraídas como número:
Si una comparación no devuelve lo esperado, verifica que el campo tenga el tipo correcto y que realmente se haya extraído en los eventos. Un campo que no existe no equivale automáticamente a un valor cero.
Comodines y existencia de campos¶
El comodín * representa una secuencia de caracteres. Por ejemplo:
Para comprobar que un campo está presente, utiliza:
Esto es especialmente útil cuando una fuente cambia de formato o cuando quieres verificar si la extracción de campos está funcionando. Para localizar eventos sin un campo, puedes usar:
Usa los comodines con moderación. Una búsqueda demasiado abierta puede devolver muchos resultados y ocultar la pregunta que realmente quieres responder.
Limitar y presentar resultados¶
Una búsqueda devuelve los eventos completos, pero durante una investigación no siempre necesitas todas sus columnas. Estos comandos ayudan a trabajar con una salida manejable.
table: seleccionar campos¶
table es útil para revisar eventos y preparar una tabla para un ejercicio.
Recuerda incluir _time mientras estés validando los datos.
fields: conservar o eliminar campos¶
También puedes eliminar campos que no necesitas:
sort: ordenar resultados¶
El signo - ordena de forma descendente. Para ordenar por el código HTTP o
por un campo calculado, indica ese campo:
head y tail: limitar el número de eventos¶
head conserva los primeros resultados y tail los últimos resultados de la
salida actual. Ordénalos antes si el orden importa.
dedup: eliminar duplicados visibles¶
dedup sirve para inspecciones rápidas, pero no debe usarse para calcular
volúmenes sin entender su efecto: elimina eventos de la salida y puede hacer
que los recuentos dejen de representar el total real.
Procedimiento práctico de búsqueda¶
Usa este procedimiento cada vez que recibas una petición de análisis:
- Escribe el índice y selecciona un intervalo temporal razonable.
- Ejecuta la búsqueda sin filtros para confirmar que hay eventos.
- Añade una sola condición de campo.
- Comprueba si el número de resultados y los eventos son los esperados.
- Selecciona los campos relevantes con
tableofields. - Ordena y limita la salida solo cuando conozcas qué estás observando.
- Guarda la consulta junto con su objetivo y el intervalo temporal.
Por ejemplo, para investigar respuestas 404 del laboratorio:
Si el primer paso no devuelve eventos, el problema probablemente no está en el
filtro status=404. Comprueba el rango temporal, el índice, la entrada de
datos, el sourcetype y los permisos antes de cambiar la sintaxis.
Prácticas sobre los datos del curso¶
Peticiones de un host¶
Peticiones que no son satisfactorias¶
Ten en cuenta que status!=200 puede no incluir eventos en los que status no
exista. Si quieres identificar tanto los errores como los eventos incompletos,
haz explícita la condición de ausencia:
URI de acceso o autenticación¶
Estas consultas son de inspección. Para contar, agrupar o calcular porcentajes
utilizarás stats y eval en los capítulos siguientes.
Diagnóstico de resultados inesperados¶
| Síntoma | Comprobación recomendada |
|---|---|
| Cero resultados | Revisa índice, permisos, rango temporal y existencia de eventos. |
| Demasiados resultados | Añade el índice, un campo y un intervalo más pequeño. |
status=404 no encuentra eventos |
Inspecciona un evento y confirma el nombre y el tipo del campo. |
Falta uri o method |
Revisa la extracción del sourcetype y el formato de entrada. |
| Los eventos parecen antiguos | Comprueba _time y la interpretación del timestamp. |
dedup muestra pocos eventos |
Recuerda que elimina duplicados de la salida. |
Como administrador puedes revisar la entrada desde Settings > Data inputs y el índice desde Settings > Indexes, pero la comprobación más rápida suele ser observar un evento real en los resultados y revisar sus campos.
Buenas prácticas¶
- Empieza siempre por
index=.... - Usa nombres de campo explícitos en lugar de texto libre cuando sea posible.
- Añade una condición cada vez para saber qué cambio altera el resultado.
- Mantén
_timevisible durante la validación. - No uses
headantes de comprobar que el orden de los eventos es relevante. - No uses
deduppara sustituir un recuento estadístico. - Documenta el objetivo, el índice y el rango temporal de las consultas útiles.
- No pruebes consultas amplias sobre todos los índices si el objetivo solo necesita los datos del laboratorio.