Per seguire, avrai bisogno di tre nodi di calcolo. Puoi avviare nodi di calcolo su richiesta su E2E Public Cloud. Fai clic qui per saperne di più .
Come parte di questo cluster MongoDB a 3 nodi, un nodo sarà primario e gli altri due saranno nodi secondari.
Il vantaggio di questa configurazione è che ti aiuta a superare un singolo punto di errore. Quando il nodo primario si interrompe, i nodi secondari agiscono come primari; garantendo così un'elevata disponibilità.
Segui i passaggi seguenti per configurare un cluster MongoDB a 3 nodi:
Aggiorna e aggiorna tutti e 3 i nodi (ubuntu 16.04):
$ sudo apt-get update $ sudo apt-get upgrade
Installazione di 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
Imposta nome host e hostentry su tutti e 3 i nodi:
$ 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 ```````
Imposta il nome host corrispondente su tutti e 3 i nodi
Se il server proviene da E2E Cloud, rimuovere 05-hostname 02-ssh_public_key dalla directory /etc/one-context.d/
Genera un file chiave e copialo negli altri 2 nodi:
$ 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/
Aggiungi la sezione Replica su mongodb.conf su tutti e 3 i nodi:
replication: replSetName: mongo-cluster enableMajorityReadConcern: true
Avvia e controlla lo stato di mongodb su tutti e 3 i nodi:
$ sudo service mongod start $ sudo service mongod status
Assicurati che mongodb si avvii su tutti e 3 i nodi.
Modifica l'indirizzo di collegamento di MongoDB all'ip privato del server su tutti e 3 i nodi:
$ sudo vim /etc/mongod.conf # network interfaces net: port: 27017 bindIp: 172.16.1.x $ sudo service mongod restart
Accedi a Mongodb su uno qualsiasi dei nodi:
$ 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)
Nota:dopo un po' di tempo, questa macchina (da cui il comando eseguito diventerà il principale:puoi disconnetterti da MongoDB e accedere per verificare lo stesso)
Ora crea il database admin e maindatabase e l'utente per accedere al 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" }] })
Aggiungi la sezione di sicurezza su mongod.conf su tutti e 3 i nodi:
security: keyFile: /etc/mongo/mongo-keyfile clusterAuthMode: keyFile authorization: enabled
Riavvia e controlla lo stato di mongodb su tutti e 3 i nodi:
$ sudo service mongod restart $ sudo service mongod status
Accedi a Mongodb con le credenziali:
$ mongo -host 172.16.1.x admin -u admin -p'E580nOOUE6cDhQ'
Accedi a Mongodb con l'altro utente stagedatabase:
mongo 172.16.1.x:27017/maindatabase -u stage -p 4n1PdUKkyoU9wcTNW
Ora la configurazione è completa.