Docs Menu
Docs Home
/ /
Red Hat へのインストール
/ / / / /

.tgz Tarball を使用して Red Hat または CentOS に MongoDB Community をインストールする

このチュートリアルを使用して、MongoDB 8.0を手動でインストールします MongoDB Community EditionLinuxCentOSLinuxOracleLinux1ダウンロードした.tgz tarball を使用して、 Red Hat Enterprise 、 、または [ ] 上の 。

このチュートリアルではMongoDB 8.0 Community Edition をインストールします。別のバージョンの MongoDB Community をインストールするには、このページの左上隅にあるバージョンのドロップダウンメニューを使用して、該当バージョンのドキュメントを選択します。

このドキュメントで説明されているように、ダウンロードした .tgz tarball を使用してMongoDB を手動でインストールできますが、可能であれば、システム上で yumパッケージマネージャーを使用することをお勧めします。パッケージマネージャーを使用すると、必要な依存関係が自動でインストールされ、例mongod.confファイルが提供されます。また、将来のアップグレードやメンテナンス タスクが簡素化します。

➤ 手順について詳しくは、「 Yum パッケージ マネージャーを使用して MongoDB をインストールする」を参照してください。

.tgz パッケージを使用してサーバーをインストールする場合は、 mongosh のインストール手順に従って、mongosh を個別にダウンロードしてインストールする必要があります。

MongoDB 8.0 MongoDB Community Editionは、次の64 ビット バージョンの Red Hat EnterpriseLinux (RHEL)、CentOSLinux 、OracleLinux [1 ] 、RockyLinux 、AlmaLinux [2 ] x86 64でサポートしています。 _ アーキテクチャ:

  • RHEL、CentOS Stream、Oracle、Rocky、AlmaLinux 9

  • RHEL、CentOS Stream、Oracle、Rocky、AlmaLinux 8

MongoDB はこれらのプラットフォームの 64 ビット版のみをサポートしています。

MongoDB 8.0Community Edition on RHEL/CentOS/Oracle/Rocky/AlmaLinux は、一部のプラットフォームで ARM64 アーキテクチャもサポートしています。

詳しくは、「プラットフォーム サポート」を参照してください。

[1]12 MongoDB は Red Hat Compatible Kernel(RHCK)を実行している Oracle Linux のみをサポートしています。MongoDB は Unbreakable Enterprise Kernel(UEK)をサポートしていません
[2] RHEL バージョン 8.0 以降向けにリリースされた MongoDB オンプレミス製品は、Rocky Linux バージョン 8.0 以降、および AlmaLinux バージョン 8.0 以降と互換性があり、サポートします。ただし、これらのディストリビューションが完全な RHEL 互換性を提供する義務を果たすことが前提となります。

MongoDB を本番環境に導入する前に、パフォーマンスに関する考慮事項と構成の推奨事項について、 自己管理型配置のプロダクションドキュメントのドキュメントを参照してください。

MongoDB Community .tgz tarball に必要な依存関係をインストールするには、次のコマンドを使用します。

sudo yum install libcurl openssl xz-libs

.tgz から MongoDB コミュニティ エディション を手動でインストールするには、次の手順に従ってください。

1

必要な前提条件パッケージをインストールしたら、次のリンクから MongoDB Community tgz tarball をダウンロードします。

MongoDB ダウンロード センター

  1. Version のドロップダウンで、ダウンロードする MongoDB のバージョンを選択します。

  2. Platform のドロップダウン メニューから、ご使用のオペレーティング システムのバージョンとアーキテクチャを選択します。

  3. Package のドロップダウンで、[tgz] を選択します。

  4. [Download] をクリックします。

2

アーカイブ マネージャー プログラムか、tar コマンドを使用して、ファイルを抽出します。例、システム shell から、tar コマンドを使用して抽出できます。

tar -zxvf mongodb-*-8.0.12.tgz
3

