Synopsis
mongod  は MongoDB システムのプライマリ デーモン プロセスです。データ リクエストの処理、データ アクセスの管理、バックグラウンドの管理操作を実行します。
このドキュメントでは、 mongodの全コマンド ライン オプションに関する全体像を説明します。 これらのコマンドライン オプションは、主にテストに役立ちます。一般的な操作の場合、データベースの動作を制御するには構成ファイル オプションを使用します。
注意
MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
互換性
次の環境でホストされている配置では mongod が使用されます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
MongoDB Atlas では、すべての MongoDB Atlas 配置の mongod を管理します。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
Considerations
mongodは、デプロイに関するトラブルシューティングを行う MongoDB エンジニアを支援するために、フルタイム診断データ取得メカニズムを備えています。 このスレッドが失敗すると、元のプロセスが終了します。 特に一般的な障害を回避するには、プロセスを実行しているユーザーに FTDCdiagnostic.dataディレクトリを作成する権限があることを確認します。mongodの場合、このディレクトリはstorage.dbPath内にあります。mongosの場合は、systemLog.pathと同じ階層にあります。
オプション
バージョン 6.1 での変更:
MongoDB では常にジャーナリングが有効です。その結果、MongoDB は、
storage.journal.enabledオプション、および対応する--journalと--nojournalのコマンドライン オプションを削除します。
バージョン 5.2 での変更:
MongoDB では
--cpuコマンドライン オプションが削除されます。
バージョン 5.0 での変更:
MongoDB では、
--serviceExecutorコマンドライン オプションと対応するnet.serviceExecutor構成オプションが削除されます。
中心的オプション
--authデータベースのリソースと操作に対するユーザーのアクセスを制御する権限を有効にします。認証が有効になっている場合、MongoDB はクライアントのアクセス権を決定するために、すべてのクライアントに対して最初に認証を要求します。
ユーザーを構成するには、
mongoshクライアントを使用します。ユーザーが存在しない場合、最初のユーザーを作成するまでローカルホスト インターフェースがデータベースにアクセスできます。詳細については、「セキュリティ」を参照してください。
--bind_ip <hostnames|ipaddresses|Unix domain socket paths>デフォルト: localhost
mongodがクライアント接続を待ち受けるホスト名、IP アドレス、Unix ドメイン ソケットの完全なパスのすべてまたはいずれか。mongodはどのインターフェースにも接続できます。複数のアドレスにバインドするには、値をカンマで区切ったリストを入力します。例
localhost,/tmp/mongod.sock
IPv4 アドレスと IPv6 アドレスの両方、 IPv4 アドレスまたは IPv6 アドレスのいずれかに解決するホスト名が指定できます。
例
localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513
注意
link-local IPv6 アドレス(
fe80::/10)を指定する場合、ゾーンインデックスをそのアドレス(fe80::<address>%<adapter-name>)。例
localhost,fe80::a00:27ff:fee0:1fcf%enp0s3
重要
IP アドレスの変更による構成の更新を防ぐには、IP アドレスの代わりに DNS ホスト名を使用します。レプリカセット ノードまたはシャーディングされたクラスター ノードを設定するときは、IP アドレスではなく DNS ホスト名を使用することが特に重要です。
分裂されたネットワーク ホライズン全体でクラスターを構成するには、IP アドレスの代わりにホスト名を使用します。 MongoDB 5.0以降、IP アドレスのみが設定されているノードは起動時の検証に失敗し、起動しません。
警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
IP バインディングの詳細については、「自己管理型配置の IP バインディング」ドキュメントを参照してください。
すべての IPv4 アドレスにバインドするには、「
0.0.0.0」と入力します。すべての IPv 4と IPv 6アドレスにバインドするには、
::,0.0.0.0またはアスタリスク"*"を入力します(ファイル名パターン展開を避けるためには、アスタリスクを引用符で囲みます)。 または、net.bindIpAll設定を使用します。注意
--bind_ipと--bind_ip_allは相互に排他的です。両方のオプションを指定すると、mongodはエラーをスローして終了します。コマンドライン オプション
--bindでは、構成ファイルの設定net.bindIpが上書きされます。
--bind_ip_all指定されている場合、
mongodインスタンスはすべての IPv 4アドレス(つまり0.0.0.0)。mongodが--ipv6で開始する場合、--bind_ip_allはすべての IPv 6アドレス(つまり::)。mongodでは、--ipv6で開始された場合のみ IPv 6がサポートされます。--bind_ip_allのみを指定しても、IPv 6のサポートは有効になりません。警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
IP バインディングの詳細については、「自己管理型配置の IP バインディング」ドキュメントを参照してください。
あるいは、
--bind_ipオプションを::,0.0.0.0またはアスタリスク"*"に設定することもできます(ファイル名パターン展開を避けるために、アスタリスクは引用符で囲みます)。注意
--bind_ipと--bind_ip_allは相互に排他的です。つまり、どちらか一方を指定できますが、両方を指定することはできません。
--clusterIpSourceAllowlist <string>バージョン 5.0 で追加
IPアドレス および CIDR(クラスレス ドメイン間ルーティング)範囲のリストです。
mongodは、このリストに基づいてレプリカセットの他のノードによる認証リクエストを、またシャーディングされたクラスターの一部である場合は、mongosインスタンスの認証リクエストを検証します。mongodは、発信元 IP がリストに明示的に含まれているか、またはリスト内の CIDR 範囲に属しているかを確認します。IP アドレスが存在しない場合、サーバーはmongodまたはmongosを認証しません。--clusterIpSourceAllowlistは、認証なしで開始されたmongodに影響しません。--clusterIpSourceAllowlistは、複数のカンマ区切りの IPv4/6 アドレスまたはクラスレス ドメイン間ルーティング(CIDR)範囲を受け入れます。mongod --clusterIpSourceAllowlist 192.0.2.0/24,127.0.0.1,::1 重要
クラスター コンポーネント間の正常な通信を確保するために、
--clusterIpSourceAllowlistに、IP アドレス、または各レプリカセットのノードもしくは配置内にあるmongosの IP アドレスを含む CIDR 範囲が含まれていることを確認してください。
--config <filename>, -f <filename>ランタイム設定オプション用の構成ファイルを指定します。 構成ファイルは、
mongodのランタイム構成に推奨される方法です。 オプションは、コマンドラインの設定オプションと同じです。 詳細については、 自己管理型構成ファイルのオプションを参照してください。構成ファイルでは ASCII エンコードを使用するようにしてください。
mongodインスタンスでは、UTF-8 など、非 ASCII エンコードの構成ファイルをサポートしていません。
--configExpand <none|rest|exec>デフォルト: なし
構成ファイルで展開ディレクティブを使用できるようにします。展開ディレクティブを使用すると、構成ファイル オプションに外部ソースの値を設定できます。
--configExpandでは、次の展開ディレクティブをサポートします。値説明noneデフォルト。
mongodは展開ディレクティブを展開しません。構成ファイルの設定で展開ディレクティブが使用されている場合、mongodは起動に失敗します。restmongodは、構成ファイルを解析するときに__rest展開ディレクティブを展開します。execmongodは、構成ファイルを解析するときに__exec展開ディレクティブを展開します。複数の展開ディレクティブをカンマ区切りのリスト(例:
rest, exec)として指定できます。 構成ファイルに--configExpandに指定されていない展開ディレクティブが含まれている場合、mongodはエラーを返し、終了します。展開ディレクティブの詳細については、構成ファイル用「自己管理型配置の外部ソースの構成ファイルの値」を参照してください。
--filePermissions <path>デフォルト:
0700UNIX ドメイン ソケット ファイルのパーミッションを設定します。
--filePermissionsは Unix ベースのシステムにのみ適用されます。
--forkmongodプロセスをバックグラウンドで実行するデーモン モードを有効にします。--forkオプションは Windows ではサポートされていません。デフォルトでは、
mongodはデーモンとして実行されません。--forkまたは、upstartやsystemdなど、デーモン化を取り扱う制御プロセスを使用して、mongodをデーモンとして実行します。--forkを使用するには、次のいずれかを使用してmongodのログ出力を構成します。
--ipv6IPv6 のサポートを有効にします。
mongodではデフォルトで IPv6 のサポートは無効です。--ipv6を設定しても、mongodがローカル IPv 6アドレスまたはインターフェースをリッスンするように 指示しません。 IPv 6インターフェースでリッスンするようにmongodを設定するには、次のいずれかを行う必要があります。IPv 6アドレスに解決される 1 つ以上の IPv 6アドレスまたはホスト名を使用して
--bind_ipを構成するか、あるいは--bind_ip_allをtrueに設定します。
--keyFile <file>MongoDB インスタンスが シャーディングされたクラスターまたはレプリカセット内で相互に認証を行うために使用する、共有シークレットを保存する鍵ファイルへのパスを指定します。
--keyFileは--auth} を意味します。 詳細については、「自己管理型内部認証とメンバーシップ認証」を参照してください。内部メンバーシップ認証用のキーファイルでは、キーファイル内に複数のキーを含めるために YAML 形式が使用されます。YAML 形式は次のいずれかを受け入れます。
1 つのキー文字列(以前のバージョンと同じ)
キー文字列のシーケンス
YAML 形式は、テキストファイル形式を使用する既存の単一のキー キーファイルと互換性があります。
--listenBacklog <number>デフォルト: ターゲット システム
SOMAXCONN定数listen キューに存在できる接続の最大数です。
警告
このパラメーターを使用する前に、制限事項と構成要件を理解するためにローカル システムのドキュメントを確認してください。
重要
未定義の動作を防ぐには、このパラメーターに
1とローカルシステムのSOMAXCONN定数の間の値を指定します。listenBacklogパラメーターのデフォルト値は、ターゲットシステムに依存します。Linux では、MongoDB は/proc/sys/net/core/somaxconnを使用します。その他のすべてのターゲットシステムでは、MongoDB はコンパイル時定数SOMAXCONNを使用します。SOMAXCONNを記号的に解釈するシステムもあれば、数値的に解釈するシステムもあります。実際に適用されるlisten バックログは、SOMAXCONN定数または--listenBacklogへの引数の数値的解釈とは異なる場合があります。listenBacklogパラメーターにローカルシステムのSOMAXCONN定数を超える値を渡すと、標準では未定義の動作になります。値が大きいと、自動的に整数に切り捨てられる、無視される、予期しないリソースが消費されるなどの悪影響が生じる可能性があります。
--logappendmongodインスタンスの再起動時に、既存のログファイルの末尾に新しいエントリが追加されます。このオプションを指定しない場合、mongodは既存のログをバックアップして新しいファイルを作成します。
--logpath <path>すべての診断ログ情報を、標準出力やホストの syslog システムではなく、ログファイルに送信します。MongoDB は指定したパスにログファイルを作成します。
デフォルトでは、MongoDB は既存のログファイルを上書きせず、移動します。ログファイルに追加するには、
--logappendオプションを設定します。
--logRotate <string>デフォルト: rename
サーバー ログや監査ログをローテーションするときの
logRotateコマンドの動作を決定します。renameまたはreopenを指定します。renameは、ログファイルの名前を変更します。reopenは、一般的な Linux/Unix ログのローテーション動作に従って、ログファイルを閉じてから再度開きます。Linux/Unix logrotate ユーティリティを使用する場合は、ログの損失を防ぐためにreopenを使用してください。reopenを指定する場合は、--logappendも使用する必要があります。
--maxConns <number>mongodが受け入れる同時接続の最大数です。この設定は、オペレーティング システムで設定されている最大接続追跡しきい値よりも高い場合は効果がありません。このオプションに、あまりにも低い値は割り当てないでください。通常のアプリケーション操作中にエラーが発生する可能性があります。
--networkMessageCompressors <string>Default: snappy,zstd,zlib
この
mongodインスタンスと以下の間の通信に使用するデフォルトのコンプレッサーを指定します。配置の他のノード(インスタンスがレプリカセットまたはシャーディングされたクラスターの一部である場合)
OP_COMPRESSEDメッセージ形式をサポートするドライバー
MongoDB では、以下のコンプレッサーをサポートしています。
注意
mongodインスタンスとmongosインスタンスの両方がデフォルトでsnappy,zstd,zlibコンプレッサーに設定されます。ネットワーク圧縮を無効にするには、値を
disabledに設定します。重要
両者がネットワーク圧縮を有効にしている場合、メッセージは圧縮されます。そうでなければ、この両者間のメッセージは非圧縮となります。
複数のコンプレッサーを指定する場合、通信イニシエーターだけでなく、コンプレッサーをリストする順序も重要になります。 たとえば、
mongoshが次のネットワークコンプレッサーzlib,snappyを指定し、mongodがsnappy,zlibを指定する場合、mongoshとmongodの間のメッセージはzlibを使用します。両者に共通のコンプレッサーが 1 つもなければ、両者間のメッセージは圧縮されません。たとえば、
mongoshがネットワーク コンプレッサーとしてzlibを指定し、mongodがsnappyを指定する場合、mongoshとmongodの間のメッセージは圧縮されません。
--notablescanコレクションスキャンが必要な操作を禁止します。詳細については
notablescanを参照してください。
--nounixsocketUNIX ドメイン ソケットでのリスニングを無効にします。
--nounixsocketは Unix ベースのシステムにのみ適用されます。次のいずれかが当てはまらない限り、
mongodプロセスは常に UNIX ソケットを listen します。--nounixsocketが設定されているnet.bindIpが設定されていないnet.bindIpがlocalhostまたはそれに関連付けられた IP アドレスを指定していない
mongodは、公式の Install MongoDB Community Edition on Debian パッケージおよび Install MongoDB Community Edition on Red Hat or CentOS パッケージからインストールされ、bind_ip構成をデフォルトで127.0.0.1に設定します。
--outputConfigYAML 形式の
mongodインスタンスの構成オプションをstdoutに出力し、mongodインスタンスを終了します。 自己管理型配置に外部ソースの構成ファイルの値 を使用する構成オプションの場合、--outputConfigはそれらのオプションの解決値を返します。警告
これには、以前に外部ソースを通して難読化された、設定されたパスワードや秘密が含まれ場合があります。
使用例については、以下を参照してください。
--pidfilepath <path>mongodプロセスのプロセス ID(PID)を保存するファイルの場所を指定します。mongodまたはmongosプロセスを実行しているユーザーは、このパスに書込む (write) ことができる必要があります。--pidfilepathオプションが指定されていない場合、 プロセスは PID ファイルを作成しません。 このオプションは通常、--forkオプションと組み合わせて使用した場合にのみ役立ちます。注意
Linux
Linux では、PID ファイルの管理は通常、ディストリビューションの初期化システムによって行われます。通常、
/etc/init.dディレクトリ内のサービス ファイル、またはsystemctlに登録された systemd ユニット ファイルが使用されます。 これらの初期化システムのいずれも使用していない場合にのみ、--pidfilepathオプションを使用してください。 詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。注意
MacOS
macOS では、PID ファイル管理は通常
brewによって処理されます。 macOS システムでbrewを使用していない場合にのみ、--pidfilepathオプションを使用してください。 詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。
--port <port>デフォルト:
27017:
mongodがシャード ノードまたはコンフィギュレーションサーバー ノードでない場合27018
mongodがshard memberの場合、27019
mongodがconfig server memberの場合、
MongoDB インスタンスがクライアント接続を待機するTCP ポート。
--portオプションは、0から65535までの範囲の値を受け入れます。ポートを0に設定すると、mongodはオペレーティング システムによって割り当てられた任意のポートを使用するように構成されます。
--quiet出力量を制限する quiet モードで
mongodを実行します。このオプションにより次の項目が抑制されます。
データベース コマンドからの出力
レプリケーション アクティビティ
接続を受け付けたイベント
接続を終了したイベント
client metadata
--redactClientLogDataMongoDB Enterprise でのみ使用できます。
--redactClientLogDataで実行されているmongodは、ログに記録される前に特定のログ イベントに付随するすべてのメッセージをリダクションします。 これにより、データベースに保存されている機密性が高い可能性のあるデータをmongodが診断ログに書き込むことを防止します。 エラー コードや操作 コード、行番号、ソース ファイル名などのメタデータは、引き続きログに表示されます。規制要件へのコンプライアンスの補助に、
--redactClientLogDataを保管時の暗号化および TLS/SSL(トランスポート暗号化)と組み合わせて使用します。たとえば、MongoDB の配置では、個人を特定できる情報(PII)が 1 つ以上のコレクションに保存される場合があります。
mongodは、CRUD 操作やシャーディングメタデータなどに関連するイベントをログに記録します。mongodは、これらのログ操作の一環として PII を公開する可能性があります。--redactClientLogDataとともに実行されているmongodは、ログに出力される前にこれらのイベントに付随するメッセージをすべて除き、効果的に PII を排除します。ログ イベントに関連するデータが不足しているため、
--redactClientLogDataで実行されているmongodの診断はより困難になる可能性があります。 がログ出力に与える影響の例については、--redactClientLogDataプロセス ログ のマニュアル ページを参照してください。実行中の
mongodでこの設定を構成するには、setParameterをredactClientLogDataパラメーターとともに使用します。
--setParameter <options>「 自己管理型配置の MongoDB Server パラメーター 」で説明されている MongoDB パラメーターの 1 つを指定します。 複数の
setParameterフィールドを指定できます。
--shutdown--shutdownオプションにより、mongodプロセスが正常かつ安全に終了します。このオプションを使用してmongodを呼び出す場合は、--dbpathオプションを直接、または構成ファイルと--configオプションを使用して設定する必要があります。--shutdownオプションは Linux システムでのみ使用できます。シャットダウンするその他の方法については、「
mongodプロセスの停止」も参照してください。
--syslogすべてのログ出力を標準出力やログファイル(
--logpath)ではなく、ホストの syslog システムに送信します。--syslogオプションは Windows ではサポートされていません。警告
syslogデーモンは、MongoDB によりメッセージが発行されたときではなく、メッセージがログに記録されたときにタイムスタンプを生成します。 そのため、特にシステムの負荷が高い場合に、ログ エントリのタイムスタンプに誤りが生じる可能性があります。 タイムスタンプが正確になるように、実稼働システムでは--logpathオプションを使用することをお勧めします。MongoDB は、
syslogへのログ メッセージにコンポーネントを含めます。... ACCESS [repl writer worker 5] Unsupported modification to roles collection ... 
--syslogFacility <string>デフォルト: user
メッセージを syslog に記録するときに使用するファシリティ レベルを指定します。 指定する値は、使用しているオペレーティング システムの syslog の実装でサポートされている必要があります。 このオプションを使用するには、
--syslogオプションを有効にする必要があります。
--timeStampFormat <string>Default: iso8601-local
ログ メッセージのタイムスタンプの時間形式。次のいずれかの値を指定。
値説明iso8601-utcISO-8601 形式のUTC(Coordinated Universal Time、協定世界時)でタイムスタンプを表示します。たとえば、UNIXエポック開始時のニューヨークの場合、以下のようになります。
1970-01-01T00:00:00.000Ziso8601-localタイムスタンプを ISO-8601 形式のローカルタイムで表示します。たとえば、UNIXエポック開始時のニューヨークの場合、以下のようになります。
1969-12-31T19:00:00.000-05:00注意
--timeStampFormatでのctimeのサポートは終了しました。ctime形式の日付の例は、Wed Dec 31 18:17:54.811です。
--timeZoneInfo <path>タイムゾーン データベースをロードするフルパス。 このオプションが指定されていない場合、MongoDB は組み込みのタイムゾーンデータベースを使用します。
Linux パッケージと macOS パッケージに含まれる構成ファイルでは、タイムゾーン データベース パスがデフォルトで
/usr/share/zoneinfoに設定されています。組み込みのタイム ゾーン データベースは、 Olson および IANA のタイムゾーンデータベースのコピーです。タイム ゾーン データベースは MongoDB のリリース時にアップデートされますが、タイム ゾーン データベースと MongoDB のリリース サイクルは異なります。タイム ゾーン データベースの最新リリースは、当社の ダウンロードサイト から入手できます。
wget https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip unzip timezonedb-latest.zip mongod --timeZoneInfo timezonedb-2017b/ 警告
MongoDBはサードパーティのtimelibライブラリを使用して、タイムゾーン間の正確な変換を提供します。最近の更新により、
timelibはMongoDBの古いバージョンで不正確なタイムゾーン変換を作成する可能性があります。5.0 より前のバージョンのMongoDBでタイムゾーンデータベースに明示的にリンクするには、 タイムゾーンデータベースをダウンロードし、
timeZoneInfoパラメータを使用します。
--transitionToAuthmongodが配置内の他のmongodインスタンスおよびmongosインスタンスとの間で、認証済みおよび非認証の接続を受け入れ、作成できるようにします。また、レプリカセットまたはシャーディングされたクラスターを、認証なしの構成から内部認証へローリング移行を実行するために使用されます。--keyFile. などの内部認証メカニズムを指定する必要があります。たとえば、キーファイルを内部認証に使用する場合、
mongodは、一致するキーファイルを使用して、配置内の任意のmongodまたはmongosとの認証済み接続を作成します。セキュリティ メカニズムが一致しない場合、mongodは代わりに認証されていない接続を利用します。--transitionToAuthで実行されているmongodでは、ユーザー アクセス制御は強制されません。 ユーザーは、アクセス制御チェックなしで配置に接続し、読み取り操作、書込み操作、および管理操作を実行できます。注意
--transitionToAuthを使用せずに内部認証で動作するmongodでは、 クライアントによる接続にユーザー アクセス制御を使用する必要があります。--transitionToAuthなしでmongodを再起動する前に、適切なユーザーを使用してmongodに接続するよう、クライアントを更新します。
--unixSocketPrefix <path>デフォルト: /tmp
UNIX ソケットのパス。
--unixSocketPrefixは Unix ベースのシステムにのみ適用されます。このオプションに値がない場合、
mongodプロセスは/tmpをプレフィックスとするソケットを作成します。MongoDB は、次のいずれかが当てはまらない限り、UNIX ソケットを作成して listen します。net.unixDomainSocket.enabledとはfalse--nounixsocketが設定されているnet.bindIpが設定されていないnet.bindIpがlocalhostまたはそれに関連付けられた IP アドレスを指定していない
--verbose, -v標準出力またはログ ファイルに返される内部レポートの量を増やします。
-vの形式でオプションを複数回含めることで、冗長度を高められます(例:-vvvvv)。注意
MongoDB バージョン 4.2 以降では、ログ メッセージにデバッグの冗長レベル(1 ~ 5)が含まれるようになりました。たとえば、冗長レベルが 2 の場合、MongoDB は
D2をログに出力します。以前のバージョンでは、MongoDB のログ メッセージではデバッグ レベルにDしか指定されていませんでした。
LDAP 認証または承認のオプション
注意
MongoDB 8.0以降、 LDAP認証と認可は非推奨です。 LDAP は使用可能であり、 MongoDB 8のサポート期間中に変更されずに動作し続けます。 LDAP は将来のメジャー リリースで削除される予定です。
詳細については、「LDAP の非推奨」を参照してください。
--ldapServers <host1>:<port>,<host2>:<port>,...,<hostN>:<port>MongoDB Enterprise でのみ使用できます。
mongodがユーザーを認証したり、特定のデータベースでユーザーが実行できるアクションを決定したりするための LDAP サーバーです。指定した LDAP サーバーにレプリケーションされたインスタンスがある場合は、各複製サーバーのホストとポートをカンマ区切りのリストで指定できます。LDAP インフラストラクチャが LDAPディレクトリを複数の LDAP サーバーに分割する場合は、1 つ の LDAPサーバーまたはその複製されたインスタンスのいずれかを
--ldapServersに指定します。MongoDB は、RFC 4511 4.1.10 で定義されている以下の LDAP 紹介をサポートしています。インフラストラクチャ内のすべての LDAPサーバーを一覧表示するために、--ldapServersは使用しないでください。この設定は、
setParameterを使用して実行中のmongodで設定できます。設定されていない場合、
mongodは LDAP 認証または承認を使用できません。
--ldapValidateLDAPServerConfig <boolean>MongoDB Enterprise で利用可能です。
mongodインスタンスが起動時にLDAP server(s)の可用性を確認するかどうかを決定するフラグです。trueの場合、mongodインスタンスは可用性チェックを実行し、LDAP サーバーが使用可能な場合にのみ起動を続行します。falseの場合、mongodインスタンスは可用性チェックをスキップします。つまり、LDAP サーバーが利用できない場合でもインスタンスは起動します。
--ldapQueryUser <string>MongoDB Enterprise でのみ使用できます。
LDAP サーバーに接続するとき、または LDAP サーバーでクエリを実行するときに、
mongodがバインドする ID です。次のいずれかに当てはまる場合にのみ必要です。
LDAP 承認を使用している
username transformationには LDAP クエリを使用します。LDAP サーバーが匿名バインドを許可していない
--ldapQueryPasswordでは--ldapQueryUserを使用する必要があります設定されていない場合、
mongodは LDAP サーバーへのバインドを試行しません。この設定は、
setParameterを使用して実行中のmongodで設定できます。注意
Windows MongoDB 配置では、
--ldapBindWithOSDefaults--ldapQueryUser--ldapQueryPasswordと の代わりに使用できます。--ldapQueryUserと--ldapBindWithOSDefaultsの両方を同時に指定することはできません。
MongoDB Enterprise でのみ使用できます。
--ldapQueryUserを使用するときに LDAP サーバーにバインドするために使用されるパスワード。 --ldapQueryUser では--ldapQueryPasswordを使用する必要があります
設定しない場合、 mongod は LDAP サーバーへのバインドを試行しません。
この設定は実行中のmongodでsetParameterを使用して構成できます。
ldapQueryPassword setParameter コマンドは、文字列または文字列の配列のいずれかを受け付けます。ldapQueryPassword が配列に設定されている場合、MongoDB は成功するまで各パスワードを順番に試行します。パスワード配列を使用して、LDAP アカウントのパスワードをダウンタイムなしでロールオーバーします。
注意
Windows MongoDB 配置では、--ldapBindWithOSDefaults--ldapQueryUser--ldapQueryPassword と の代わりに使用できます。--ldapQueryPasswordと--ldapBindWithOSDefaultsの両方を同時に指定することはできません。
--ldapBindWithOSDefaults <bool>デフォルト: false
Windows プラットフォームの MongoDB Enterprise でのみ利用可能です。
LDAP サーバーに接続するときに、
mongodが Windows のログイン資格情報を使用して認証またはバインドできるようにします。次の場合にのみ必要です。
LDAP 承認を使用している
username transformationには LDAP クエリを使用します。LDAP サーバーが匿名バインドを許可していない
--ldapBindWithOSDefaults--ldapQueryUserと を置き換えるには、--ldapQueryPasswordを使用します。
--ldapBindMethod <string>デフォルト: simple
MongoDB Enterprise でのみ使用できます。
mongodが LDAP サーバーへの認証に使用する方法。 LDAP サーバーに接続するには、--ldapQueryUserと--ldapQueryPasswordとともに使用します。--ldapBindMethodは次の値をサポートします。simple-mongodは簡易認証を使用するsasl-mongodは認証に SASL プロトコルを使用する
saslを指定した場合は、--ldapBindSaslMechanismsを使用して使用可能な SASL メカニズムを構成できます。mongodはデフォルトでDIGEST-MD5メカニズムを使用します。
--ldapBindSaslMechanisms <string>デフォルト: DIGEST-MD5
MongoDB Enterprise でのみ使用できます。
LDAP サーバーへの認証時に
mongodが使用できる SASL メカニズムのカンマ区切りリストです。mongodと LDAP サーバーは少なくとも 1 つのメカニズムに同意する必要があります。mongodは、実行時にホスト マシンにインストールされている SASL メカニズム ライブラリを動的に読み込みます。mongodホストとリモート LDAP サーバー ホストの両方で、選択した SASL メカニズムに適切なライブラリをインストールして設定します。オペレーティング システムには、デフォルトで特定の SASL ライブラリが含まれている場合があります。インストールと構成のガイダンスについては、各 SASL メカニズムに関連するドキュメントを参照してください。自己管理型配置で Kerberos 認証で使用するために
GSSAPISASL メカニズムを使用する場合は、mongodホスト マシンで次の点を確認してください。LinuxKRB5_CLIENT_KTNAME環境変数は、ホスト マシン用のクライアントLinuxキータブ ファイルの名前に解決されます。Kerberos 環境変数の詳細については、 Kerberos のドキュメント を参照してください。クライアント キータブには、LDAP サーバーに接続して LDAP クエリを実行するときに
mongodが使用するユーザー プリンシパルが含まれています。
Windows- Active Directoryサーバーに接続する場合、 Windows Kerberos構成により、ユーザーがシステムにログオンした際に Ticket-Granting-Ticket が自動生成されます。
--ldapBindWithOSDefaultsをtrueに設定すると、mongodが Active Directoryサーバーに接続してクエリを実行するときに生成された認証情報を使用できるようになります。 
このオプションを使用するには
--ldapBindMethodをsaslに設定します。注意
全 SASL メカニズムを網羅したリストについては、IANA のリスト を参照してください。サービスと互換性のある SASL メカニズムを特定するには、LDAP または Active Directory サービスのドキュメントを参照してください。
MongoDB は SASL メカニズム ライブラリのソースではなく、MongoDB ドキュメントも特定の SASL メカニズムのインストールや設定をするための決定的な情報源ではありません。ドキュメントとサポートについては、SASL メカニズム ライブラリのベンダーまたは管理者に問い合わせてください。
SASLの詳細については、次のリソースを参照してください。
Linuxの場合は、 Cyrus SASL のドキュメント を参照してください。
Windowsの場合は、Windows SASL ドキュメントを参照してください。
--ldapTransportSecurity <string>デフォルト: tls
MongoDB Enterprise でのみ使用できます。
デフォルトでは、
mongodはLDAP サーバーへの TLS/SSL で保護された接続を作成します。Linux配置の場合、
/etc/openldap/ldap.confファイルで適切な TLS オプションを構成する必要があります。オペレーティング システムのパッケージマネージャーは、libldap依存関係を介してMongoDB Enterpriseインストールの一部としてこのファイルを作成します。詳しくは、ldap.conf OpenLDAP ドキュメント のTLS Optionsのドキュメントを参照してください。Windows 配置の場合、LDAP サーバー CA 証明書を Windows 証明書管理ツールに追加する必要があります。ツールの正確な名前と機能は、オペレーティング システムのバージョンによって異なる場合があります。証明書管理の詳細については、ご使用の Windows バージョンのドキュメントを参照してください。
mongodと LDAP サーバー間の TLS/SSL を無効にするには、--ldapTransportSecurityをnoneに設定します。警告
--ldapTransportSecurityをnoneに設定すると、mongodと LDAP サーバー間でプレーンテキスト情報と場合によっては認証情報が送信されます。
--ldapTimeoutMS <int>デフォルト: 10000
MongoDB Enterprise でのみ使用できます。
LDAP サーバーが要求に応答するまで
mongodが待機する時間(ミリ秒)です。--ldapTimeoutMSの値を増やすと、障害の原因が接続タイムアウトである場合、MongoDB サーバーと LDAP サーバー間の接続が失敗しなくなる可能性があります。--ldapTimeoutMSの値を小さくすると、MongoDB が LDAP サーバーからの応答を待機する時間が短縮されます。この設定は、
setParameterを使用して実行中のmongodで設定できます。
--ldapRetryCount <int>バージョン 6.1 で追加。
デフォルト: 0
MongoDB Enterprise でのみ使用できます。
ネットワーク エラーが発生した場合にサーバー LDAP マネージャーによって再試行される操作の回数。
--ldapUserToDNMapping <string>MongoDB Enterprise でのみ使用できます。
認証用に
mongodに指定されたユーザー名を LDAP 識別名(DN)にマッピングします。 次のシナリオではユーザー名を LDAP DN に変換するために--ldapUserToDNMappingを使用する必要がある場合があります。LDAP のシンプル バインドにより LDAP 認証を実行し、ユーザーが MongoDB に対し、完全な LDAP 識別名ではないユーザー名で認証されます。
DN を必要とする
LDAP authorization query templateを使用するx.509 や kerberos などのさまざまな認証メカニズムを使用して Mongo DB に認証するクライアントのユーザー名を、認証用の完全な LDAP DN に変換します。
--ldapUserToDNMappingは、順序付けられたドキュメントの配列を表す引用符で囲まれた JSON 文字列を要求しています。各ドキュメントには、正規表現のmatchと受信ユーザー名の変換に使用されるsubstitutionまたはldapQueryのテンプレートが含まれています。配列内の各ドキュメントの形式は次のとおりです。
{ match: "<regex>" substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>" } フィールド説明例match指定されたユーザー名と照合するための ECMAScript 形式の正規表現(regex)です。かっこで囲まれた各セクションは、
substitutionまたはldapQueryで使用される正規表現キャプチャ グループを表します。"(.+)ENGINEERING""(.+)DBA"substitutionmatch正規表現に一致する認証名を LDAP DN に変換する LDAP識別名(DN)形式のテンプレート。中括弧で囲まれた各数値は、match正規表現によって認証ユーザー名から抽出された、対応する正規表現キャプチャ グループに置き換えられます。置換の結果は、 RFC 4514 に準拠した、エスケープされた文字列である必要があります。
"cn={0},ou=engineering, dc=example,dc=com"ldapQuery"ou=engineering,dc=example, dc=com??one?(user={0})"注意
配列内の各ドキュメントに対して、
substitutionまたはldapQueryのいずれかを使用する必要があります。同じ文書で両方を指定することはできません。認証または承認を実行する際に、
mongodは配列内の各ドキュメントを所定の順序で順番に処理し、認証ユーザー名をmatchフィルターと照合します。一致が見つかった場合、mongodは変換を適用し、その出力をユーザーの認証に使用します。mongodは配列内の残りのドキュメントはチェックしません。指定されたドキュメントが指定された認証名と一致しない場合、
mongodはドキュメントのリストをさらにたどって新たに一致するものを探します。どのドキュメントにも一致するものが見つからない場合、またはドキュメントで説明されている変換が失敗した場合、mongodはエラーを返します。mongodまた、 は LDAP サーバーとのネットワーク接続や認証に失敗して変換の 1 つを評価できない場合にもエラーを返します。mongodは接続リクエストを拒否し、配列内の残りのドキュメントをチェックしません。MongoDB 5.0 以降、マッピング ドキュメントの代わりに
--ldapUserToDNMappingは空のstring""または空の配列[ ]を受け入れます。 空の string または空の配列を--ldapUserToDNMappingに指定すると、MongoDB は認証されたユーザー名を LDAP DN としてマッピングします。 以前のバージョンでは、空のマッピング ドキュメントを提供するとマッピングが失敗していました。例
次に、2 つの変換ドキュメントを示しています。最初のドキュメントは
@ENGINEERINGで終わる任意の文字列と一致し、サフィックスの前にあるすべてを正規表現キャプチャ グループに配置します。2 番目のドキュメントは、@DBAで終わる任意の文字列と一致し、サフィックスの前にあるすべてを正規表現キャプチャ グループに配置します。重要
配列を文字列として --ldapUserToDNMapping に渡す必要があります。
"[ { match: "(.+)@ENGINEERING.EXAMPLE.COM", substitution: "cn={0},ou=engineering,dc=example,dc=com" }, { match: "(.+)@DBA.EXAMPLE.COM", ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})" } ]" ユーザー名
alice@ENGINEERING.EXAMPLE.COMのユーザーが最初のドキュメントと一致します。正規表現キャプチャ グループ{0}は文字列aliceに対応します。結果の出力は DN"cn=alice,ou=engineering,dc=example,dc=com"です。ユーザー名
bob@DBA.EXAMPLE.COMのユーザーが 2 番目のドキュメントと一致します。正規表現キャプチャ グループ{0}は文字列bobに対応します。結果の出力は、LDAP クエリの"ou=dba,dc=example,dc=com??one?(user=bob)"です。mongodは LDAP サーバーに対してこのクエリを実行し、結果として"cn=bob,ou=dba,dc=example,dc=com"を返します。--ldapUserToDNMappingが設定されていない場合、mongodは、LDAP サーバーに対してユーザーを認証または承認しようとする際に、ユーザー名を変換しません。この設定は、実行中の
mongodでsetParameterデータベースコマンドを使用して設定できます。
--ldapAuthzQueryTemplate <string>MongoDB Enterprise でのみ使用できます。
RFC4515 と RFC4516 に準拠して形式された相対的 LDAP クエリURL で、認証されたユーザーが属する LDAP グループを取得するために
mongodが実行します。クエリは、--ldapServersで指定されたホストに対して相対的です。URL では、次の置換トークンを使用できます。
置換トークン説明{USER}認証されたユーザー名を置き換えるか、 が指定されている場合は
transformedusername mappingユーザー名を置き換えます。{PROVIDED_USER}認証または
LDAP transformationの前に、指定されたユーザー名を置き換えます。クエリ URL を作成する際は、LDAP パラメーターの順序が次の RFC4516 に準拠しているようにします。
[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ] クエリに属性が含まれている場合、
mongodはクエリが検索するのはこのエンティティがノードである DN であると想定します。クエリに属性が含まれていない場合、
mongodはクエリが検索するのはユーザーがメンバーであるすべてのエンティティであると想定します。クエリによって返される各 LDAP DN に対して、
mongodは承認されたユーザーにadminデータベース上の対応するロールを割り当てます。adminデータベースのロールが DN と完全に一致する場合、mongodはそのロールに割り当てられたロールと権限をユーザーに付与します。ロール作成の詳細については、db.createRole()メソッドを参照してください。例
この LDAP クエリは、LDAP ユーザー オブジェクトの
memberOf属性にリストされているすべてのグループを返します。"{USER}?memberOf?base" LDAP 構成に、ユーザー スキーマの一部として
memberOf属性が含まれていない場合、グループ メンバーシップのレポート作成用に別の属性がある場合、属性を通じてグループ メンバーシップを追跡していない場合があります。クエリは、独自の LDAP 設定に基づいて設定します。設定されていない場合、
mongodは LDAP を使用してユーザーを認証できません。この設定は、実行中の
mongodでsetParameterデータベースコマンドを使用して設定できます。
ストレージのオプション
--storageEngine stringデフォルト:
wiredTigermongodデータベースの ストレージ エンジンを指定します。使用可能な値は次のとおりです。値説明wiredTigerWiredTiger ストレージ エンジン を指定します。
inMemory自己管理型配置の インメモリ ストレージ エンジン を指定します。
MongoDB Enterprise でのみ使用できます。
で指定されたもの以外のストレージエンジンによって生成されたデータファイルを含む
--dbpath--storageEngineを使用してmongodを起動しようとすると、mongodは起動しません。
--dbpath <path>デフォルト: Linux と macOS では
/data/db、Windows では\data\dbmongodインスタンスがデータをストアするディレクトリです。MongoDB のパッケージ マネージャー インストールに含まれるデフォルトの構成ファイルを使用する場合、対応する
storage.dbPath設定では別のデフォルトが使用されます。--dbpath内のファイルは、--storageEngineで指定されたストレージ エンジンに対応している必要があります。 データファイルが--storageEngineに対応していない場合、mongodは起動しません。
--directoryperdb各データベースのデータを保存するには、個別のディレクトリを使用します。 ディレクトリは
--dbpathディレクトリの下にあり、各サブディレクトリ名はデータベース名に対応しています。インメモリ storage engine を使用する
mongodインスタンスでは利用できません。MongoDB 5.0以降 、
--directoryperdbが有効になっている場合にデータベース内の最終コレクションを削除すると(またはデータベース自体を削除すると)、そのデータベースの新しく空になったサブディレクトリが削除されます。既存の配置の
--directoryperdbオプションを変更する方法は以下の通りです。スタンドアロン インスタンスの場合:
既存の
mongodインスタンスでmongodumpを使用してバックアップを生成します。mongodインスタンスを停止します。--directoryperdb値を追加し、新しいデータディレクトリを構成するmongodインスタンスを再起動します。mongorestoreを使用して新しいデータディレクトリを作成します。
レプリカセットの場合:
セカンダリ ノードを停止します。
--directoryperdb値を追加し、そしてセカンダリ ノードに新しいデータ ディレクトリを設定します。そのセカンダリを再起動します。
最初の同期を使用して新しいデータディレクトリを作成します。
残りのセカンダリも同じ方法で更新します。
プライマリを降格させ、降格させたノードを同様に更新します。
--syncdelay <value>デフォルト: 60
MongoDB がデータをデータファイルにフラッシュするまでの時間を制御します。
この値は本番システムでは設定しないでください。ほとんどすべての状況において、デフォルト設定を使用するべきです。
mongodプロセスはデータをジャーナルにすばやく書込み、データファイルには遅延して書き込みます。--syncdelayはジャーナリングには影響しませんが、--syncdelayが0に設定されると、ジャーナルにより利用可能なディスクスペースが最終的にすべて消費されます。インメモリ storage engine を使用する
mongodインスタンスでは利用できません。永続的なデータを提供するために、 WiredTigerはチェックポイントを使用します。 詳細については、「ジャーナリングと WiredTiger ストレージ エンジン 」を参照してください。
--upgrade必要に応じて、
--dbpathで指定されたファイルのオンディスク データ 形式を最新バージョンにアップグレードします。このオプションは、データファイルが古い形式の場合の
mongodの操作にのみ影響します。ほとんどの場合、この値を設定しない方が、アップグレードプロセスを最大限にコントロールできます。アップグレード プロセスの詳細については、MongoDB リリースノートを参照してください。
--repairmongodインスタンスのすべてのデータベースに対して修復ルーチンを実行します。MongoDB 5.0 以降:
修復操作では、コレクションを検証して不整合を見つけ、可能であれば修正するため、インデックスの再構築を回避できます。
コレクションのデータファイルがサルベージされた場合、または検証ステップで修正できない不整合がコレクションにある場合は、すべてのインデックスが再構築されます。
Tip
ジャーナリングを有効にして実行している場合、サーバーはジャーナル ファイルを使用してデータファイルを自動的にクリーンな状態に復元できるため、修復を実行する必要はほとんどありません。ただし、ディスク レベルのデータ破損から回復する必要がある場合は、修復を実行する必要があるかもしれません。
警告
他に選択肢がない場合にのみ、
mongod --repairを使用してください。 この操作により、修復プロセス中に破損したデータは削除され、保存はされません。レプリカセット ノードに対して
--repairを実行しないでください。レプリカセット ノードを修復する際に、データの完全なコピー(最近のバックアップやレプリカセットの完全なノードなど)が使用可能な場合は、代わりにその完全なコピーから復元します。 詳しくは「自己管理型レプリカセットのノードの再同期 」を参照してください。
レプリカセット ノードに対して
mongod --repairを実行することを選択し、その操作によってデータまたはメタデータが変更される場合でも、ノードをレプリカセットに再び参加させるには、完全再同期を実行する必要があります。
何らかの理由で修復が完了しなかった場合は、
--repairオプションを使用してインスタンスを再起動する必要があります。
--journalCommitInterval <value>デフォルト: 100
mongodプロセスがジャーナリング操作の間に許容する最大時間(ミリ秒単位)。値の範囲は 1 ミリ秒から 500 ミリ秒です。値を小さくすると、ジャーナルの持続性は向上しますが、ディスクのパフォーマンスは低下します。WiredTiger では、デフォルトのジャーナル コミット間隔は 100 ミリ秒です。
j:trueを含む、または意味する書込み (write) によって、ジャーナルが即座に同期されます。同期の頻度に影響する詳細とその他の条件については、「ジャーナリング プロセス」を参照してください。インメモリ storage engine を使用する
mongodインスタンスでは利用できません。
WiredTiger のオプション
--wiredTigerCacheSizeGB <float>WiredTiger がすべてのデータに使用する内部キャッシュの最大サイズを定義します。インデックス構築によって消費されるメモリ(
maxIndexBuildMemoryUsageMegabytesを参照)は、WiredTiger キャッシュ メモリとは別です。WiredTiger の内部キャッシュサイズをデフォルト値より大きくしないようにしてください。ユースケースでその必要がある場合は、 を使用して、使用可能なメモリの最大
--wiredTigerCacheSizePct80% のパーセンテージを指定できます。値の範囲は0.25GBから10000GBです。デフォルトの WiredTiger 内部キャッシュ サイズは、次のいずれか大きい方です。
(RAM-1 GB)の50%、または
256 MB.
たとえば、合計が4 GB の RAM を備えたシステムでは、WiredTiger キャッシュは1.5 GB の RAM を使用します(
0.5 * (4 GB - 1 GB) = 1.5 GB)。 逆に、合計が1.25のシステムでは GBのRAM WiredTigerは 256 MB をWiredTigerキャッシュに割り当てます。これはRAMの合計の半分以上で 1 ギガバイト(0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB)を引いた値であるためです。注意
コンテナで実行している場合など、場合によっては、データベースのメモリが制約され、システムメモリの合計よりも少なくなることがあります。このような場合、システム メモリの合計ではなく、このメモリ上限が、使用可能な最大 RAM として使用されます。
メモリ制限を確認するには、
hostInfo.system.memLimitMBを参照してください。WiredTiger を使用する MongoDB では WiredTiger 内部キャッシュとファイルシステム キャッシュの両方を利用します。
ファイルシステム キャッシュを使用すると、MongoDB は WiredTiger キャッシュや他のプロセスによって使用されていないすべての空きメモリを自動的に使用します。
注意
--wiredTigerCacheSizeGBは WiredTiger の内部キャッシュのサイズを制限します。 オペレーティング システムは、使用可能な空きメモリをファイルシステム キャッシュに使用するため、圧縮されたMongoDBデータファイルをメモリに保持できます。 さらに、オペレーティング システムは、空き RAM を使用して、ファイル システム ブロックとファイル システム キャッシュをバッファリングします。RAM の利用者増加に対応するためには、WiredTiger の内部キャッシュ サイズを減らす必要がある場合があります。
デフォルトのWiredTiger内部キャッシュサイズの値は、マシンごとに 1 つの
mongodインスタンスがあることを前提としています。1 台のマシンに複数のMongoDBインスタンスが存在する場合は、設定値を減らして他のmongodインスタンスに対応できるようにしてください。システムで使用可能なすべての RAM にアクセス でき ない
mongodコンテナ(たとえば、lxccgroups、--wiredTigerCacheSizeGB、Docker など)で を実行する場合は、 を 値に設定する必要があります。コンテナで使用可能な RAM の量よりも小さい。正確な量は、コンテナ内で実行中の他のプロセスによって異なります。 詳しくはmemLimitMBを参照してください。--wiredTigerCacheSizeGBまたは--wiredTigerCacheSizePctのいずれか 1 つだけを提供できます。
--wiredTigerCacheSizePct <float>キャッシュに割り当てるメモリの最大量を物理RAMの割合で定義します。インデックス構築が消費するメモリ(
maxIndexBuildMemoryUsageMegabytesを参照)は、 WiredTigerキャッシュメモリとは別です。使用可能なメモリの最大 80% の割合を指定できます。値の範囲は
0.25GBから10000GBです。デフォルトの WiredTiger 内部キャッシュ サイズは、次のいずれか大きい方です。
(RAM-1 GB)の50%、または
256 MB.
たとえば、合計が4 GB の RAM を備えたシステムでは、WiredTiger キャッシュは1.5 GB の RAM を使用します(
0.5 * (4 GB - 1 GB) = 1.5 GB)。 逆に、合計が1.25のシステムでは GBのRAM WiredTigerは 256 MB をWiredTigerキャッシュに割り当てます。これはRAMの合計の半分以上で 1 ギガバイト(0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB)を引いた値であるためです。注意
コンテナで実行している場合など、場合によっては、データベースのメモリが制約され、システムメモリの合計よりも少なくなることがあります。このような場合、システム メモリの合計ではなく、このメモリ上限が、使用可能な最大 RAM として使用されます。
メモリ制限を確認するには、
hostInfo.system.memLimitMBを参照してください。WiredTiger を使用する MongoDB では WiredTiger 内部キャッシュとファイルシステム キャッシュの両方を利用します。
ファイルシステム キャッシュを使用すると、MongoDB は WiredTiger キャッシュや他のプロセスによって使用されていないすべての空きメモリを自動的に使用します。
注意
--wiredTigerCacheSizePctは WiredTiger の内部キャッシュのサイズを制限します。 オペレーティング システムは、使用可能な空きメモリをファイルシステム キャッシュに使用するため、圧縮されたMongoDBデータファイルをメモリに保持できます。 さらに、オペレーティング システムは、空き RAM を使用して、ファイル システム ブロックとファイル システム キャッシュをバッファリングします。RAM の利用者増加に対応するためには、WiredTiger の内部キャッシュ サイズを減らす必要がある場合があります。
デフォルトのWiredTiger内部キャッシュサイズの値は、マシンごとに 1 つの
mongodインスタンスがあることを前提としています。1 台のマシンに複数のMongoDBインスタンスが存在する場合は、設定値を減らして他のmongodインスタンスに対応できるようにしてください。システムで使用可能なすべての RAM にアクセス でき ない
mongodコンテナ(たとえば、lxccgroups、--wiredTigerCacheSizePct、Docker など)で を実行する場合は、 を 値に設定する必要があります。コンテナで使用可能な RAM の量よりも小さい。正確な量は、コンテナ内で実行中の他のプロセスによって異なります。 詳しくはmemLimitMBを参照してください。--wiredTigerCacheSizePctまたは--wiredTigerCacheSizeGBのいずれか 1 つだけを提供できます。
--wiredTigerJournalCompressor <compressor>デフォルト: snappy
WiredTiger ジャーナリング データを圧縮するのに使用する圧縮タイプを指定します。
利用可能なコンプレッサーは次のとおりです。
--wiredTigerDirectoryForIndexes--wiredTigerDirectoryForIndexesを使用してmongodを起動すると、mongodはインデックスとコレクションをデータの下の個別のサブディレクトリに保存します(つまり、--dbpath)ディレクトリ。 具体的には、mongodはインデックスをindexという名前のサブディレクトリに保存し、コレクション データをcollectionという名前のサブディレクトリに保存します。シンボリック リンクを使用すると、インデックスに別の場所を指定できます。具体的には、
mongodインスタンスが実行されていないときに、indexサブディレクトリを宛先に移動し、データディレクトリの下に新しい宛先へのindexという名前のシンボリック リンクを作成します。
--wiredTigerCollectionBlockCompressor <compressor>デフォルト: snappy
コレクション データのデフォルトの圧縮率を指定します。これは、コレクションを作成する際、コレクションごとに上書きできます。
利用可能なコンプレッサーは次のとおりです。
--wiredTigerCollectionBlockCompressorは作成されたすべてのコレクションに影響します。既存の MongoDB デプロイで--wiredTigerCollectionBlockCompressorの値を変更すると、新しいコレクションのすべてで指定されたコンプレッサーが使用されます。既存のコレクションは、コレクションの作成時に指定したコンプレッサー、またはその時点でのデフォルトのコンプレッサーを引き続き使用します。
--wiredTigerIndexPrefixCompression <boolean>デフォルト: true
インデックスデータの接頭辞圧縮を有効または無効にします。
true--wiredTigerIndexPrefixCompressionインデックス データの 接頭辞圧縮 を有効にするにはfalseに指定し、インデックス データの接頭辞圧縮を無効にするには を指定します。--wiredTigerIndexPrefixCompressionの設定は作成されたすべてのインデックスに影響します。 既存の MongoDB デプロイで--wiredTigerIndexPrefixCompressionの値を変更すると、すべての新しいインデックスで接頭辞圧縮が使用されます。 既存のインデックスは影響を受けません。
レプリケーションのオプション
--replSet <setname>レプリケーションを構成します。このセットの引数としてレプリカセット名を指定します。レプリカセット内のすべてのホストは同じセット名を持つ必要があります。
アプリケーションが複数のレプリカセットに接続する場合、それぞれのセットには異なる名前を付ける必要があります。一部のドライバーは、レプリカセットの名前で接続をグループ化します。
--oplogSize <value>oplogの最大サイズ(メガバイト単位)。
oplogSize設定では、ディスク上のサイズではなく、oplog の非圧縮サイズが構成されます。注意
oplog は、
majority commit pointが削除されるのを回避するために、設定されたサイズ制限を超えて大きくなることがあります。mongodプロセスのデフォルト設定では、使用可能な最大スペース量に基づいて oplog が作成されます。64 ビット システムの場合、oplog は通常、使用可能なディスク領域の 5% を占めます。mongodにより oplog が初めて作成された後は、--oplogSizeオプションを変更しても oplog のサイズには影響しません。mongodを開始した後に oplog の最小保持期間を変更するには、replSetResizeOplogを使用します。replSetResizeOplogを使用すると、mongodプロセスを再起動せずに oplog のサイズを動的に変更できます。replSetResizeOplogを使用して行った変更を再起動後も保持するには、--oplogSizeの値をアップデートします。詳細については、oplog サイズを参照してください。
--oplogMinRetentionHours <value>oplog エントリーを保持する最小時間数を指定します。10 進数値は時間単位を表します。 たとえば、
1.5の値は 1 時間と 30 分を表します。値は
0以上である必要があります。値が0の場合、構成された最大 oplog サイズを維持するために、mongodは最も古いエントリから oplog を切り捨てる必要があることを示します。デフォルトは
0です。--oplogMinRetentionHoursを指定して開始されたmongodは次の場合にのみ oplog エントリを削除します。oplog が設定された最大 oplog サイズに達し、かつ
oplog エントリーは、ホスト システム クロックに基づいて構成された時間数よりも以前のものです。
最小の oplog 保持期間が設定されている場合、
mongodは次のように動作します。oplog は、設定された時間数だけ oplog エントリーを保持できるように、制約なしに拡張されます。そのため、書き込みが大量で保存期間が長い組み合わせにした場合は、システム ディスク容量が減少または枯渇する可能性があります。
oplog が最大サイズを超えると、oplog が最大サイズに戻った、または最大サイズが小さく設定された場合にも、
mongodはそのディスク領域を保持し続ける可能性があります。「oplog サイズを縮小してもすぐにディスク領域が戻らない」を参照してください。mongodは、oplog エントリの保持を強制するときに、システム ウォール クロックと oplog エントリ作成ウォール クロックの時間を比較します。クラスター コンポーネント間のクロック ドリフトにより、予期しない oplog 保持動作が発生する可能性があります。クラスター ノード間のクロック同期の詳細については、「クロック同期」を参照してください。
mongodを開始した後に oplog の最小保持期間を変更するには、replSetResizeOplogを使用します。replSetResizeOplogを使用すると、mongodプロセスを再起動せずに oplog のサイズを動的に変更できます。replSetResizeOplogを使用して行った変更を再起動後も保持するには、--oplogMinRetentionHoursの値をアップデートします。
--enableMajorityReadConcernデフォルト: true
"majority"読み取り保証 (read concern) のサポートを設定します。MongoDB 5.0 以降、
--enableMajorityReadConcernは変更できず、常にtrueに設定されます。MongoDB の以前のバージョンでは、--enableMajorityReadConcernは構成可能でした。警告
3 ノードのプライマリセカンダリアービタ(PSA)アーキテクチャを使用している場合は、次の点を考慮してください。
セカンダリが使用できなくなったり遅延が発生したりすると、 書込み保証 (write concern
"majority"によってパフォーマンスの問題が発生することがあります。 こうした問題を軽減するためのアドバイスについては、「自己管理型 PSA レプリカセットのパフォーマンスの問題の軽減 」を参照してください。グローバル デフォルト
"majority"を使用しており、書込み保証 (write concern) が過半数のサイズより小さい場合、クエリは古い(完全には複製されていない)データを返すことがあります。
シャーディングされたクラスターのオプション
--configsvrコンフィギュレーションサーバーを起動する場合は必須です。
この
mongodインスタンスがシャーディングされたクラスターのコンフィギュレーションサーバーとして機能することを宣言します。 このオプションで実行すると、クライアント( 他のクラスター コンポーネント)では、configとadmin以外のデータベースにデータを書込むことができません。 このオプションを使用したmongodのデフォルト ポートは27019であり、デフォルトの--dbpathディレクトリは/data/configdbです(指定されていない場合)。重要
--configsvrを使用して MongoDB サーバーを起動する場合は、--replSetも指定する必要があります。非推奨のミラー化された
mongodインスタンスをコンフィギュレーションサーバー(SCCC)として使用することはサポートされなくなりました。レプリカセット コンフィギュレーションサーバー(CSRS)は、WiredTiger ストレージ エンジン を実行する必要があります。
--configsvrオプションはローカル oplog を作成します。--configsvrでは--shardsvrオプションは使用 しない でください。コンフィギュレーションサーバーはシャードサーバーにすることはできません。--configsvrskipShardingConfigurationChecksパラメーターとともに使用しないでください。つまり、メンテナンス操作のためにmongodをスタンドアロンとして一時的に起動する場合は、パラメーターskipShardingConfigurationChecksを含め、--configsvrを除外します。 メンテナンスが完了したら、skipShardingConfigurationChecksパラメータを削除し、--configsvrで再起動します。
--shardsvrシャード サーバーを起動する場合に必要です。
この
mongodインスタンスをシャーディングされたクラスター内のシャードとして設定します。これらのインスタンスのデフォルト ポートは27018です。重要
--shardsvrを使用して MongoDB サーバーを起動する場合は、--replSetも指定する必要があります。--shardsvrskipShardingConfigurationChecksパラメーターとともに使用しないでください。つまり、メンテナンス操作のためにmongodをスタンドアロンとして一時的に起動する場合は、パラメーターskipShardingConfigurationChecksを含め、--shardsvrを除外します。 メンテナンスが完了したら、skipShardingConfigurationChecksパラメータを削除し、--shardsvrで再起動します。
TLS のオプション
--tlsMode <mode>すべてのネットワーク接続に使用される TLS を有効にします。
--tlsModeオプションの引数には、以下のいずれかを指定できます。値説明disabledサーバーは TLS を使用しません。
allowTLSサーバー間の接続では TLS は使用されません。着信接続の場合、サーバーでは TLS と非 TLS のいずれも受け付けます。
preferTLSサーバー間の接続では TLS が使用されます。着信接続の場合、サーバーでは TLS と非 TLS のいずれも受け付けます。
requireTLSサーバーは TLS 暗号化接続のみを使用し、受け入れます。
--tlsCAFileまたはtls.CAFileが指定されておらず、X.509 認証を使用していない場合は、tlsUseSystemCAパラメータをtrueに設定する必要があります。これにより、MongoDB は TLS 対応サーバーに接続する際にシステム全体の CA 証明書ストアを使用します。X.509認証を使用する場合、
--tlsCertificateSelectorを使用しない限り、--tlsCAFileまたはtls.CAFileを指定する必要があります。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsCertificateKeyFile <filename>TLS 証明書とキーの両方を含む
.pemファイルを指定します。macOS または Windows では、PEM 鍵ファイルの代わりに、
--tlsCertificateSelectorオプションを使用してオペレーティング システムの安全な証明書ストアから証明書を指定できます。--tlsCertificateKeyFileオプションと--tlsCertificateSelectorオプションは相互に排他的です。指定できるのは 1 つだけです。Linux/BSD では、TLS/SSL が有効な場合は
--tlsCertificateKeyFileを指定する必要があります。Windows または macOS では、TLS/SSL が有効になっている場合に
--tlsCertificateKeyFileまたは--tlsCertificateSelectorのいずれかを指定する必要があります。重要
MongoDB では、Windows に限り、暗号化 PEM ファイルをサポートしません。暗号化された PEM ファイルに遭遇すると、
mongodは起動に失敗します。Windows 上で TLS 用の証明書を安全に保存し、使用するには、--tlsCertificateSelectorを使用します。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsCertificateKeyFilePassword <value>証明書鍵ファイル(
--tlsCertificateKeyFile)を復号化するためのパスワードを指定します。--tlsCertificateKeyFilePasswordオプションは、証明書鍵ファイルが暗号化されている場合にのみ使用します。いずれの場合も、mongodはすべてのログおよびレポート出力からパスワードを削除します。Linux/BSD で
--tlsCertificateKeyFilePasswordオプションを指定しない場合、PEM ファイル内の秘密キーが暗号化されていると、MongoDB はパスフレーズの入力を要求します。 「TLS/SSL 証明書のパスフレーズ」を参照してください。macOS で PEM ファイル内の秘密キーが暗号化されている場合、
--tlsCertificateKeyFilePasswordオプションを明示的に指定する必要があります。あるいは、PEM ファイルの代わりに、セキュア システム ストア(--tlsCertificateSelectorを参照)から証明書を取得して使用するか、暗号化されていない PEM ファイルを使用できます。Windows では、MongoDB は暗号化された証明書をサポートしていません。暗号化された PEM ファイルに遭遇すると、
mongodは処理に失敗します。代わりに--tlsCertificateSelectorを使用してください。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--clusterAuthMode <option>デフォルト: keyFile
クラスター認証に使用される認証モードです。内部 X.509 認証を使用する場合は、ここで指定します。このオプションには、次のいずれかの値を指定できます。
値説明keyFile認証にはキーファイルを使用します。キーファイルのみを受け付けます。
sendKeyFileローリングアップグレードを目的としたものです。認証のためにキーファイルを送信しますが、キーファイルと X.509 証明書の両方を受け入れることができます。
sendX509ローリングアップグレードを目的としたものです。認証のために X.509 証明書を送信しますが、キーファイルと X.509 証明書の両方を受け入れることができます。
x509推奨。認証のために X.509 証明書を送信し、X.509 証明書のみを受け入れます。
--tlsCAFileまたはtls.CAFileが指定されておらず、X.509 認証を使用していない場合は、tlsUseSystemCAパラメータをtrueに設定する必要があります。これにより、MongoDB は TLS 対応サーバーに接続する際にシステム全体の CA 証明書ストアを使用します。X.509認証を使用する場合、
--tlsCertificateSelectorを使用しない限り、--tlsCAFileまたはtls.CAFileを指定する必要があります。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsClusterFile <filename>クラスターまたはレプリカ セットのメンバーシップ認証用の X.509 証明書キー ファイルを含む
.pemファイルを指定します。macOS または Windows では、PEM 鍵ファイルの代わりに、
--tlsClusterCertificateSelectorオプションを使用してオペレーティング システムの安全な証明書ストアから証明書を指定できます。--tlsClusterFileオプションと--tlsClusterCertificateSelectorオプションは相互に排他的です。指定できるのは 1 つだけです。--tlsClusterFileが内部クラスター認証用の.pemファイルまたは代替の--tlsClusterCertificateSelectorを指定しない場合、クラスターは--tlsCertificateKeyFileオプションで指定された.pemファイルまたは--tlsCertificateSelectorによって返された証明書を使用します。X.509認証を使用する場合、
--tlsCertificateSelectorを使用しない限り、--tlsCAFileまたはtls.CAFileを指定する必要があります。mongodまたはmongosは、提示された x.509 証明書がmongod/mongosのホストシステム時間から30日以内に期限切れになる場合、接続時に警告を記録します。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。重要
MongoDB では、Windows に限り、暗号化 PEM ファイルをサポートしません。 暗号化された PEM ファイルに遭遇すると、
mongodは起動に失敗します。 Windows のメンバーシップ認証で使用する証明書を安全に保存してアクセスするには、--tlsClusterCertificateSelectorを使用します。
--tlsCertificateSelector <parameter>=<value>注意
--tlsCertificateKeyFileの代替として、Windows および macOS で利用可能です。オペレーティング システムの証明書ストアから TLS 用に一致する証明書を選択するために、証明書プロパティを指定します。
--tlsCertificateKeyFileオプションと--tlsCertificateSelectorオプションは相互に排他的です。 指定できるのは 1 つだけです。--tlsCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。
mongodは、指定された TLS 証明書の完全な証明書チェーンを検証するために必要な CA 証明書をオペレーティング システムのセキュリティで保護された証明書ストアで検索します。 具体的には、安全な証明書ストアには、TLS 証明書への完全な証明書チェーンを構築するために必要なルート CA 証明書と中間 CA 証明書が含まれている必要があります。 ルート CA 証明書と中間 CA 証明書の指定には、 または--tlsCAFile--tlsClusterCAFileを使用 し ない で くださいたとえば、TLS/SSL 証明書が単一のルート CA 証明書で署名されている場合、セキュリティで保護された証明書ストアにはそのルート CA 証明書が含まれている必要があります。TLS/SSL 証明書が中間 CA 証明書で署名されている場合、セキュリティで保護された証明書ストアには中間 CA 証明書とルート CA 証明書が含まれている必要があります。
注意
net.tls.certificateSelectorまたは--tlsCertificateSelectorをthumbprintに設定している場合、rotateCertificatesコマンドやdb.rotateCertificates()シェルメソッドは使用できません。
--tlsClusterCertificateSelector <parameter>=<value>注意
--tlsClusterFileの代替として、Windows および macOS で利用可能です。内部 x.509 メンバーシップ認証用にオペレーティング システムの証明書ストアから一致する証明書を選択するための証明書プロパティを指定します。
--tlsClusterFileと--tlsClusterCertificateSelectorのオプションは相互に排他的です。指定できるのは 1 つだけです。--tlsClusterCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。mongodは、指定されたクラスター証明書の完全な証明書チェーンを検証するために必要な CA 証明書をオペレーティング システムのセキュリティで保護された証明書ストアで検索します。具体的には、安全な証明書ストアには、クラスター証明書への完全な証明書チェーンを構築するために必要なルート CA 証明書と中間 CA 証明書が含まれている必要があります。ルート CA 証明書と中間 CA 証明書の指定には、--tlsClusterCAFileまたは--tlsCAFileを使用しません。たとえば、クラスター証明書が単一のルート CA 証明書で署名されている場合、セキュリティで保護された証明書ストアにはそのルート CA 証明書が含まれている必要があります。クラスター証明書が中間 CA 証明書で署名されている場合、セキュリティで保護された証明書ストアには中間 CA 証明書とルート CA 証明書が含まれている必要があります。
mongodまたはmongosは、提示された x.509 証明書がmongod/mongosのホストシステム時間から30日以内に期限切れになる場合、接続時に警告を記録します。
--tlsClusterPassword <value>--tlsClusterFileで指定された X.509 証明書キーファイルを復号化するためのパスワードを指定します。--tlsClusterPassword証明書鍵ファイルが暗号化されている場合にのみ、オプションを使用します。いずれの場合も、mongodはすべてのログとレポート出力からパスワードを削除します。Linux /BSD で X.509 ファイル内の秘密キーが暗号化されており、かつ
--tlsClusterPasswordオプションを指定していない場合、 MongoDB はパスフレーズの入力を要求します。詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。macOS で x.509 ファイル内の秘密キーが暗号化されている場合は、
--tlsClusterPasswordオプションを明示的に指定する必要があります。あるいは、クラスター PEM ファイルの代わりに、セキュア システム ストア(--tlsClusterCertificateSelectorを参照)から証明書を取得して使用するか、暗号化されていない PEM ファイルを使用することもできます。Windows では、MongoDB は暗号化された証明書をサポートしていません。暗号化された PEM ファイルに遭遇すると、
mongodは処理に失敗します。代わりに--tlsClusterCertificateSelectorを使用してください。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsCAFile <filename>証明書認証機関からのルート証明書チェーンを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。重要
TLS/SSL を有効にして
mongodインスタンスを起動する場合は、--tlsCAFileフラグ、net.tls.CAFile構成オプション、tlsUseSystemCAパラメーターのいずれかの値を指定する必要があります。--tlsCAFile、tls.CAFile、tlsUseSystemCAは、すべて相互に排他的です。- Windows と macOS のみ
 --tlsCertificateSelectorおよび/または--tlsClusterCertificateSelectorを使用する場合、ルート CA 証明書と中間 CA 証明書の指定には--tlsCAFileを使用しません。--tlsCertificateSelectorおよび/または--tlsClusterCertificateSelector証明書の完全な信頼チェーンの検証に必要なすべての CA 証明書は、安全な証明書ストアに保存します。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsClusterCAFile <filename>接続を確立するクライアントによって提示された証明書を検証するために使用される証明機関からのルート証明書チェーンを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。--tlsClusterCAFileでは--tlsCAFileが設定されている必要があります。--tlsClusterCAFileで、接続を確立するクライアントからの証明書を検証するための.pemファイルが指定されない場合、クラスターでは--tlsCAFileオプションで指定された.pemファイルが使用されます。--tlsClusterCAFileクライアントからサーバー、サーバーからクライアントへのTLS ハンドシェイクの各部分を検証するために、異なる認証局を使用することができます。- Windows と macOS のみ
 --tlsCertificateSelectorおよび/または--tlsClusterCertificateSelectorを使用する場合、ルート CA 証明書と中間 CA 証明書の指定には--tlsClusterCAFileを使用しません。--tlsCertificateSelectorおよび/または--tlsClusterCertificateSelector証明書の完全な信頼チェーンの検証に必要なすべての CA 証明書は、安全な証明書ストアに保存します。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsCRLFile <filename>証明書失効リストを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。注意
macOS では CRL ファイルを指定できません。 代わりに、OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効ステータスを検証するシステム SSL 証明書ストアを使用できます。 システム SSL 証明書ストアを使用するには、
--tlsCertificateSelectorを参照してください。証明書の失効を確認するために、MongoDB は CRL ファイルを指定するか、システム SSL 証明書ストアを使用する代わりに、デフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を使用し
enables。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsAllowInvalidCertificatesクラスター内の他のサーバー上の TLS 証明書の検証チェックをバイパスし、無効な証明書を使用して接続できるようにします。
注意
X.509 認証を使用するときに
--tlsAllowInvalidCertificatesまたはtls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。--tlsAllowInvalidCertificates設定を使用すると、MongoDB では無効な証明書の使用に関する警告がログに記録されます。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsAllowInvalidHostnamesプロセス間認証のためにレプリカセットまたはシャーディングされたクラスターの他のノードに接続するときに、TLS 証明書内のホスト名の検証を無効にします。これにより、証明書内のホスト名が設定されたホスト名と一致しない場合でも、
mongodは他のノードに接続できるようになります。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsAllowConnectionsWithoutCertificatesデフォルトでは、サーバーは CA ファイルを使用するよう構成されていない限り、クライアント証明書の検証をバイパスします。CA ファイルが設定されている場合、次のルールが適用されます。
証明書を提供していないクライアントの場合、
mongodまたはmongosは、接続が正常に確立されているという前提で TLS/SSL 接続を暗号化します。証明書を提示するクライアントの場合、
mongodにより--tlsCAFileで指定されたルート証明書チェーンを使用して証明書の検証が実行され、無効な証明書を持つクライアントは拒否されます。
mongodに証明書を提示しない、または提示できないクライアントを含む混合配置がある場合は、--tlsAllowConnectionsWithoutCertificatesオプションを使用します。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
--tlsDisabledProtocols <protocol(s)>TLS で実行されている MongoDB サーバーが、特定のプロトコルを使用する接続を受け入れることを防ぎます。複数のプロトコルを指定するには、プロトコルをカンマで区切ったリストを使用します。
--tlsDisabledProtocolsは、TLS1_0プロトコル、TLS1_1プロトコル、TLS1_2プロトコル、およびTLS1_3プロトコルを認識します。macOS では、
TLS1_1を無効にして、TLS1_0とTLS1_2の両方を有効のままにすることはできません。他の 2 つのうち少なくとも 1 つを無効にする必要があります(例:TLS1_0,TLS1_1)。複数のプロトコルを指定するには、プロトコルをカンマで区切ったリストとして指定します(例:
TLS1_0,TLS1_1)。認識できないプロトコルを指定すると、サーバーは起動しません。
指定の無効なプロトコルは、デフォルトの無効なプロトコルを上書きします。
MongoDB は、システムで TLS 1.1 + が利用可能な場合、TLS 1.0の使用を無効にします。 無効になっている TLS 1.0を有効にするには、
noneから--tlsDisabledProtocolsを指定します。レプリカセットとシャーディングされたクラスターのノード間では、少なくとも 1 つのプロトコルが共通している必要があります。
Tip
--tlsFIPSModeTLS ライブラリの FIPS モードを使用するように
mongodに指示します。--tlsFIPSModeオプションを使用するには、システムに FIPS 準拠のライブラリが必要です。注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
プロファイラーのオプション
--profile <level>デフォルト: 0
データベースプロファイラーレベルを設定します。次のプロファイラー レベルを使用できます。
0- プロファイラーはオフになっており、データは収集されません。これはデフォルトのプロファイラー レベルです。
 1プロファイラーは、
slowmsしきい値を超える操作、または指定されたフィルターに一致する操作のデータを収集します。フィルターが設定されている場合、
slowmsおよびsampleRateオプションはプロファイリングには使用されません。プロファイラーは、フィルターに一致する操作のみをキャプチャします。
2プロファイラーは、すべての操作のデータを収集します。
レベル
2に設定すると、プロファイラーはslowmsとfilterのユーザーが指定した値を無視します。
警告
プロファイリングにより、パフォーマンスが低下し、暗号化されていないクエリ データがシステム ログに公開されることがあります。プロファイラーを本番環境に設定して有効にする前に、パフォーマンスとセキュリティへの影響を慎重に検討してください。
パフォーマンス低下の可能性の詳細については、「プロファイラーのオーバーヘッド」を参照してください。
--slowms <integer>デフォルト: 100
低速操作時間のしきい値(ミリ秒単位)。操作が実行される時間がこのしきい値より長いと、低速とみなされます。
低速操作は、MongoDB でその操作にかかった時間である
workingMillisに基づいてログに記録されます。つまり、ロック待ちやフロー制御などの要因は、操作が低速操作のしきい値を超えるかどうかに影響しません。logLevelが0に設定されている場合、MongoDB はslowOpSampleRateで決定されたレートで低速操作を診断ログに記録しますlogLevel設定を引き上げると、レイテンシに関係なく、すべての操作が診断ログに表示されます。ただし、セカンダリによる低速の oplog エントリ メッセージのログ記録は除きます。セカンダリでは、低速の oplog エントリのみがログに記録されます。logLevelを引き上げても、すべての oplog エントリがログに記録されるわけではありません。mongodインスタンスの場合、--slowmsは診断ログと(有効になっている場合)プロファイラーに影響します。
--slowOpSampleRate <double>デフォルト: 1.0
プロファイリングまたはログに記録する必要がある低速操作の割合。
--slowOpSampleRateは0から1までの値を受け入れます。--slowOpSampleRateは、レプリカセットのセカンダリ ノードによる oplog エントリのログ記録の遅さに影響することはありません。 セカンダリ ノードでは、--slowOpSampleRateに関係なく、低速操作のしきい値よりも時間がかかるすべての oplog のエントリがログに記録されます。mongodインスタンスの場合、--slowOpSampleRateは診断ログと(有効になっている場合)プロファイラーに影響します。
監査のオプション
--auditCompressionModeバージョン 5.3 で追加。
監査ログの暗号化の圧縮モードを指定します。 また、
--auditEncryptionKeyUIDまたは--auditLocalKeyFileのいずれかを使用して、監査ログの暗号化を有効にする必要があります。--auditCompressionModeは次のいずれかの値に設定できます。値説明zstd監査ログを圧縮するには、zstd アルゴリズムを使用します。
none(デフォルト)監査ログを圧縮しないでください。
注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
--auditDestination監査を有効にし、
mongodがすべての監査イベントを送信する場所を指定します。--auditDestinationには次のいずれかの値を指定できます。値説明syslog監査イベントを JSON 形式で syslog に出力します。Windows では使用できません。監査メッセージの syslog 重大度レベルは
infoで、機能レベルはuserです。syslog メッセージの制限により、監査メッセージが切り捨てられる可能性があります。監査システムは、切り捨てを検出することも、切り捨て時にエラーを発生させることもありません。
console監査イベントを JSON 形式で
stdoutに出力します。file注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditEncryptionKeyUIDバージョン 6.0 で追加。
監査ログの暗号化用に KMIP(Key Management Interoperability Protocol)キーの一意の識別子を指定します。
--auditEncryptionKeyUIDと--auditLocalKeyFileを併用することはできません。注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
--auditFormatが
--auditDestinationである場合の 監査file用出力ファイルの形式を指定します。--auditFormatオプションには、次のいずれかの値を指定できます。値説明JSON監査するイベントをJSON形式で
--auditPathで指定されたファイルに出力します。BSON監査するイベントをBSONバイナリ形式で、
--auditPathで指定されたファイルに出力します。監査イベントを JSON 形式のファイルに出力すると、BSON 形式のファイルに出力するよりもサーバーのパフォーマンスが低下します。
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditLocalKeyFileバージョン 5.3 で追加。
監査ログの暗号化用にローカル監査キー ファイルのパスとファイル名を指定します。
注意
キーが保護されていないため、テストには
--auditLocalKeyFileのみを使用してください。 キーを保護するには、--auditEncryptionKeyUIDと外部の KMIP サーバーを使用します。--auditLocalKeyFileと--auditEncryptionKeyUIDを併用することはできません。注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
--auditPath--auditDestinationの値がfileの場合の 監査 用の出力ファイルを指定します。--auditPathオプションには、完全パス名または相対パス名のいずれかを指定できます。注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditFilter監査システムが記録する操作の種類を制限するためにフィルターを指定します。このオプションは、次の形式のクエリ ドキュメントの文字列表現を取ります。
{ <field1>: <expression1>, ... } <field>は、監査フィールド内の任意のフィールド(param ドキュメントで返されるフィールドを含む)にすることができます。<expression>はクエリ条件式です。監査フィルターを指定するには、フィルター ドキュメントを一重引用符で囲み、ドキュメントを文字列として渡します。
構成ファイルで監査フィルターを指定するには、構成ファイルの YAML 形式を使用する必要があります。
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditSchemaデフォルト:
mongoバージョン8.0の新機能。
監査ログに使用される形式を指定します。
--auditSchemaには、次のいずれかの値を指定できます。値説明mongoログは、MongoDB によって設計された形式で書き込まれます。
ログメッセージの例については、「mongo スキーマ監査メッセージ」を参照してください。
OCSFログは OCSF 形式で書き込まれます。このオプションは、ログプロセッサと互換性のある標準化された形式でログを提供します。
ログメッセージの例については、「OCSF スキーマ監査メッセージ」を参照してください。
inMemory のオプション
--inMemorySizeGB <float>デフォルト: 物理 RAM の50%から 1 GBを引いた値。
インデックス、oplog(
mongodがレプリカセットの一部である場合)、シャーディングされたクラスターのメタデータなど、インメモリ ストレージ エンジン データに割り当てるメモリの最大量です。値の範囲は 256 MB から 10 TB までで、float にすることができます。
デフォルトで、インメモリ ストレージエンジンは物理 RAM の 50% から 1 GB を引いた量を使用します。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
暗号化のキー管理のオプション
--enableEncryptionデフォルト: false
WiredTiger ストレージ エンジンの暗号化を有効にします。暗号化キーと構成を渡すには、このオプションを有効にする必要があります。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--encryptionCipherMode <string>デフォルト: AES256-CBC
保管時の暗号化に使用するモードです。
モード説明AES256-CBC暗号ブロック チェーン モードの 256 ビット AES(Advanced Encryption Standard)
AES256-GCMガロア カウンタ モードの 256 ビットAES
Linuxでのみ利用可能です。
Windows 上の MongoDB Enterprise では、保管時の暗号化のブロック暗号として
AES256-GCMをサポートしなくなりました。この使用は、Linux でのみサポートされています。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--encryptionKeyFile <string>KMIP 以外のプロセスで鍵を管理する場合のローカル鍵ファイルへのパスです。KMIP 以外のプロセスでキーを管理する場合にのみ設定します。データがすでに KMIP を使用して暗号化されている場合には、MongoDB はエラーをスローします。
キーファイルには1つのキーしか入れることができません。キーは 16 文字または 32 文字の文字列です。
--enableEncryptionが必要です。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipKeyIdentifier <string>KMIP サーバー内の既存のキーに対する一意の KMIP 識別子です。この識別子を指定することで、識別子に関連付けられたキーをシステム キーとして使用できます。この設定は、
mongodインスタンスの暗号化を初めて有効にするときにのみ使用できます。--enableEncryptionが必要です。未指定の場合、MongoDB は KMIP サーバーにシステムキーとして使う新しいキーの作成を要求します。
KMIP サーバーが指定された識別子を持つ鍵を見つけられない場合、またはデータがすでに鍵で暗号化されている場合、MongoDB はエラーをスローします。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipRotateMasterKey <boolean>デフォルト: false
true の場合、マスター キーをローテーションし、内部キーストアを再暗号化します。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipServerName <string>接続先の KMIP サーバーのホスト名または IP アドレスです。
--enableEncryptionが必要です。複数の KMIP サーバーをカンマ区切りのリスト(例:
server1.example.com,server2.example.com)として指定できます。 起動時に、mongodはリストされている順序で各サーバーへの接続確立を試み、正常に接続を確立できた最初のサーバーを選択します。 KMIP サーバーが選択されるのは、起動時のみです。KMIP サーバーに接続すると、
mongodは、指定された--kmipServerNameがサブジェクト代替名SAN(またはSANが存在しない場合は、コモンネームCN)と一致することを確認します。 KMIP サーバーSANが存在する場合、mongodはCNと一致しません。 ホスト名がSAN(またはCN)と一致しない場合、mongodは接続に失敗します。MongoDB 4.2 以降、SAN の比較を行なう際に、MongoDB は DNS 名または IP アドレスの比較をサポートします。以前のバージョンでは、 MongoDB は DNS 名の比較のみをサポートしていました。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipPort <number>デフォルト: 5696
KMIP サーバーとの通信に使用するポート番号です。
--kmipServerNameが必要です。--enableEncryptionが必要です。--kmipServerNameで複数の KMIP サーバーを指定する場合、mongodは、提供されているすべての KMIP サーバーに対して--kmipPortで指定されたポートを使用します。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipConnectRetries <number>デフォルト: 0
KMIP サーバーに対する初期接続を再試行する回数です。
--kmipConnectTimeoutMSと併用することで、mongodが再試行を行うまでの待機時間を管理できます。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipConnectTimeoutMS <number>デフォルト: 5000
KMIP サーバーの応答を待つ際のタイムアウト時間(ミリ秒)です。
--kmipConnectRetries設定が指定されている場合、mongodは各再試行の間に指定された時間だけ待機します。値は
1000以上である必要があります。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipClientCertificateSelector <string>バージョン5.0の新機能:
--kmipClientCertificateFileの代替として Windows および macOS で利用できます。--kmipClientCertificateFileと--kmipClientCertificateSelectorのオプションは相互に排他的です。指定できるのは 1 つだけです。MongoDB が KMIP サーバーに認証するために、オペレーティング システムの証明書ストアから一致する証明書を選択するための証明書プロパティを指定します。
--kmipClientCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipClientCertificateFile <string>KMIP サーバーに対して MongoDB を認証するために使用される
.pemファイルへのパスです。指定された.pemファイルには、TLS/SSL 証明書とキーの両方が含まれている必要があります。このオプションを使用するには、
--kmipServerNameオプションも指定する必要があります。重要
Windows で KMIP サーバーを使用して暗号化を有効にすると、
--kmipClientCertificateFileと KMIP サーバーにより TLS 1.2が強制されます。Windows で KMIP を使用して保管時の暗号化を有効にするには、次の条件を満たす必要があります。
クライアント証明書を Windows 証明書ストアにインポートします。
--kmipClientCertificateSelector構成オプションを使用します。
注意
macOS または Windows では、PEM キー ファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。 詳しくは
--kmipClientCertificateSelectorを参照してください。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipClientCertificatePassword <string>KMIPサーバーに接続するクライアント証明書の秘密キーを復号化するためのパスワードです。 このオプションはMongoDB をKMIPサーバーに認証するため、 を指定する必要があります。
--kmipClientCertificateFile注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
--kmipServerCAFile <string>CA ファイルへのパス。KMIP サーバーへの安全なクライアント接続を検証するために使用されます。
注意
macOS または Windows では、PEM キー ファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。 詳しくは
--kmipClientCertificateSelectorを参照してください。 セキュア ストアを使用する場合は、--kmipServerCAFileを指定する必要はありませんが、指定することもできます。
--kmipActivateKeys <boolean>デフォルト: true
バージョン 5.3 で追加。
新しく作成された KMIP キーを作成時にすべてアクティブ化し、その後、当該キーがアクティブな状態であるかどうかを定期的にチェックします。
--kmipActivateKeysがtrueで、KMIP サーバーに既存のキーがある場合、最初にキーをアクティブ化する必要があります。そうしないと、mongodノードの起動に失敗します。mongod によって使用されているキーが非アクティブ状態に移行すると、
kmipActivateKeysが false でない限り、mongodノードはシャットダウンします。アクティブなキーを確保するためには、--kmipRotateMasterKeyを使用して KMIP マスター鍵をローテーションします。
--kmipKeyStatePollingSeconds <integer>デフォルト: 900 秒
バージョン 5.3 で追加。
mongodが KMIP サーバーをポーリングしてアクティブなキーを検索する頻度(秒単位)です。ポーリングを無効にするには、値を
-1に設定します。
--kmipUseLegacyProtocol <boolean>デフォルト: false
バージョン 7.0 の新機能: (および 6.0.6)
trueの場合、mongodでは、デフォルトのバージョンではなく、KMIP プロトコル バージョン 1.0 または 1.1 が使用されます。デフォルトの KMIP プロトコルはバージョン 1.2 です。KMIP バージョン 1.0 または 1.1 で監査ログ暗号化を使用するには、スタートアップ時に
auditEncryptKeyWithKMIPGetを指定する必要があります。
--eseDatabaseKeyRolloverAES256-GCMで暗号化された ストレージ エンジンのデータベース キーをロールオーバーします。このオプションを使用して
mongodインスタンスを起動すると、インスタンスはキーをローテーションして終了します。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。