美文网首页
mongo-connector带认证的同步

mongo-connector带认证的同步

作者: 小木胆 | 来源:发表于2017-04-26 10:14 被阅读0次

    上次研究了mongodb不带帐号密码同步到es。但是通常情况下,为了安全,我们使用的mongodb都是带帐号密码的。

    如果是只同步一个单击mongodb到es,其实设置很简单。

    首先配置/etc/mongodb.conf文件

    添加如下字段

    replSet=shard1
    

    然后在终端里运行

    sudo service mongodb restart
    

    完成后进入mongo-shell,创建用户名和密码:

    use admin
    db.addUser(username, password)
    

    再修改一次/etc/mongodb.conf文件,设置为需要帐号密码登录模式:

    auth = true
    

    这个时候,单机的副本集mongo就创建好了。然后按照之前的方法搞定mongo-connector, 当然这次要带上帐号和密码:

    mongo-connector -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager --admin-username username --password password
    

    如果是有多个mongo开启副本集模式,在配置mongo这一块稍微复杂点。这里先在/var/lib创建文件夹mongo_cluster.

    在mongo_cluster下建立文件夹mongo1和mongo2.

    在mongo_cluster下建立一个集群的认证文件keyfile。里面填入集群认证密码。

    接下来的一步很关键,需要将keyfile设置为只读模式,否则会报错:

    permissions on /var/lib/mongo_cluster/keyfile are too open
    

    设置命令为:

    chmod 600 keyfile.
    

    完成后执行:

    mongod --dbpath /var/lib/mongo_cluster/mongo1 --logpath /var/lib/mongo_cluster/mongo1/log.log --replSet shard1 --port 10001 --bind_ip 127.0.0.1 --oplogSize 64 --keyFile /var/lib/mongo_cluster/keyfile
    

    然后进mongo-shell设置帐号和密码,方法跟单击副本集一直。

    完成后再执行:

    mongod --dbpath /var/lib/mongo_cluster/mongo1 --logpath /var/lib/mongo_cluster/mongo1/log.log --replSet shard1 --port 10001 --bind_ip 127.0.0.1 --oplogSize 64 --keyFile /var/lib/mongo_cluster/keyfile --auth --fork
    mongod --dbpath /var/lib/mongo_cluster/mongo2 --logpath /var/lib/mongo_cluster/mongo2/log.log --replSet shard1 --port 10002 --bind_ip 127.0.0.1 --oplogSize 64 --keyFile /var/lib/mongo_cluster/keyfile --auth --fork
    

    让mongo2跟mongo1同步即可。

    这个时候再运行mongo-connector, 连接到任意一台mongo上。就能开始同步。

    相关文章

      网友评论

          本文标题:mongo-connector带认证的同步

          本文链接:https://www.haomeiwen.com/subject/bbcizttx.html