1. ホーム
  2. データベース
  3. モンゴルディーブ

Centos8でMongoDBをインストールする詳細な手順

2022-01-19 03:25:39

MongoDBとは。

MongoDBは、オープンソースのNoSQLデータベース管理システムで、綿密なドキュメントを管理することができます。
/{br mongoDBはNoSQL(単なるSQLではない)データベースソフトウェアです。mongoDBはスキーマ文書などでJSON(JavaScriptオブジェクト表現)を使用します。MongoDBはMongoDB Incが開発し、SSPL(サーバーサイド公開ライセンス)の下で配布されています ( MongoDB is developed by MongoDB Inc and distributed under the SSPL (Server Side Public License).

Centos8でMongoDBのyumリポジトリをインストールするには。

1. CentOS 8 サーバーに MongoDB の yum リポジトリをインストールするために /etc/yum.repo.d ディレクトリーに repo ファイルを作成します。

vim /etc/yum.repos.d/mongodb-org-4.4.repo
Add the following configuration to this file.

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc


2. MongoDB リポジトリのキャッシュを構築します。

 dnf clean all
 dnf makecache
 dnf repolist


centos8 で MongoDB のリソース制限を設定する。

MongoDB ソフトウェアの要件に従って、centos8 サーバーにリソース制限を設定する必要があります。
/{br そのために、以下のようにMongoDB用のリソース制限設定ファイルを作成します。

vim /etc/security/limits.d/mongod.conf
and add the following resource limits to it.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000


Centos8でMongoDBデータベースをインストールする。

1. 新しく追加されたyumリポジトリからcentos 8のサーバーにMongoDBをインストールすることができます。

dnf list -y mongodb-org
dnf -y install mongodb-org


2. MongoDBデータベースサービスを有効化し、起動します。

systemctl enable --now mongod.service


3. 起動に成功したら、MongoDB サービスの状態とポートのリスニング情報を確認します。

systemctl status mongod.service


netstat -anplt|grep mongod


centos8でMongoDB用のselinuxポリシーを作成する。

1. selinux をフォースモードに設定した場合、MongoDB 用の selinux ポリシーを作成する必要があります。
現在の selinux モードを確認します。

ゲットエンフォース

2. カスタム selinux ポリシーを検証するために checkpolicy コマンドが必要なので、checkpolicy をインストールします。

dnf -y インストール checkpolicy

3. カスタム selinux ポリシーファイルを作成します。

vim mongodb_cgroup_memory.te
Add the following directive to the file.

module mongodb_cgroup_memory 1.0;

require {
    type cgroup_t;
    type mongod_t;
    class dir search;
    class file { getattr open read };
}

# ============= mongod_t ==============
allow mongod_t cgroup_t:dir search;
allow mongod_t cgroup_t:file { getattr open read }


4. この selinux ポリシーをコンパイルして適用します。

checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te
semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod
semodule -i mongodb_cgroup_memory.pp

MongoDBにadminユーザーを作成する。

デフォルトでは、MongoDB サーバーはアクセス制御が大きく無効になっているので、誰でも MongoDB サーバーにアクセスして管理操作を行うことができます。
/{br そこで、adminユーザーを作成し、MongoDBサーバーのアクセス制御を有効にする必要があります。
MongoDBシェルに接続する。

モンゴ

管理用データベースに接続する。

> use admin;
switched to db admin
>


adminユーザーを作成します。

> db.createUser(
...   {
...     user: "admin",
...     pwd: "xu123",
...     roles: [ { role: "userAdminAnyDatabase",db: "admin" } ]
...   }
... )


MongoDB データベースに登録されているすべてのユーザーをリストアップします。

ユーザーを表示する

MongoDBサーバーでアクセス制御を有効にする。

初期状態では、MongoDBサーバーのアクセス制御は無効になっています。そのため、centos 8 server の OS レベルのアクセス権を持つユーザーなら誰でも MongoDB インスタンスに接続し、データベースに対して管理操作を行うことができます。前のステップで認証なしで管理者ユーザーを作成できたのはこのためです。
MongoDB サーバーのアクセス制御を有効にするには、MongoDB.service 用の systemd ユニットファイルを編集する必要があります。

vim /usr/lib/systemd/system/mongod.service
Find the following line in this file.

Environment="OPTIONS=-f /etc/mongod.conf"
Replace it with the following.

Environment="OPTIONS=--auth -f /etc/mongod.conf"


systemd をリロードして MongoDB サービスを再起動し、アプリケーションを変更します。

systemctl daemon-reload

systemctl restart mongod.service


アクセス制御を確認するには、MongoDBのシェルに接続して、いくつかの管理用コマンドを実行します。

mongo
use admin
show users


今度は "show user" コマンドで認証エラーが発生し、MongoDBサーバーでアクセス制御が有効であることが確認できました。
では、管理者ユーザーで接続します。

> db.auth("admin",passwordPrompt())
Enter password: ### Enter the password we set earlier

では、同じコマンドを実行して、正常に動作しているかどうかを確認してください。

<ブロッククオート

ユーザーを表示する

コマンド "show users" は、特権ユーザーを使用して正常に実行されました。

MongoDBデータベースのアクセス制御が有効になっています。

MongoDBデータベースとログのディレクトリです。

ここでは、MongoDBデータベース管理者にとって重要な2つのディレクトリを紹介します。
/var/lib/mongo-data ディレクトリ(デフォルト)
/var/log/mongodb-log ディレクトリ(デフォルト)

etc/mongodb.conf ファイルに以下のパラメータを設定することで、上記のディレクトリをカスタマイズすることができます。
storage.dbPath-新しいデータ・ディレクトリへのパスを指定します。
systemLog.path-Specify the path to the new log file

オリジナルリンク

Centos8へのMongoDBインストールについての記事は以上となります。centos8へのMongoDBのインストールについては、BinaryDevelopの過去記事を検索するか、以下の記事を引き続き閲覧してください。