Extraindo informações do Oracle Database com logstash
Dica publicada em Linux / Miscelânea
Extraindo informações do Oracle Database com logstash
Vocês sabiam que é possível criamos um extrator com logstash para buscar informações em uma base de dados Oracle e posteriormente gravar o resultado no elasticsearch? Nesta dica falaremos exatamente como realizar essa operação.
Primeiramente vamos precisar realizar o download do driver JDBC para conectarmos ao Oracle, para isso acesso o site abaixo e faça o download do arquivo "ojdbc8.jar".
Obs.: para realizar o download do arquivo será necessário possuir uma conta junto à Oracle, caso não possua, você poderá criá-la.
De posse do arquivo, realize a transferência do mesmo para a máquina onde o logstash encontra-se instalado e em execução para o diretório de sua preferência.
Feito isso vamos criar um arquivo de configuração para realizar a extração dos dados:
Fonte: Jdbc input plugin | Logstash Reference [7.8] | Elastic
Espero que essa dica seja útil para vocês.
[]'s leoberbert
Primeiramente vamos precisar realizar o download do driver JDBC para conectarmos ao Oracle, para isso acesso o site abaixo e faça o download do arquivo "ojdbc8.jar".
Obs.: para realizar o download do arquivo será necessário possuir uma conta junto à Oracle, caso não possua, você poderá criá-la.
De posse do arquivo, realize a transferência do mesmo para a máquina onde o logstash encontra-se instalado e em execução para o diretório de sua preferência.
Feito isso vamos criar um arquivo de configuração para realizar a extração dos dados:
input {
jdbc {
# Vou adicionar uma tag para identificar meu extrator
tags => ["logstash-meu-extrator"]
# String de conexão do meu banco de dados
jdbc_connection_string => "jdbc:oracle:thin:@server01:1525/MEUBANCO"
# Usuário do meu banco de dados
jdbc_user => "meu_usuario"
jdbc_password => "minha_senha"
# Variável que faz a validação da minha conexão
jdbc_validate_connection => true
# Localização do meu driver que foi que foi baixado anteriormente, substitua pelo seu diretório
jdbc_driver_library => "${HOME}/logstash/config/conf.d/drivers/ojdbc8.jar"
# O nome do Driver, que neste caso não será necessário alterá-lo
jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
# Limita o resultado da consulta à 50 mil registros.
jdbc_page_size => "50000"
# Query a ser executada
statement => "
SELECT
COLUNA1,
COLUNA2,
COLUNA3
FROM MINHA_TABELA
where MEU_CAMPO_DATA >= SYSDATE - 1
"
# Aqui é definido de quanto em quanto tempo minha consulta será executada, neste caso a cada 5 minutos. Note que é utilizado o padrão crontab.
schedule => "*/5 * * * *"
# Neste passo realizaremos o envio das informações que foram extraídas acima para o elasticsearch, onde será criado o índice "logstash-meu-extrator-2020.06".
output {
if "logstash-meu-extrator" in [tags] {
elasticsearch {
hosts => "localhost"
index => "logstash-meu-extrator-%{+YYYY.MM}"
}
}
}
Fonte: Jdbc input plugin | Logstash Reference [7.8] | Elastic
Espero que essa dica seja útil para vocês.
[]'s leoberbert