Saltar al contenido principal
¿Quieres almacenar los logs de auditoría de ClickHouse en Splunk? Sigue la guía “Almacenar los logs de auditoría de ClickHouse Cloud en Splunk”.
Splunk es una tecnología popular para la seguridad y la observabilidad. También es un potente motor de búsqueda y creación de dashboards. Hay cientos de aplicaciones de Splunk disponibles para distintos casos de uso. En el caso concreto de ClickHouse, utilizamos la Splunk DB Connect App, que ofrece una integración sencilla con el driver JDBC de ClickHouse de alto rendimiento para consultar tablas de ClickHouse directamente. El caso de uso ideal para esta integración es cuando utilizas ClickHouse con grandes fuentes de datos como NetFlow, datos binarios Avro o Protobuf, DNS, logs de flujo de VPC y otros logs de OTel que pueden compartirse con tu equipo en Splunk para realizar búsquedas y crear dashboards. Con este enfoque, los datos no se ingieren en la capa de índices de Splunk, sino que se consultan directamente desde ClickHouse, de forma similar a otras integraciones de visualización como Metabase o Superset.

Objetivo​

En esta guía, usaremos el driver JDBC de ClickHouse para conectar ClickHouse con Splunk. Instalaremos una versión local de Splunk Enterprise, pero no indexaremos datos. En su lugar, usaremos las funciones de búsqueda a través del motor de consultas de DB Connect. Con esta guía, podrá crear un dashboard conectado a ClickHouse similar a este:
Esta guía utiliza el conjunto de datos New York City Taxi. Puede usar muchos otros conjuntos de datos de nuestra documentación.

Prerrequisitos

Antes de comenzar, necesitará lo siguiente:
  • Splunk Enterprise para usar las funciones del search head
  • Los requisitos de Java Runtime Environment (JRE) instalados en su sistema operativo o contenedor
  • Splunk DB Connect
  • Acceso Admin o SSH a la instancia del sistema operativo de Splunk Enterprise
  • Los datos de conexión de ClickHouse (consulte aquí si usa ClickHouse Cloud)

Instalar y configurar DB Connect en Splunk Enterprise

Primero debe instalar el entorno de ejecución de Java en su instancia de Splunk Enterprise. Si usa Docker, puede utilizar el comando microdnf install java-11-openjdk. Anote la ruta de java_home: java -XshowSettings:properties -version. Asegúrese de que la DB Connect App esté instalada en Splunk Enterprise. Puede encontrarla en la sección Apps de la UI web de Splunk:
  • Inicie sesión en Splunk Web y vaya a Apps > Find More Apps
  • Use el cuadro de búsqueda para encontrar DB Connect
  • Haga clic en el botón verde “Install” junto a Splunk DB Connect
  • Haga clic en “Restart Splunk”
Si tiene problemas para instalar la DB Connect App, consulte este enlace para obtener instrucciones adicionales. Una vez que haya verificado que la DB Connect App está instalada, añada la ruta de java_home a la DB Connect App en Configuration -> Settings y haga clic en save; luego, en reset.

Configurar JDBC para ClickHouse

Descargue el archivo JAR del driver JDBC de ClickHouse y cópielo en la carpeta DB Connect Drivers ubicada en:
$SPLUNK_HOME/etc/apps/splunk_app_db_connect/drivers
Para garantizar que la DB Connect App tenga disponibles todas las dependencias necesarias, descargue una de las siguientes opciones:
- clickhouse-jdbc-<VERSION>-shaded-all.jar (if VERSION < 0.9.0)
- clickhouse-jdbc-<VERSION>-all-dependencies.jar (if VERSION >= 0.9.0)
Luego, debe editar la configuración de los tipos de conexión en $SPLUNK_HOME/etc/apps/splunk_app_db_connect/local/db_connection_types.conf para añadir los detalles de la clase del driver JDBC de ClickHouse. Añada la siguiente sección a db_connection_types.conf:
[ClickHouse]
displayName = ClickHouse
serviceClass = com.splunk.dbx2.DefaultDBX2JDBC
jdbcUrlFormat = jdbc:ch://<host>:<port>/<database>
jdbcUrlSSLFormat = jdbc:ch://<host>:<port>/<database>?ssl=true
jdbcDriverClass = com.clickhouse.jdbc.ClickHouseDriver
ui_default_catalog = $database$
Reinicie Splunk con $SPLUNK_HOME/bin/splunk restart. Vuelva a la DB Connect App y vaya a Configuration > Settings > Drivers. Debería ver una marca de verificación verde junto a ClickHouse:

