GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS 8 /RHEL8にMongoDBをインストールする方法

MongoDBはオープンソースであり、最も人気のあるドキュメント指向データベース(NoSQL)の1つです。 MongoDBでは、データは、リレーショナルデータベースのテーブルや行とは異なり、動的スキーマを使用してJSONのようなドキュメントに保存されます。

MongoDBは、スケーラビリティと開発者の敏捷性の両方を念頭に置いて設計されています。 Windows、Linux、OS X、Solaris、FreeBSDで利用できます。

この投稿では、CentOS 8 /RHEL8にMongoDBをインストールする方法を説明します。

MongoDBエディション

MongoDB Incは、エンドユーザー向けにMongoDBの2つのサーバーエディションをリリースしています。

  1. MongoDB Enterprise Server

  2. MongoDBコミュニティサーバー

ここでは、MongoDBコミュニティエディションをインストールする方法を説明します。 MongoDBコミュニティサーバーは、サーバー側パブリックライセンス(SSPL)の下でリリースされます。

MongoDBリポジトリを追加

MongoDB Incは、MongoDBデータベースをダウンロードしてインストールするための専用ソフトウェアリポジトリを提供しています。

システムにMongoDBリポジトリを追加します。

MongoDB 4.4

 cat << EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
 

MongoDB 4.2

 cat << EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
EOF
 

MongoDBをインストールする

MongoDBリポジトリを追加したら、dnfコマンドを使用してMongoDBをインストールします。

 dnf install -y mongodb-org
 
mongob-org(以下のコンポーネントをインストールするメタパッケージ)
mongodb-org-server サーバーパッケージ
mongodb-org-mongos 共有デーモン
mongodb-org-shell コマンドラインインターフェイス
mongodb-org-tools MongoDBツール(インポート、エクスポート、復元、ダンプ、その他のツール)

SELinux

SELinuxを有効にして(強制モードで)MongoDBを実行するには、指示に従ってMongoDBのSELinuxポリシーをカスタマイズします。システムでSELinuxを無効にしている場合は、以下の手順をスキップしてください。

dnfコマンドを使用してcheckpolicyパッケージをインストールします。

 dnf install -y checkpolicy
 

MongoDBプロセスがcgroupにアクセスして、システムで使用可能なメモリを判別できるようにするためのSELinuxポリシーファイルを作成します。

 cat > mongodb_cgroup_memory.te <<EOF
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 };
EOF
 

以下のコマンドを使用して、カスタム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
 
インストール後の手順

Ulimit設定

デフォルトでは、ほとんどのシステムには、特定のユーザー(アプリケーションfid)が持つことができるプロセス、開いているファイル、メモリなどの数に制限が設定されており、これらの制限によりMongoDBの操作で問題が発生する可能性があります。

MongoDBは、systemdユニットファイルで推奨される制限設定を提供するようになりました。したがって、制限を手動で設定する必要はありません。

アクセス制御を有効にする

MySQLやPostgreSQLなどのリレーショナルデータベースを使用する場合、ユーザーがデータベースアクティビティを実行するために自分自身を認証する必要がある、少なくともある程度の認証が付属しています。

しかし、MongoDBの場合はそうではありません。すべてのユーザーは、認証なしで任意のデータベースにアクセスし、任意の操作を実行できます。

この問題を解決するには、まず日常業務用の管理者ユーザーを作成します。

次に、MongoDBの構成ファイルを編集してアクセス制御を有効にする必要があります。

 vi /etc/mongod.conf
 

以下の行を追加します。

 security:
  authorization: enabled
 
巨大なページを無効にする

透過的な巨大ページは、データベースワークロードのパフォーマンスの問題を引き起こすことがよくあります。そのため、MongoDBでは、最高のパフォーマンスを得るために、巨大なページを無効にすることをお勧めします。

ディレクトリを作成して、調整されたプロファイルファイルを配置し、巨大なページを無効にします。

 mkdir /etc/tuned/virtual-guest-no-thp
 

ファイルを作成します。

 vi /etc/tuned/virtual-guest-no-thp/tuned.conf
 

以下の行を有効なファイルに配置します。

 [main]
include=virtual-guest

[vm]
transparent_hugepages=never
 

新しく作成したプロファイルを有効にします。

tuned-adm profile virtual-guest-no-thp
 

