Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Conectar Splunk con ClickHouse

Compatible con ClickHouse

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:

Dashboard de Splunk que muestra visualizaciones de datos de taxis de Nueva York

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.

Página de configuración de Splunk DB Connect que muestra la configuración de Java Home

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:

Página de drivers de Splunk DB Connect que muestra el driver de ClickHouse instalado correctamente

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".

Botón de nueva conexión de Splunk DB Connect

Agregue los datos del host de ClickHouse y asegúrese de que "Enable SSL" esté marcado:

Página de configuración de la conexión de Splunk para ClickHouse

Después de guardar la conexión, habrá conectado correctamente ClickHouse a Splunk.

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:

SQL Explorer de Splunk seleccionando la conexión a ClickHouse

Ejecuta una consulta SQL en la tabla trips que devuelva el recuento de todos los registros de la tabla:

Ejecución de una consulta SQL en Splunk que muestra el recuento de registros en la tabla trips

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:

Visualización del gráfico de columnas de Splunk que muestra los 10 principales barrios de recogida

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.

Gráfico de barras de Splunk que muestra la tarifa media por número de pasajeros

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í:

Dashboard final de Splunk con varias visualizaciones de datos de taxis de NYC

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.

Navigation