我想将MongoDB
数据同步到ElasticSearch
,我读了很多关于Elasticsearch
River插件和mongo连接器的文章,但是不推荐使用mongo 4和elasticsearch 7!
作为logstash
专有软件,我想使用它来同步两者…任何人都知道如何做到这一点?
您可以将MongoDB和Elasticsearch与Logstash同步;实际上,同步是Logstash的主要应用之一。安装Logstash之后,您要做的就是为您的用例指定一个 管道
:将一个或多个输入源(在您的情况下为MongoDB)和一个或多个输出接收器(在您的情况下为Elasticsearch)作为配置文件放置(示例在Logstash的
管道 目录中;Logstash负责其余的工作。
Logstash正式提供了许多常用数据源和接收器的插件。这些插件使您可以通过几种配置从各种来源读取数据或将数据写入各种来源。您只需要找到合适的 插件,进行安装,然后为您的方案配置它即可。Logstash有一个用于Elasticsearch的官方输出插件,其配置非常直观。但是,Logstash不为MongoDB提供任何输入插件。您需要找到第三方。这个似乎很有希望。
最后,您的管道可能如下所示:
input {
mongodb {
uri => 'mongodb://10.0.0.30/my-logs?ssl=true'
placeholder_db_dir => '/opt/logstash-mongodb/'
placeholder_db_name => 'logstash_sqlite.db'
collection => 'events_'
batch_size => 5000
}
}
output {
stdout {
codec => rubydebug #outputs the same thing as elasticsearch in stdout to facilitate debugging
}
elasticsearch {
hosts => "localhost:9200"
index => "target_index"
document_type => "document_type"
document_id => "%{id}"
}
}
问题内容: 我正在一个具有以下设置的项目: 我有一个Amazon EC2集群,其中有一个主服务器,3个配置服务器和3个分片服务器。 Master运行着一个node.js应用程序,它基本上是一个使用Express.js模块编写的REST API。 我正在使用mongodb作为数据库。主服务器正在运行“ mongos”服务,该服务将数据分片到3个分片服务器中。这些服务器上运行着“ mongod”服务。
顺便说一句:当我将名为“insert”的属性添加到Goal或从Goal中删除elasticsearch注释时,该错误就会消失。 GoalRepository是:
input { mongodb { uri => 'mongodb://web:l8ka65##1@10.112.5.11:32222/who_aa_cen' placeholder_db_dir => "/tmp/logstash-mongodb/who_log" placeholder_db_name => "who_aa_cen" collection
第二个问题:当elastic和mongo都有@Documnet注释时,如何注释模型类?现在我得到一个错误,认为它与这个问题有关:“找不到类的id属性” 最后,我将感谢任何关于最佳实践和更干净的编码的指导。 Spring Boot应用程序: Kafka消费者服务: 弹性配置: Kafka 配置:
我按照http://elasticsearch-users.115913.n3.nabble.com/ElasticSearch-and-Mongo-DB-td4033358.html链接使用mongoDB river集成elasticsearch和mongoDB。每个组件的版本是: ubuntu 12.04 64位 Mongodb在一台服务器上独立运行,但根据此链接http://loosexam
问题内容: 我正在考虑使用日常脚本来执行以下操作,以解决ES服务器上更新存在问题的任何情况(我还没有高可用性设置,即使如此,它仍然可能是在数据库和ES之间复制数据的情况下的良好做法)。在把这个脚本放在一起之前,我想我会检查一下是否要以正确的方式进行操作,以及是否应该使用任何库或技术。 该脚本将简单地从数据库中检索所有ID,并从ElasticSearch中检索所有ID,其中(当前时间的快照,因为它是