将 MongoDB 与 ElasticSearch 同步

Mar*_*usa 10 synchronization mongodb elasticsearch logstash

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

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

Far*_*sim 4

您可以将 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}"
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意该输入插件:_“这是为解析写入 mongodb 的日志而设计的。这意味着它可能不会重新解析已更改且已解析的数据库条目。”_ 因此,仅在非常有限的情况下有用用例。 (3认同)