MongoDB バイナリは tarball のbin/ディレクトリにあります。次のいずれかを実行できます。

  • PATH 変数にリストされている/usr/local/binなどのディレクトリにバイナリをコピーします(必要に応じてインストール ディレクトリで /path/to/the/mongodb-directory/ を更新)

    sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/
  • PATH 変数にリストされている/usr/local/binなどのディレクトリからバイナリへのシンボリック リンクを作成します(必要に応じてインストール ディレクトリで /path/to/the/mongodb-directory/ を更新)

    sudo ln -s /path/to/the/mongodb-directory/bin/* /usr/local/bin/
4

インストール mongosh 後、MongoDB Shell を使用してデプロイに接続します。

MongoDB ダウンロード センターから必要なmongoshのバージョン用のパッケージをダウンロードし、パッケージを解凍します。

ほとんどの Unix 系オペレーティング システムでは、プロセスが使用できるシステム リソースが制限されています。 これらの制限は MongoDB の操作に悪影響を及ぼす可能性があるため、調整する必要があります。 プラットフォームに推奨される設定については、 「 自己管理型配置の UNIX ulimit設定」を参照してください。

注意

オープンしているファイル数のulimit値が64000未満の場合、MongoDB は起動警告を生成します。

MongoDB は デフォルトで、mongod ユーザー アカウントを使用して実行され、次のデフォルト ディレクトリを使用します。

  • /var/lib/mongo (データディレクトリ)

  • /var/log/mongodb (ログディレクトリ)

MongoDB のデータとログ ディレクトリを作成します。

sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb

デフォルトでは、MongoDB は mongod ユーザー アカウントを使用して実行されます。mongod グループと mongodb グループを作成します。mongod がグループに属していることを確認し、これらのディレクトリの所有者とグループを mongod に設定します。

sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb

デフォルト以外のデータディレクトリやログ ディレクトリを使用するには、次の手順に従います。

  1. 新しいディレクトリ(複数可)を作成します。

  2. 構成ファイル /etc/mongod.conf を編集し、必要に応じて次のフィールドを変更します。

    • storage.dbPath で新しいデータディレクトリのパスを指定します(例: /some/data/directory

    • systemLog.path で新しいログファイルのパスを指定します(例: /some/log/directory/mongod.log

  3. MongoDB を実行しているユーザーがディレクトリにアクセスできるようにします。

    sudo chown -R mongod:mongod <directory>

    MongoDB プロセスを実行するユーザーを変更する場合は、新しいユーザーにこれらのディレクトリへのアクセス権を付与する必要があります。

  4. SELinux が強制されている場合は、構成します。「SELinux の構成」を参照してください。

警告

不適切に構成された SELinux ポリシーは安全でなかったり、mongod インスタンスが動作しなくなったりする可能性があります。

SELinux が enforcing モードの場合、MongoDB の SELinux ポリシーをカスタマイズする必要があります。

  • アクセス許可 cgroup

  • アクセス許可 netstat

現在の SELinux ポリシーでは、MongoDB プロセスが /sys/fs/cgroup にアクセスすることを許可していません。これは、システムで使用可能なメモリを決定するのに必要なものです。SELinux を enforcing モードで実行する場合は、SELinux ポリシーを次のように調整する必要があります。

  1. システムに checkpolicy パッケージがインストールされていることを確認します。

    sudo yum install checkpolicy
  2. カスタム ポリシー ファイル mongodb_cgroup_memory.te を作成します。

    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
  3. 作成したら、次の 3 つのコマンドを実行してカスタム ポリシー モジュールをコンパイルしてロードします。

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

SELinux を enforcing に設定することで、MongoDB プロセスが正しいファイルにアクセスできるようになりました。

現在の SELinux ポリシーでは、MongoDB プロセスが /proc/net/netstat を開いて読み取ることを許可していません。これは、フルタイム診断データ取得(FTDC)に必要です。SELinux を enforcing モードで実行する場合は、SELinux ポリシーを次のように調整する必要があります。

  1. システムに checkpolicy パッケージがインストールされていることを確認します。

    sudo yum install checkpolicy
  2. カスタム ポリシー ファイル mongodb_proc_net.te を作成します。

    cat > mongodb_proc_net.te <<EOF
    module mongodb_proc_net 1.0;
    require {
    type cgroup_t;
    type configfs_t;
    type file_type;
    type mongod_t;
    type proc_net_t;
    type sysctl_fs_t;
    type var_lib_nfs_t;
    class dir { search getattr };
    class file { getattr open read };
    }
    #============= mongod_t ==============
    allow mongod_t cgroup_t:dir { search getattr } ;
    allow mongod_t cgroup_t:file { getattr open read };
    allow mongod_t configfs_t:dir getattr;
    allow mongod_t file_type:dir { getattr search };
    allow mongod_t file_type:file getattr;
    allow mongod_t proc_net_t:file { open read };
    allow mongod_t sysctl_fs_t:dir search;
    allow mongod_t var_lib_nfs_t:dir search;
    EOF
  3. 作成したら、次の 3 つのコマンドを実行してカスタム ポリシー モジュールをコンパイルしてロードします。

    checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te
    semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod
    sudo semodule -i mongodb_proc_net.pp
  1. SELinux ポリシーを更新して、mongod サービスが新しいディレクトリを使用できるようにします。

    sudo semanage fcontext -a -t <type> </some/MongoDB/directory.*>

    必要に応じて、次のいずれかのタイプを指定します。

    • mongod_var_lib_t データディレクトリ用

    • mongod_log_t ログファイル ディレクトリ用

    • mongod_var_run_t PID ファイル ディレクトリ用

    注意

    ディレクトリの最後に .* を必ず含めてください。

  2. 新しいディレクトリの SELinux ユーザー ポリシーを更新します。

    sudo chcon -Rv -u system_u -t <type> </some/MongoDB/directory>

    必要に応じて、次のいずれかのタイプを指定します。

    • mongod_var_lib_t データディレクトリ用

    • mongod_log_t ログ ディレクトリ

    • mongod_var_run_t PID ファイル ディレクトリ用

  3. 更新された SELinux ポリシーをディレクトリに適用します。

    sudo restorecon -R -v </some/MongoDB/directory>

以下に例を挙げます。

Tip

.* の操作には、必ずディレクトリの最後に semanage fcontext を含めてください。

  • デフォルト以外の MongoDB データ パス /mongodb/data を使用する場合:

    sudo semanage fcontext -a -t mongod_var_lib_t '/mongodb/data.*'
    sudo chcon -Rv -u system_u -t mongod_var_lib_t '/mongodb/data'
    sudo restorecon -R -v '/mongodb/data'
  • デフォルト以外の MongoDB ログ ディレクトリ /mongodb/log を使用する場合(例: ログ ファイル パスが /mongodb/log/mongod.log の場合):

    sudo semanage fcontext -a -t mongod_log_t '/mongodb/log.*'
    sudo chcon -Rv -u system_u -t mongod_log_t '/mongodb/log'
    sudo restorecon -R -v '/mongodb/log'
sudo semanage port -a -t mongod_port_t -p tcp <portnumber>

重要

上記に加えて、SELinux が enforcing モードの場合は、次の各状況に合わせて SELinux ポリシーをさらにカスタマイズする必要もあります。

  • 次のいずれの組み合わせでも、デフォルト パスの代わりにカスタム ディレクトリ パスを使用しています。

  • デフォルトの MongoDB ポートではなく、カスタム ポートを使用しています。

  • MongoDB のインストールに他の変更を加えた場合。

システム上で MongoDB Community Edition を実行するには、以下の手順に従います。これらの手順では、デフォルト設定の使用を前提としています。

1

MongoDB インスタンスのデータを保存するためにディレクトリを作成します。以下は、その例です。

sudo mkdir -p /var/lib/mongo

MongoDB インスタンスのログを保存するためにディレクトリを作成します。以下は、その例です。

sudo mkdir -p /var/log/mongodb

MongoDB プロセスを開始するには、これらのディレクトリに対する読み取りと書込み(write)権限が必要です。たとえば、自身のアカウントで MongoDB を実行するには、次のようにします。

sudo chown `whoami` /var/lib/mongo # Or substitute another user
sudo chown `whoami` /var/log/mongodb # Or substitute another user
2

MongoDB を実行するには、システム プロンプトで mongod プロセスを実行します。

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

--dbpath および --logpath コマンドライン オプションについて詳しくは、「オプション」を参照してください。

3

MongoDB が正常に起動したことを確認するには、ログファイル /var/log/mongodb/mongod.log でプロセス出力に次の行が含まれているか確認します。

[initandlisten] waiting for connections on port 27017

プロセス出力に非致命的な警告が表示されることがありますが、上記のログ行が確認できれば、MongoDB の初期評価ではこれらの警告を無視しても問題ありません。

4

mongoshと同じホストマシン上でmongod セッションを開始します。コマンドライン オプションなしでmongoshを実行すると、デフォルト ポート27017を使用してローカルホストで実行されているmongodに接続できます。

mongosh

mongosh を使った接続(別のホストやポートで実行されている mongod インスタンスへの接続など)の詳細については、「mongosh ドキュメント」を参照してください。

MongoDB をスムーズに使い始められるように、MongoDB ではさまざまなドライバー エディションでスタートガイドを提供しています。ドライバーのドキュメントについては、「MongoDB での開発スタートガイド」を参照してください。

デフォルトでは、MongoDB は bindIp127.0.0.1 に設定して起動します。これは、ローカルホスト ネットワーク インターフェースにバインドされます。つまり、mongod は同じマシン上で実行中のクライアントからの接続のみを受け入れることができます。この値が有効なネットワークインターフェースに設定されていない限り、リモートクライアントは mongod に接続できず、mongodレプリカセットを初期化できません。

この値は、次のいずれかに設定できます。

  • MongoDB設定ファイルでbindIpを使用する。または

  • コマンドライン引数を経由する。 --bind_ip

警告

インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。

bindIpの構成の詳細については、「自己管理型配置の IP バインディング 」を参照してください。

項目一覧