【问题标题】:What is the alternate for elastic river-mongodb plugin, supported by elasticsearch 2.2.0?elasticsearch 2.2.0 支持的弹性 River-mongodb 插件的替代方案是什么?
【发布时间】:2016-05-24 06:55:09
【问题描述】:

在升级弹性搜索时需要更换 River-mongodb 插件。由于river-mongodb 已过时,因此需要您帮助找出替代方案。 我们需要索引整个 mongodb 集合。

【问题讨论】:

    标签: mongodb elasticsearch


    【解决方案1】:

    我知道有两种选择:

    1. 使用Mongo connector
    2. 在社区支持的mongodb input plugin 中使用 Logstash

    1 比 2 的优势在于它是 MongoDB 人员的官方连接器,但如果您更喜欢 Logstash,那么第二种选择可能更适合您。

    更新

    另一个是 mongolastic,它提供 MongoDB 和 Elasticsearch 之间的双向同步

    更新2

    mongo-connector 目前不受 MongoDB, Inc. 的支持。

    【讨论】:

    • 非常感谢。从社区支持的角度来看,还有其他可用的插件吗?
    • another one,但好像不是很活跃。
    • 嘿@Val。 [这个] (github.com/mongoosastic/mongoosastic) 怎么样?有什么想法吗?
    • 这确实是另一种选择,但这会在您现有的 MongoDB 代码之上添加另一个抽象层,这可能需要也可能不需要。
    • 非常感谢@Val 提供了另一种选择。非常感激。我需要在几天内最终确定方法。我目前正在验证所有选项。感谢您提供扩展帮助。
    【解决方案2】:

    在这里,我找到了另一个将 MongoDB 数据迁移到 Elasticsearch 的好选择。 一个将 mongodb 实时同步到 elasticsearch 的 go 守护进程。 它的Monstache。可在:Monstache

    在初始设置下配置和使用它。

    第 1 步:

    C:\Program Files\MongoDB\Server\4.0\bin>mongod --smallfiles --oplogSize 50 --replSet test
    

    第 2 步:

    C:\Program Files\MongoDB\Server\4.0\bin>mongo
    
    C:\Program Files\MongoDB\Server\4.0\bin>mongo
    MongoDB shell version v4.0.2
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 4.0.2
    Server has startup warnings:
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten]
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten]
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server.
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
    2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten]
    MongoDB Enterprise test:PRIMARY>
    

    第 3 步:验证复制。

    MongoDB Enterprise test:PRIMARY> rs.status();
    {
            "set" : "test",
            "date" : ISODate("2019-01-18T11:39:00.380Z"),
            "myState" : 1,
            "term" : NumberLong(2),
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "heartbeatIntervalMillis" : NumberLong(2000),
            "optimes" : {
                    "lastCommittedOpTime" : {
                            "ts" : Timestamp(1547811537, 1),
                            "t" : NumberLong(2)
                    },
                    "readConcernMajorityOpTime" : {
                            "ts" : Timestamp(1547811537, 1),
                            "t" : NumberLong(2)
                    },
                    "appliedOpTime" : {
                            "ts" : Timestamp(1547811537, 1),
                            "t" : NumberLong(2)
                    },
                    "durableOpTime" : {
                            "ts" : Timestamp(1547811537, 1),
                            "t" : NumberLong(2)
                    }
            },
            "lastStableCheckpointTimestamp" : Timestamp(1547811517, 1),
            "members" : [
                    {
                            "_id" : 0,
                            "name" : "localhost:27017",
                            "health" : 1,
                            "state" : 1,
                            "stateStr" : "PRIMARY",
                            "uptime" : 736,
                            "optime" : {
                                    "ts" : Timestamp(1547811537, 1),
                                    "t" : NumberLong(2)
                            },
                            "optimeDate" : ISODate("2019-01-18T11:38:57Z"),
                            "syncingTo" : "",
                            "syncSourceHost" : "",
                            "syncSourceId" : -1,
                            "infoMessage" : "",
                            "electionTime" : Timestamp(1547810805, 1),
                            "electionDate" : ISODate("2019-01-18T11:26:45Z"),
                            "configVersion" : 1,
                            "self" : true,
                            "lastHeartbeatMessage" : ""
                    }
            ],
            "ok" : 1,
            "operationTime" : Timestamp(1547811537, 1),
            "$clusterTime" : {
                    "clusterTime" : Timestamp(1547811537, 1),
                    "signature" : {
                            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                            "keyId" : NumberLong(0)
                    }
            }
    }
    MongoDB Enterprise test:PRIMARY>
    

    第 4 步。 下载“https://github.com/rwynn/monstache/releases”。 解压缩下载并调整您的 PATH 变量以包含您平台的文件夹路径。 转到 cmd 并输入 "monstache -v" # 4.13.1 Monstache 使用 TOML 格式进行配置。配置名为 config.toml 的迁移文件

    第 5 步。

    我的 config.toml -->

    mongo-url = "mongodb://127.0.0.1:27017/?replicaSet=test"
    elasticsearch-urls = ["http://localhost:9200"]
    
    direct-read-namespaces = [ "admin.users" ]
    
    gzip = true
    stats = true
    index-stats = true
    
    elasticsearch-max-conns = 4
    elasticsearch-max-seconds = 5
    elasticsearch-max-bytes = 8000000 
    
    dropped-collections = false
    dropped-databases = false
    
    resume = true
    resume-write-unsafe = true
    resume-name = "default"
    index-files = false
    file-highlighting = false
    verbose = true
    exit-after-direct-reads = false
    
    index-as-update=true
    index-oplog-time=true
    

    第 6 步。

    D:\15-1-19>monstache -f config.toml
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 2018-12-01
      相关资源
      最近更新 更多