Objetivos¶
Este documento define qué debe aprender el asistente, qué actividades realizará y cómo se comprobará que los objetivos se han alcanzado.
El curso no se limita a ejecutar búsquedas SPL. El asistente debe ser capaz de explicar:
- de dónde proceden los datos;
- cómo llegan a Splunk;
- en qué índice se almacenan;
- qué timestamp utiliza la búsqueda;
- qué campos están disponibles;
- cómo se construye una métrica;
- qué permisos intervienen;
- cómo se valida un resultado;
- qué limitaciones tiene el dataset.
El objetivo general es pasar de una fuente de datos a una solución básica de análisis y monitorización:
Fuente
↓
Entrada
↓
Parsing
↓
Índice
↓
Tiempo y metadatos
↓
Campos
↓
Búsqueda SPL
↓
Visualización
↓
Reporte, dashboard o alerta
↓
Decisión operativa
1. Contexto del curso¶
El curso utiliza como entorno de referencia:
- Splunk Enterprise 10.4.3;
- Ubuntu 24.04.5 LTS;
- una instancia local de laboratorio;
- arquitectura mononodo;
- acceso administrativo durante la configuración;
- índice principal
curso; - dataset de prácticas
eventos_web.csv.
El asistente trabajará con eventos de una aplicación web y aprenderá a responder preguntas operativas como:
- ¿Cuántas peticiones se han recibido?
- ¿Qué porcentaje de peticiones ha terminado en error?
- ¿Qué URI genera más errores?
- ¿Cuántos errores HTTP 500 se han producido?
- ¿Cómo evoluciona el tráfico?
- ¿Qué host concentra más errores?
- ¿Existe información suficiente para analizar latencia?
- ¿Qué condición debería activar una alerta?
2. Objetivos generales¶
Al finalizar el curso, el asistente podrá:
- comprender el modelo de datos y la arquitectura de Splunk Enterprise;
- instalar y poner en funcionamiento Splunk Enterprise 10.4.3 en Ubuntu 24.04.5 LTS;
- diferenciar Splunk Web de
splunkd; - identificar los puertos principales de Splunk;
- ingerir datos de laboratorio;
- comprobar que los eventos quedan disponibles en el índice
curso; - identificar
source,sourcetypeyhost; - validar
_time,_indextimey_raw; - crear búsquedas SPL para localizar, filtrar y resumir eventos;
- transformar campos y normalizar valores;
- construir visualizaciones, reportes y dashboards útiles;
- configurar alertas básicas;
- aplicar buenas prácticas de operación y seguridad;
- comprobar permisos con un usuario distinto de
admin; - diagnosticar problemas de acceso, ingesta, tiempo y extracción de campos;
- documentar resultados, decisiones y limitaciones.
3. Resultados de aprendizaje observables¶
Los objetivos se consideran alcanzados cuando el asistente puede demostrar cada resultado mediante una práctica o evidencia.
3.1 Plataforma¶
El asistente puede:
- comprobar la versión de Splunk;
- comprobar el estado del servicio;
- identificar el usuario de ejecución;
- verificar el puerto de Splunk Web;
- verificar el puerto de administración;
- acceder a la interfaz web;
- ejecutar una búsqueda mínima;
- distinguir un problema de servicio de un problema de datos.
Comandos de referencia:
Prueba funcional:
3.2 Ingesta¶
El asistente puede:
- localizar el archivo de laboratorio;
- identificar la entrada utilizada;
- comprobar el índice de destino;
- revisar el
sourcetype; - comprobar el
host; - verificar que el archivo es legible;
- evitar cargar varias veces el mismo dataset;
- explicar la diferencia entre carga puntual y monitorización.
Consulta de referencia:
Validación del índice:
| rest /services/data/indexes
| search title=curso
| table title disabled totalEventCount currentDBSizeMB
3.3 Tiempo¶
El asistente puede:
- explicar qué representa
_time; - explicar qué representa
_indextime; - utilizar rangos relativos;
- utilizar rangos absolutos;
- localizar el primer y último evento;
- detectar eventos históricos;
- identificar posibles problemas de zona horaria;
- explicar por qué una búsqueda reciente puede no encontrar un dataset antiguo.
Consulta de referencia:
index=curso earliest=0 latest=now
| stats
count as total_eventos
earliest(_time) as primer_evento
latest(_time) as ultimo_evento
Comparación de tiempos:
index=curso earliest=0 latest=now
| eval fecha_evento=strftime(
_time,
"%Y-%m-%d %H:%M:%S"
)
| eval fecha_ingesta=strftime(
_indextime,
"%Y-%m-%d %H:%M:%S"
)
| table fecha_evento fecha_ingesta _time _indextime
| head 20
3.4 SPL¶
El asistente puede:
- construir búsquedas desde lo más simple a lo más complejo;
- utilizar
search; - utilizar
where; - utilizar
eval; - utilizar
stats; - utilizar
timechart; - utilizar
table; - utilizar
sort; - utilizar
head; - utilizar
rex; - utilizar
fieldsummary; - combinar condiciones;
- agrupar resultados;
- ordenar rankings;
- controlar valores nulos;
- normalizar campos numéricos.
Consulta de referencia:
index=curso earliest=0 latest=now
| eval status_num=tonumber(trim(status))
| where status_num>=400
| stats count as errores by uri
| sort - errores
| head 10
3.5 Objetos operativos¶
El asistente puede:
- guardar una búsqueda;
- crear un reporte;
- programar una ejecución;
- crear una visualización;
- crear un dashboard;
- añadir un selector temporal;
- añadir un filtro por
host; - añadir un filtro por
status; - configurar una alerta;
- probar una alerta;
- revisar permisos del objeto;
- compartir un objeto con el rol adecuado.
4. Objetivos específicos¶
4.1 Preparar el entorno¶
El asistente podrá:
- comprobar la arquitectura del equipo;
- revisar memoria disponible;
- revisar espacio en disco;
- revisar inodos;
- comprobar conectividad básica;
- verificar la ruta de instalación;
- instalar manualmente el paquete
.debde Splunk Enterprise; - aceptar la licencia;
- crear la cuenta administrativa local;
- verificar la versión instalada;
- verificar el estado de
splunkd; - revisar los logs principales;
- acceder a Splunk Web en el puerto
8000; - diferenciar permisos de Splunk y permisos de Ubuntu;
- documentar las características del entorno.
Comandos de referencia:
Validación web:
Evidencia esperada¶
El asistente debe conservar:
- versión;
- sistema operativo;
- arquitectura;
- usuario de ejecución;
- ruta de instalación;
- estado del servicio;
- puertos;
- resultado de la prueba web;
- observaciones sobre recursos.
4.2 Comprender los datos¶
El asistente podrá:
- diferenciar eventos de campos;
- diferenciar una fuente de un índice;
- explicar la función de
source; - explicar la función de
sourcetype; - explicar la función de
host; - explicar la diferencia entre ingesta e indexación;
- interpretar
_raw; - interpretar
_time; - interpretar
_indextime; - comprobar qué campos se han extraído;
- revisar los valores reales de un campo;
- explicar cómo un timestamp incorrecto puede ocultar resultados;
- reconocer el recorrido desde una fuente hasta una búsqueda.
Consulta de inspección:
index=curso earliest=0 latest=now
| table
_time
_indextime
host
source
sourcetype
method
status
uri
_raw
| head 20
Consulta de descubrimiento de campos:
Consulta de metadatos:
4.3 Buscar y analizar¶
El asistente podrá:
- buscar eventos por índice;
- añadir rangos temporales;
- filtrar por campos;
- utilizar operadores booleanos;
- utilizar comparaciones numéricas;
- ordenar resultados;
- seleccionar únicamente los campos relevantes;
- contar eventos;
- agrupar eventos;
- calcular porcentajes;
- utilizar
stats; - utilizar
timechart; - utilizar
eval; - utilizar
rex; - identificar campos ausentes;
- detectar valores no convertibles;
- interpretar resultados;
- reconocer datos incompletos o mal extraídos.
Búsqueda mínima¶
Filtrado por código HTTP¶
index=curso earliest=0 latest=now
| eval status_num=tonumber(trim(status))
| where status_num=404
| stats count as errores_404
Errores por URI¶
index=curso earliest=0 latest=now
| eval status_num=tonumber(trim(status))
| where status_num>=400
| stats count as errores by uri
| sort - errores
| head 10
Evolución temporal¶
Detección de valores no numéricos¶
index=curso earliest=0 latest=now
| eval status_num=tonumber(trim(status))
| where isnotnull(status) AND isnull(status_num)
| table _time status uri _raw
4.4 Presentar y actuar¶
El asistente podrá:
- guardar búsquedas como reportes;
- elegir una visualización adecuada;
- justificar la elección de una tabla, gráfico o single value;
- construir dashboards con paneles;
- añadir filtros;
- utilizar tokens;
- configurar una alerta comprensible;
- justificar la ventana temporal;
- configurar throttling;
- probar la acción de la alerta;
- documentar resultados y decisiones.
Ejemplo de alerta¶
Objetivo:
Detectar cinco o más errores HTTP 500 en cinco minutos.
index=curso earliest=-5m latest=now
| eval status_num=tonumber(trim(status))
| stats count(eval(status_num=500)) as errores_500
| where errores_500>=5
La consulta debe probarse de dos formas:
- con datos recientes;
- con un intervalo histórico que contenga eventos conocidos.
Una prueba histórica valida la lógica, pero no demuestra por sí sola que la alerta en tiempo real esté funcionando.
5. Objetivos organizados por sesiones¶
5.1 Sesión 1: fundamentos e ingestión¶
Al terminar la sesión 1, el asistente podrá:
- explicar qué es Splunk Enterprise;
- distinguir Splunk Web de
splunkd; - identificar los componentes básicos;
- comprobar el estado de la instancia;
- explicar qué es un evento;
- explicar qué es un índice;
- explicar qué es una entrada;
- diferenciar
source,sourcetypeyhost; - crear o validar el índice
curso; - cargar
eventos_web.csv; - localizar los eventos;
- revisar el timestamp;
- documentar el proceso de ingesta;
- utilizar la guía de troubleshooting.
Evidencias de la sesión 1¶
- Captura o salida del estado del servicio.
- Versión de Splunk.
- Índice
cursovalidado. - Entrada de datos documentada.
- Número de eventos.
- Primer y último evento.
-
source,sourcetypeyhost. - Consulta de validación.
- Limitaciones observadas.
Referencia:
5.2 Sesión 2: búsquedas y SPL¶
Al terminar la sesión 2, el asistente podrá:
- escribir búsquedas básicas;
- utilizar rangos temporales;
- filtrar eventos;
- comprobar valores;
- ordenar resultados;
- seleccionar campos;
- calcular estadísticas;
- utilizar funciones de evaluación;
- convertir textos en números;
- extraer campos;
- crear series temporales;
- analizar errores;
- optimizar consultas básicas;
- explicar por qué una consulta produce un resultado concreto.
Evidencias de la sesión 2¶
- Búsqueda de volumen total.
- Búsqueda de peticiones por host.
- Búsqueda de errores por URI.
- Consulta de códigos HTTP.
- Consulta temporal.
- Uso de
tonumber. - Uso de
fieldsummary. - Interpretación escrita.
- Limitaciones documentadas.
Referencia:
5.3 Sesión 3: reportes, dashboards y alertas¶
Al terminar la sesión 3, el asistente podrá:
- guardar una búsqueda;
- crear un reporte;
- programar un reporte;
- elegir una visualización;
- diseñar un dashboard;
- crear paneles;
- utilizar filtros temporales;
- utilizar filtros por
hostostatus; - configurar una alerta;
- establecer una condición;
- configurar una frecuencia;
- aplicar throttling;
- revisar permisos;
- validar el objeto con otro usuario;
- presentar el proyecto final.
Evidencias de la sesión 3¶
- Reporte de errores por URI.
- Reporte de tráfico por host.
- Dashboard funcional.
- Selector temporal.
- Filtro por host o status.
- Alerta de HTTP 500.
- Prueba manual de la alerta.
- Configuración de throttling.
- Permisos documentados.
- Capturas o exportación de resultados.
Referencia:
6. Evidencias de aprendizaje¶
El aprendizaje se comprobará mediante una secuencia de resultados:
- Instancia local operativa en Ubuntu.
- Splunk Web accesible.
- Índice
cursocreado o validado. - Dataset de laboratorio ingerido.
- Búsqueda mínima con eventos.
- Campos y timestamps comprobados.
- Búsquedas SPL documentadas.
- Un reporte o visualización basada en los datos.
- Un dashboard con al menos un filtro.
- Una alerta o propuesta de alerta justificada.
- Validación de permisos.
- Informe final con limitaciones y conclusiones.
Cada evidencia debe indicar:
- objetivo;
- fecha;
- usuario;
- índice;
- rango temporal;
- SPL o configuración;
- resultado;
- interpretación;
- limitaciones.
7. Criterios de logro¶
Nivel inicial¶
El asistente:
- accede a Splunk Web;
- ejecuta búsquedas básicas;
- localiza eventos;
- identifica el índice;
- reconoce los campos principales.
Nivel operativo¶
El asistente:
- construye búsquedas reproducibles;
- utiliza rangos temporales;
- normaliza campos;
- calcula estadísticas;
- crea visualizaciones;
- documenta resultados;
- identifica errores de ingesta o parsing.
Nivel final¶
El asistente:
- diseña una solución de monitorización;
- crea reportes;
- construye un dashboard;
- configura una alerta;
- revisa permisos;
- prueba con un usuario operativo;
- interpreta limitaciones;
- utiliza troubleshooting;
- explica y defiende sus decisiones técnicas.
8. Criterios de calidad¶
Una práctica se considera correcta cuando:
- utiliza el índice esperado;
- incluye un rango temporal;
- utiliza campos existentes;
- normaliza los valores cuando es necesario;
- evita
index=*sin justificación; - evita
table *; - limita rankings innecesarios;
- documenta el resultado;
- diferencia datos observados de hipótesis;
- indica las limitaciones;
- puede repetirse por otra persona;
- no utiliza permisos excesivos;
- no expone información sensible.
8.1 Reproducibilidad¶
Una consulta reproducible debe indicar:
- Índice:
- Rango temporal:
- Usuario:
- SPL:
- Campos:
- Resultado esperado:
- Resultado observado:
- Interpretación:
- Limitaciones:
8.2 Normalización¶
Los campos numéricos deben convertirse antes de compararlos:
No se debe asumir que un campo es numérico solo porque contiene valores como
200, 404 o 500.
8.3 Limitaciones¶
Si no existe un campo, debe documentarse:
No se debe presentar una dimensión alternativa como si fuera equivalente.
9. Actividades prácticas asociadas¶
Actividad 1: validar la plataforma¶
Resultado esperado:
- versión visible;
- servicio activo;
- respuesta web disponible.
Actividad 2: validar la búsqueda¶
Resultado esperado:
Actividad 3: validar los datos¶
index=curso earliest=0 latest=now
| stats
count as total_eventos
earliest(_time) as primer_evento
latest(_time) as ultimo_evento
Resultado esperado:
- eventos encontrados;
- primer timestamp;
- último timestamp.
Actividad 4: revisar campos¶
index=curso earliest=0 latest=now
| table _time _raw host source sourcetype method status uri
| head 20
Resultado esperado:
- eventos visibles;
- campos identificables;
_rawdisponible para comparación.
Actividad 5: crear una métrica¶
index=curso earliest=0 latest=now
| eval status_num=tonumber(trim(status))
| stats count as total_peticiones
Resultado esperado:
- una métrica de volumen;
- consulta reproducible;
- rango temporal conocido.
Actividad 6: crear una alerta¶
index=curso earliest=-5m latest=now
| eval status_num=tonumber(trim(status))
| stats count(eval(status_num=500)) as errores_500
| where errores_500>=5
Resultado esperado:
- cero resultados si no se cumple la condición;
- una fila si se detectan cinco o más errores HTTP 500.
10. Errores que el asistente debe saber evitar¶
Durante el curso se analizarán estos errores habituales:
- buscar en un índice incorrecto;
- utilizar un rango temporal que no contiene el dataset;
- asumir que todos los campos existen;
- comparar texto como si fuera número;
- utilizar
index=*como primera consulta; - cargar varias veces el mismo archivo;
- crear duplicados;
- usar
table *; - confiar en un gráfico sin revisar los eventos;
- conceder
adminpara resolver un problema de lectura; - modificar varias capas al mismo tiempo;
- construir el dashboard antes de validar la SPL;
- probar una alerta únicamente con datos históricos;
- no documentar campos ausentes;
- no comprobar los permisos del usuario final.
11. Relación con la documentación del curso¶
Estos objetivos se desarrollan mediante los siguientes documentos:
- Presentación del curso
- Preparación del laboratorio
- Arquitectura de Splunk
- Datos del laboratorio
- Sesión 1
- Sesión 2
- Sesión 3
- Proyecto final
- Entregables
- Evaluación
- Troubleshooting
- Splunk no inicia
- Acceso web
- Datos no aparecen
- Campos incorrectos
13. Referencias oficiales¶
Splunk Enterprise¶
Arquitectura, datos e índices¶
- Introducción a la entrada de datos
- Cómo procesa Splunk los datos
- Índices
- Monitorizar archivos y directorios
- Referencia de
inputs.conf - Referencia de
indexes.conf - Referencia de
props.conf
SPL y búsqueda¶
- Search Manual
- Search Reference
- Funciones de evaluación
statstimechartevalrexfieldsummary- Modificadores temporales