Por gentileza me tire uma dúvida de arquitetura do Elastic.
Quero alimentar uma base de dados na Elastic Cloud, estes dsdos eu consigo enviar via rest em Json ou conectandoba um BD e fazendo inserts de banco de dados.
Qual melhor caminho a seguir para eu alimentar minha conta da cloud com estes dados?
Entendo que para eu usar o Kibana tenho que ter o Elasticsearch sendo alimentado por alguma fonte de dados.
E é esta fonte de dados que ainda não entendi, pois vi que existe Logstash e o Beats.
Você pode me esclarecer esta dúvida por favor?
Obrigado.
Certamente! O Elasticsearch é todo exposto via api rest. Veja a documentação sobre documentos Documents API. Todavia eu recomendo que você estude um poucos os conceitos por de trás do Elasticsearch antes de se aventurar nas APIs: What is Elasticsearch?
Olá Thiago!
Criei uma conta no Elastic Cloud e já criei um cluster.
No post "Como manter o Elasticsearch sincronizado com um banco de dados relacional usando o Logstash e o JDBC" que você me enviou acima não me atende pois tenho um banco Mysql na nuvem e também quero alimentar o Logstash na nuvem, pelo que entendi este post seria para quem usa instalado.
Pergunta: é possível alimentar um pipeline do Logstash na nuvem com dados de um banco de dados Mysql na nuvem? Tenho o endpoint do banco, usuário e senha.
O artigo que eu lhe passei ensina a configurar o Logstash independente da onde esteja instalado. Sendo instalado localmente ou na nuvem, desde que o Logstash tenha acesso ao MySQL, as instruções passadas no artigo ensinam como configurar qualquer tipo de instalação de Logstash (cloud, on-prem, etc) para que ele passe a sincronizar bases de dados com o Elasticsearch.
Se desejas rodar o Logstash em uma cloud/nuvem, instalei-o lá e configure-o como indicado no artigo.
Não necessariamente, aliás, isso nem é recomendado. O Logstash pode acessar a base remotamente e o recomendado é que rode em um servidor dedicado a ele. (Não sei se foi bem isso que você perguntou, mas o java e jdbc precisam estar no mesmo servidor que o Logstash)
Certamente. Você não é obrigado a usar Logstash ou nenhum beats. No final das contas, o que estes componentes fazem é acessar a api rest do Elasticsearch, então você está livre para usar o que quiser. Todavia se utilizar algo diferente para alimentar o Elasticsearch, não vai conseguir ter muita ajuda nossa ou da comunidade Elastic (por se tratar de algo desconhecido por aqui). Minha recomendação é que tente resolver com Logstash.
Infelizmente não. A Elastic Cloud não roda Logstash (é apenas para Elasticsearch e Kibana). Você precisaria executar o Logstash em outro provedor.
Não. Tanto Java quanto o driver JDBC precisam ser instalados a parte. Siga as instruções na documentação do Logstash para mais informações sobre o Java. Já o JDBC, você precisa obter o driver no site do fornecedor (no caso, no site do MySQL).
Este seria o path do driver JDBC assim que você baixar do site do MySQL. Você precisar apontar o path para um arquivo de extensão jar obtido do site.
Está sendo esclarecedor.
Então vou partir para alimentar o Elasticsearch diretamente pela APi Rest, vou executar chamadas Curl pelo backend para carregar os dados em json.
Por enquanto vou estudar a API, caso tenha alguma dúvida posso lhe acionar?
Certamente funciona! Mas recomendo fortemente que use o Logstash pois é robusto, muito bem testado e tem uma comunidade muito bem estabelecida.
Para qualquer dúvida, sempre poderá abrir um tópico aqui no fórum. Não há necessidade de me marcar diretamente no tópico pois outros engenheiros também respondem aqui.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.