Conectar la búsqueda de Splunk a ClickHouse

Vaya a DB Connect App Configuration -> Databases -> Identities y cree una identidad para su instancia de ClickHouse. Cree una nueva conexión a ClickHouse desde Configuration -> Databases -> Connections y seleccione “New Connection”.
Agregue los datos del host de ClickHouse y asegúrese de que “Enable SSL” esté marcado: Después de guardar la conexión, habrá conectado correctamente ClickHouse a Splunk.
Si recibe un error, asegúrese de haber agregado la dirección IP de su instancia de Splunk a la IP Access List de ClickHouse Cloud. Consulte la documentación para obtener más información.

Ejecuta una consulta SQL

Ahora ejecutaremos una consulta SQL para comprobar que todo funciona. Selecciona los datos de tu conexión en SQL Explorer desde la sección DataLab de la DB Connect App. Estamos usando la tabla trips para esta demostración: Ejecuta una consulta SQL en la tabla trips que devuelva el recuento de todos los registros de la tabla: Si la consulta se ejecuta correctamente, deberías ver los resultados.

Crear un dashboard

Vamos a crear un dashboard que aproveche una combinación de SQL y el potente Splunk Processing Language (SPL). Antes de continuar, primero debes desactivar las salvaguardas de SPL. Ejecuta la siguiente consulta, que muestra los 10 barrios con más recogidas:
dbxquery query="SELECT pickup_ntaname, count(*) AS count
FROM default.trips GROUP BY pickup_ntaname
ORDER BY count DESC LIMIT 10;" connection="chc"
Selecciona la pestaña de visualización para ver el gráfico de columnas creado: Ahora crearemos un dashboard haciendo clic en Save As > Save to a Dashboard. Agreguemos otra consulta que muestre la tarifa media en función del número de pasajeros.
dbxquery query="SELECT passenger_count,avg(total_amount)
FROM default.trips GROUP BY passenger_count;" connection="chc"
Esta vez, creemos una visualización de tipo gráfico de barras y guardémosla en el dashboard anterior. Por último, agreguemos una consulta más que muestre la correlación entre el número de pasajeros y la distancia del viaje:
dbxquery query="SELECT passenger_count, toYear(pickup_datetime) AS year,
round(trip_distance) AS distance, count(* FROM default.trips)
GROUP BY passenger_count, year, distance
ORDER BY year, count(*) DESC; " connection="chc"
Nuestro dashboard final debería verse así:

Datos de series temporales

Splunk tiene cientos de funciones integradas que los dashboards pueden usar para visualizar y presentar datos de series temporales. Este ejemplo combina SQL + SPL para crear una consulta que pueda trabajar con datos de series temporales en Splunk
dbxquery query="SELECT time, orig_h, duration
FROM "demo"."conn" WHERE time >= now() - interval 1 HOURS" connection="chc"
| eval time = strptime(time, "%Y-%m-%d %H:%M:%S.%3Q")
| eval _time=time
| timechart avg(duration) as duration by orig_h
| eval duration=round(duration/60)
| sort - duration:

Más información

Si desea obtener más información sobre Splunk DB Connect y cómo crear dashboards, visite la documentación de Splunk.
Última modificación el 10 de junio de 2026