GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 16で3つのノードを使用してMongoDBクラスターをセットアップするにはどうすればよいですか?

フォローするには、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

これでセットアップは完了です。


Ubuntu
  1. Rancherを使用してKubernetesクラスターをセットアップする方法

  2. UbuntuでMySQLクラスターを設定する方法

  3. Ubuntu16.04にMongoDBをインストールする方法

  1. Ubuntu18.04でUFWを使用してファイアウォールを設定する方法

  2. Ubuntu18.04にMongoDBをインストールする方法

  3. Ubuntu18.04にApacheを使用してJoomlaをインストールする方法

  1. Ubuntu20.04でUFWを使用してファイアウォールを設定する方法

  2. Ubuntu20.04にMongoDBをインストールする方法

  3. Ubuntu18.04LTSでRabbitMQクラスターをセットアップする方法