同步 MongoDB 与 ElasticSearch

问题描述 投票:0回答:2

我想将我的

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

因为

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

mongodb elasticsearch synchronization logstash
2个回答
4
投票

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

Logstash 官方提供了很多常用的数据源和数据汇的插件;这些插件让您只需进行一些配置即可从各种来源读取数据或将数据写入各种来源。您只需要找到 right plugininstall it,并根据您的场景进行配置。 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}"
  }
}

0
投票

我正在开发一个简单的包,使 ElasticSearch 服务器与 MongoDB 保持同步。

该软件包可通过 npm 下载和使用,可在this 链接中找到。

© www.soinside.com 2019 - 2024. All rights reserved.