Abyste mohli pokračovat, budete potřebovat tři výpočetní uzly. Na E2E Public Cloud můžete spustit výpočetní uzly na vyžádání. Klikněte sem dozvědět se více .
V rámci tohoto 3 uzlu MongoDB Cluster bude jeden uzel primární a další dva budou sekundární uzly.
Výhodou tohoto nastavení je, že vám pomůže překonat jediný bod selhání. Když primární uzel klesne, sekundární uzly fungují jako primární; tím je zajištěna vysoká dostupnost.
Chcete-li nastavit cluster MongoDB se 3 uzly, postupujte podle následujících kroků:
Aktualizujte a upgradujte všechny 3 uzly (ubuntu 16.04):
$ sudo apt-get update $ sudo apt-get upgrade
Instalace MongoDB:
$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 $echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list $sudo apt-get update $sudo apt-get install -y mongodb-org=4.0.10 mongodb-org-server=4.0.10 mongodb-org-shell=4.0.10 mongodb-org-mongos=4.0.10 mongodb-org-tools=4.0.10
Nastavte název hostitele a hostitelskou položku na všech 3 uzlech:
$ sudo vim /etc/hosts ````````` 172.16.1.x test-mongo-1 172.16.2.x test-mongo-2 172.16.3.x test-mongo-3 ```````` $hostname test-mongo1 $ sudo vim /etc/hostname `````` test-mongo-1 ```````
Nastavte odpovídající název hostitele na všech 3 uzlech
Pokud je server z E2E Cloud, odeberte 05-hostname 02-ssh_public_key z adresáře /etc/one-context.d/
Vygenerujte soubor klíče a zkopírujte jej do dalších 2 uzlů:
$ sudo cd /etc/ $ sudo mkdir mongo $ cd $ sudo openssl rand -base64 756 > /etc/mongo/mongo-keyfile $ sudo cd /etc/mongo/ $ sudo chmod 400 mongo-keyfile $ sudo chown mongodb:mongodb /etc/mongo -R $ cd $ sudo rsync -avrP /etc/mongo [email protected]:/etc/ $ sudo rsync -avrP /etc/mongo [email protected]:/etc/
Přidat sekci Replikace na mongodb.conf na všechny 3 uzly:
replication: replSetName: mongo-cluster enableMajorityReadConcern: true
Spusťte a zkontrolujte stav mongodb na všech 3 uzlech:
$ sudo service mongod start $ sudo service mongod status
Ujistěte se, že mongodb začíná na všech 3 uzlech.
Změňte adresu vazby MongoDB na soukromou IP serveru ve všech 3 uzlech:
$ sudo vim /etc/mongod.conf # network interfaces net: port: 27017 bindIp: 172.16.1.x $ sudo service mongod restart
Přihlaste se do Mongodb na libovolném uzlu:
$ mongo -host 172.16.1.x $ config = { _id : "mongo-cluster", members : [ {_id : 0, host : "test-mongo-1:27017"}, {_id : 1, host : "test-mongo-2:27017"}, {_id : 2, host : "test-mongo-3:27017"}, ] } $ rs.initiate(config)
Poznámka:Po nějaké době se tento stroj (odkud se provedený příkaz stane primárním – můžete se odhlásit z MongoDB a přihlásit se a zkontrolovat totéž)
Nyní vytvořte admin &maindatabase DB a uživatele pro přístup k DB:
$ use admin $ db.createUser({ user: "admin", pwd: "E580nOOUE6cDhQ", roles: [{ role: "root", db: "admin" }] }) $ stagedatabase $ db.createUser({ user: "stage", pwd: "4n1PdUKkyoU9wcTNW", roles: [{ role: "dbOwner", db: "maindatabase" }] })
Přidejte sekci zabezpečení na mongod.conf na všechny 3 uzly:
security: keyFile: /etc/mongo/mongo-keyfile clusterAuthMode: keyFile authorization: enabled
Restartujte a zkontrolujte stav mongodb na všech 3 uzlech:
$ sudo service mongod restart $ sudo service mongod status
Přihlaste se do Mongodb pomocí přihlašovacích údajů:
$ mongo -host 172.16.1.x admin -u admin -p'E580nOOUE6cDhQ'
Přihlaste se do Mongodb pomocí jiné uživatelské stagedatabase:
mongo 172.16.1.x:27017/maindatabase -u stage -p 4n1PdUKkyoU9wcTNW
Nyní je nastavení dokončeno.