MongoDBサービスを開始します

MongoDBサービスを開始するには、次を実行します:

 systemctl start mongod
 

ステータスMongoDBサービスを確認するには、次を実行します:

 systemctl status mongod
 
出力:●mongod.service-ロードされたMongoDBデータベースサーバー:ロードされた(/usr/lib/systemd/system/mongod.service;有効;ベンダープリセット:無効)アクティブ:月2020-08-10以降アクティブ(実行中) 13:10:15 EDT; 11秒前ドキュメント:https://docs.mongodb.org/manualプロセス:3147 ExecStart =/ usr / bin / mongod $ OPTIONS(code =exited、status =0 / SUCCESS)プロセス:3145 ExecStartPre =/ usr / bin / chmod 0755 / var / run / mongodb(code =exited、status =0 / SUCCESS)プロセス:3143 ExecStartPre =/ usr / bin / chown mongod:mongod / var / run / mongodb(code =exited、status =0/SU>プロセス:3141 ExecStartPre =/ usr / bin / mkdir -p / var / run / mongodb(code =exited、status =0 / SUCCESS)メインPID:3149(mongod)メモリ:61.1M CGroup:/system.slice/mongod.service └─3149/usr/ bin / mongod -f /etc/mongod.confAug 10 13:10:14 centos8.itzgeek.local systemd [1]:MongoDBデータベースサーバーを起動しています... Aug 10 13:10:14 centos8.itzgeek .local mongod [3147]:子プロセスをフォークしようとして、サーブまで待機> Aug 10 13:10:14 centos8.itzgeek.local mongod [3147]:フォークプロセス:3149Aug 10 13:10:15 centos8.itzgeek.local mongod [3147]:子プロセスが正常に開始され、親exiti> Aug 10 13:10:15 centos8.itzgeek.local systemd [1]:MongoDBデータベースサーバーが開始されました。 

MongoDBのバージョンを確認してください。

 mongod --version
 
 Output:db version v4.4.0Build Info:{"version": "4.4.0"、 "gitVersion": "563487e100c4215e2dce98d0af2a6a5a2d67c5cf"、 "openSSLVersion": "OpenSSL 1.1.1c FIPS 28 May 2019"、 "modules" :[]、 "allocator": "tcmalloc"、 "environment":{"distmod": "rhel80"、 "distarch": "x86_64"、 "target_arch": "x86_64"}} 

netstatコマンドを使用して、MongoDBがポート27017でリッスンしているかどうかを確認します。

 netstat -antup | grep -i 27017
 
 Output:tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 6898 / mongod 

読む: CentOS 7 / RHEL 7でnetstatコマンドが見つかりません–クイックフィックス

MongoDBにアクセス

次のコマンドを入力して、MongoDBシェルに接続します。

 mongo
 
出力:MongoDBシェルバージョンv4.4.0接続先:mongodb://127.0.0.1:27017 /?compressors =disable&gssapiServiceName =mongodb暗黙のセッション:セッション{"id":UUID( "3ecdceaa-5050-41a3-96e3-8f821362523b ")} MongoDBサーバーのバージョン:4.4.0 MongoDBシェルへようこそ。インタラクティブなヘルプについては、「help」と入力してください。より包括的なドキュメントについては、https://docs.mongodb.com/Questions?を参照してください。 MongoDB開発者コミュニティフォーラムhttps://community.mongodb.com>
をお試しください 結論

それで全部です。今では、CentOS 8 /RHEL8システムにMongoDBがインストールされていることを願っています。コメントセクションでフィードバックを共有してください。


Cent OS
  1. CentOS8にMongoDBをインストールする方法

  2. CentOS 6 /RHEL6にMongoDB4.2/4.0をインストールする方法

  3. CentOS 7 /RHEL7にMongoDB4.4/4.2をインストールする方法

  1. RHEL 8 /CentOS8にphpMyAdminをインストールする方法

  2. RHEL 8 /CentOS8にP7Zipをインストールする方法

  3. RHEL 8 /CentOS8にntfs-3gをインストールする方法

  1. PHP-mbstringをRHEL8/CentOS8にインストールする方法

  2. RHEL 8 /CentOS8にphantomjsをインストールする方法

  3. DropboxをRHEL8/CentOS8にインストールする方法