フォローするには、3つの計算ノードが必要です。 E2Eパブリッククラウドでオンデマンドでコンピューティングノードを起動できます。 ここをクリック もっと知る 。
この3ノードのMongoDBクラスターの一部として、1つのノードがプライマリノードになり、他の2つのノードがセカンダリノードになります。
この設定の利点は、単一障害点を克服するのに役立つことです。プライマリノードがダウンすると、セカンダリノードがプライマリとして機能します。したがって、高可用性を確保します。
以下の手順に従って、3ノードのMongoDBクラスターをセットアップします。
3つのノードすべてを更新およびアップグレードします(ubuntu 16.04):
$ sudo apt-get update $ sudo apt-get upgrade
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
3つのノードすべてにホスト名とhostentryを設定します:
$ 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 ```````
3つのノードすべてに対応するホスト名を設定します
サーバーがE2ECloudからのものである場合は、05-hostname02-ssh_public_keyを/etc/one-context.d/ディレクトリから削除します
キーファイルを生成し、それを他の2つのノードにコピーします:
$ 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/
3つのノードすべてのmongodb.confにレプリケーションセクションを追加します:
replication: replSetName: mongo-cluster enableMajorityReadConcern: true
3つのノードすべてでmongodbのステータスを開始して確認します:
$ sudo service mongod start $ sudo service mongod status
mongodbが3つのノードすべてで開始することを確認してください。
MongoDBバインドアドレスを3つのノードすべてでサーバーのプライベートIPに変更します:
$ sudo vim /etc/mongod.conf # network interfaces net: port: 27017 bindIp: 172.16.1.x $ sudo service mongod restart
いずれかのノードでMongodbにログインします:
$ 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)
注:しばらくすると、このマシン(実行されたコマンドがプライマリになります。MongoDBからログアウトしてログインし、同じことを確認できます)
次に、管理者とメインデータベースのDBと、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" }] })
3つのノードすべてのmongod.confにセキュリティセクションを追加します:
security: keyFile: /etc/mongo/mongo-keyfile clusterAuthMode: keyFile authorization: enabled
3つのノードすべてでmongodbのステータスを再起動して確認します:
$ sudo service mongod restart $ sudo service mongod status
資格情報を使用してMongodbにログインします:
$ mongo -host 172.16.1.x admin -u admin -p'E580nOOUE6cDhQ'
他のユーザーステージデータベースを使用してMongodbにログインします:
mongo 172.16.1.x:27017/maindatabase -u stage -p 4n1PdUKkyoU9wcTNW
これでセットアップは完了です。