mongodb - 将 MongoDB 与 ElasticSearch 同步

标签 mongodb elasticsearch synchronization logstash

我想同步我的 MongoDB数据到 ElasticSearch ,我读了很多关于 elasticsearch river 插件和 mongo 连接器的帖子,但它们都被 mongo 4 和 elasticsearch 7 弃用了!

logstash是一种专有软件,我想用它来同步两者...有人知道如何做到吗?

最佳答案

您可以将 MongoDB 和 Elasticsearch 与 Logstash 同步;事实上,同步是 Logstash 的主要应用之一。后 installing Logstash ,您需要做的就是为您的用例指定一个管道:一个或多个输入源(在您的情况下为 MongoDB)和一个或多个输出接收器(在您的情况下为 Elasticsearch),作为配置文件(示例如下)放在里面Logstash 的管道目录; Logstash 负责其余的工作。

Logstash官方提供了很多常用的数据源和sink的插件;这些插件使您只需进行一些配置即可从各种来源读取数据并将数据写入各种来源。您只需要找到 right plugin , install it ,并为您的场景配置它。 Logstash 有一个官方输出插件 Elasticsearch它的配置非常直观。然而,Logstash 没有为 MongoDB 提供任何输入插件。您需要找到第三方; this one似乎很有希望。

最后,您的管道可能如下所示:

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

关于mongodb - 将 MongoDB 与 ElasticSearch 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56628675/

相关文章:

java - MongoDB 树查找后代 Java

node.js - 从 Gridfs 读取 block 并转换为缓冲区

MongoDB 我们如何获取所有当前打开的游标和它们正在运行的查询?

elasticsearch - 在 ElasticSearch 中仅聚合匹配的嵌套对象值

java - 对一个生产者 - 许多消费者应用程序使用 protected block

python - MongoDB 今日汇总记录

json - logstash json过滤器未解析。尽管json正确,但获取_jsonparsefailure

java - Logstash stdout - 写入文件

Git:在没有推送权限的情况下跨分支团队合作

java - Windows 中 Java 应用程序和 C++ 应用程序之间的同步