Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Conectando o Splunk ao ClickHouse

Suportado pelo ClickHouse

O Splunk é uma plataforma popular para segurança e observabilidade. Também é um poderoso mecanismo de busca e criação de dashboards. Há centenas de aplicativos do Splunk disponíveis para atender a diferentes casos de uso.

Para o ClickHouse especificamente, usamos o Splunk DB Connect App, que oferece uma integração simples com o ClickHouse JDBC driver de alto desempenho para consultar tabelas diretamente no ClickHouse.

O caso de uso ideal para essa integração é quando você usa o ClickHouse com grandes fontes de dados, como dados binários de NetFlow, Avro ou Protobuf, DNS, logs de fluxo de VPC e outros logs do OTel, que podem ser compartilhados com sua equipe no Splunk para pesquisa e criação de dashboards. Com essa abordagem, os dados não são ingeridos na camada de índice do Splunk; em vez disso, são consultados diretamente no ClickHouse, de forma semelhante a outras integrações de visualização, como Metabase ou Superset.

Objetivo​

Neste guia, usaremos o ClickHouse JDBC driver para conectar o ClickHouse ao Splunk. Vamos instalar uma versão local do Splunk Enterprise, mas sem indexar nenhum dado. Em vez disso, usaremos as funções de busca por meio do mecanismo de consulta do DB Connect.

Com este guia, você poderá criar um dashboard conectado ao ClickHouse semelhante a este:

Dashboard do Splunk mostrando visualizações de dados de táxis de NYC

Pré-requisitos

Antes de começar, você precisará de:

  • Splunk Enterprise para usar as funções do search head
  • requisitos do Java Runtime Environment (JRE) instalados no seu sistema operacional ou contêiner
  • Splunk DB Connect
  • acesso de Admin ou SSH à instância do sistema operacional do Splunk Enterprise
  • detalhes de conexão do ClickHouse (veja aqui se você estiver usando o ClickHouse Cloud)

Instale e configure o DB Connect no Splunk Enterprise

Primeiro, você precisa instalar o Java Runtime Environment na sua instância do Splunk Enterprise. Se estiver usando Docker, pode usar o comando microdnf install java-11-openjdk.

Anote o caminho de java_home: java -XshowSettings:properties -version.

Verifique se o DB Connect App está instalado no Splunk Enterprise. Você pode encontrá-lo na seção Apps da interface web do Splunk:

  • Faça login no Splunk Web e acesse Apps > Find More Apps
  • Use a caixa de busca para localizar o DB Connect
  • Clique no botão verde "Install" ao lado de Splunk DB Connect
  • Clique em "Restart Splunk"

Se estiver com problemas para instalar o DB Connect App, consulte este link para obter instruções adicionais.

Depois de confirmar que o DB Connect App está instalado, adicione o caminho java_home ao DB Connect App em Configuration -> Settings e clique em save e depois em reset.

Página de configurações do Splunk DB Connect mostrando a configuração do Java Home

Configure o JDBC para o ClickHouse

Baixe o arquivo JAR do ClickHouse JDBC driver e copie-o para a pasta DB Connect Drivers em:

$SPLUNK_HOME/etc/apps/splunk_app_db_connect/drivers

Para garantir que todas as dependências necessárias estejam disponíveis para o DB Connect App, baixe uma das seguintes opções:

- clickhouse-jdbc-<VERSION>-shaded-all.jar (if VERSION < 0.9.0)
- clickhouse-jdbc-<VERSION>-all-dependencies.jar (if VERSION >= 0.9.0)

Em seguida, você deve editar a configuração dos tipos de conexão em $SPLUNK_HOME/etc/apps/splunk_app_db_connect/local/db_connection_types.conf para adicionar os detalhes da classe do ClickHouse JDBC driver. Adicione a seguinte seção 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 o Splunk usando $SPLUNK_HOME/bin/splunk restart.

Volte ao DB Connect App e acesse Configuration > Settings > Drivers. Você deverá ver um ícone de confirmação verde ao lado de ClickHouse:

Página de drivers do Splunk DB Connect mostrando o driver do ClickHouse instalado com sucesso

Conecte a busca do Splunk ao ClickHouse

Navegue até DB Connect App Configuration -> Databases -> Identities e crie uma identidade para o seu ClickHouse.

Crie uma nova conexão com o ClickHouse em Configuration -> Databases -> Connections e selecione "New Connection".

Botão de nova conexão do Splunk DB Connect

Adicione os detalhes do host do ClickHouse e verifique se "Enable SSL" está marcado:

Página de configuração de conexão do Splunk para ClickHouse

Depois de salvar a conexão, você terá conectado com sucesso o Splunk ao ClickHouse!

Execute uma consulta SQL

Agora vamos executar uma consulta SQL para testar se tudo está funcionando.

Selecione os detalhes da conexão no SQL Explorer, na seção DataLab do DB Connect App. Estamos usando a tabela trips nesta demonstração:

SQL Explorer do Splunk selecionando a conexão com o ClickHouse

Execute uma consulta SQL na tabela trips que retorne a contagem de todos os registros da tabela:

Execução de consulta SQL no Splunk mostrando a contagem de registros na tabela trips

Se a consulta for bem-sucedida, você verá os resultados.

Criar um dashboard

Vamos criar um dashboard que usa uma combinação de SQL com a poderosa Splunk Processing Language (SPL).

Antes de prosseguir, primeiro você precisa desativar as proteções do DPL.

Execute a seguinte consulta, que mostra os 10 bairros com maior frequência de coletas:

dbxquery query="SELECT pickup_ntaname, count(*) AS count
FROM default.trips GROUP BY pickup_ntaname
ORDER BY count DESC LIMIT 10;" connection="chc"

Selecione a aba de visualização para ver o gráfico de colunas criado:

Visualização do gráfico de colunas do Splunk mostrando os 10 principais bairros de embarque

Agora, vamos criar um dashboard clicando em Save As > Save to a Dashboard.

Vamos adicionar outra consulta que mostra a tarifa média com base no número de passageiros.

dbxquery query="SELECT passenger_count,avg(total_amount)
FROM default.trips GROUP BY passenger_count;" connection="chc"

Desta vez, vamos criar uma visualização em gráfico de barras e salvá-la no dashboard anterior.

Gráfico de barras no Splunk mostrando a tarifa média por número de passageiros

Por fim, vamos adicionar mais uma consulta que mostra a correlação entre o número de passageiros e a distância da corrida:

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"

Nosso dashboard final deve ficar assim:

Dashboard final do Splunk com várias visualizações de dados de táxi de Nova York

Dados de séries temporais

O Splunk tem centenas de funções integradas que os dashboards podem usar para visualizar e apresentar dados de séries temporais. Este exemplo combina SQL + SPL para criar uma consulta que funcione com dados de séries temporais no 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:

Saiba mais

Se quiser saber mais sobre o Splunk DB Connect e como criar dashboards, consulte a documentação do Splunk.

Navigation