上次研究了mongodb不帶帳號密碼同步到es。但是通常情況下翘簇,為了安全撬码,我們使用的mongodb都是帶帳號密碼的。
如果是只同步一個單擊mongodb到es缘揪,其實(shí)設(shè)置很簡單。
首先配置/etc/mongodb.conf文件
添加如下字段
replSet=shard1
然后在終端里運(yùn)行
sudo service mongodb restart
完成后進(jìn)入mongo-shell义桂,創(chuàng)建用戶名和密碼:
use admin
db.addUser(username, password)
再修改一次/etc/mongodb.conf文件找筝,設(shè)置為需要帳號密碼登錄模式:
auth = true
這個時候,單機(jī)的副本集mongo就創(chuàng)建好了慷吊。然后按照之前的方法搞定mongo-connector, 當(dāng)然這次要帶上帳號和密碼:
mongo-connector -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager --admin-username username --password password
如果是有多個mongo開啟副本集模式袖裕,在配置mongo這一塊稍微復(fù)雜點(diǎn)。這里先在/var/lib創(chuàng)建文件夾mongo_cluster.
在mongo_cluster下建立文件夾mongo1和mongo2.
在mongo_cluster下建立一個集群的認(rèn)證文件keyfile溉瓶。里面填入集群認(rèn)證密碼急鳄。
接下來的一步很關(guān)鍵谤民,需要將keyfile設(shè)置為只讀模式,否則會報錯:
permissions on /var/lib/mongo_cluster/keyfile are too open
設(shè)置命令為:
chmod 600 keyfile.
完成后執(zhí)行:
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
然后進(jìn)mongo-shell設(shè)置帳號和密碼疾宏,方法跟單擊副本集一直张足。
完成后再執(zhí)行:
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同步即可。
這個時候再運(yùn)行mongo-connector, 連接到任意一臺mongo上坎藐。就能開始同步为牍。