次のページでは、 MongoDB 8.0で使用できる構成オプションについて説明します。 他のバージョンの MongoDB の構成ファイルのオプションについては、該当するバージョンの MongoDB マニュアルを参照してください。
注意
MongoDB Atlas を使用して、MongoDB のクラウドへの配置を管理している場合は、構成ファイルの作成は不要です。MongoDB Atlas 配置設定の構成方法については、「追加設定の構成」を参照してください。
構成ファイル オプションを使用するだけでなく、MongoDB バイナリのデフォルト構成ではオペレーティング システムの環境変数も使用されます。
構成ファイル
起動時に構成ファイルを使用して、 mongodおよびmongosインスタンスを構成できます。 構成ファイルには、 mongodとmongosコマンドライン オプションと同等の設定が含まれています。 「自己管理型構成ファイルの設定とコマンドライン オプションのマッピング 」を参照してください。
構成ファイルを使用すると、特に大規模な配置の場合、mongod オプションと mongos オプションの管理が容易になります。構成ファイルにコメントを追加して、サーバーの設定を説明することもできます。
Linux の
yumやapt、macOS のbrewなどのパッケージ マネージャーを使用して、または Windows の MSI インストーラーを使用して、MongoDB をインストールした場合、インストールの一部としてデフォルトの構成ファイルが提供されています。プラットフォーム方式構成ファイルLinux
apt、yumまたは、zypperパッケージ マネージャー/etc/mongod.confMacOS
brewパッケージ マネージャー/usr/local/etc/mongod.conf(Intel プロセッサ上)、または/opt/homebrew/etc/mongod.conf( Apple M1 プロセッサ)Windows
MSI インストーラー
<install directory>\bin\mongod.cfgダウンロードした
TGZまたはZIPファイルを使用して MongoDB をインストールした場合、独自の構成ファイルを作成する必要があります。基本的な例の構成から始めることが推奨されます。
ファイル形式
MongoDB の構成ファイルでは YAML 形式 [1] が使用されます。
次のサンプル構成ファイルには、ローカル構成に合わせて調整できるいくつかの mongod 設定が含まれています。
注意
YAML はインデント用のタブ文字をサポートしていません。代わりにスペースを使用します。
systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true processManagement: fork: true net: bindIp: 127.0.0.1 port: 27017 setParameter: enableLocalhostAuthBypass: false ...
公式 MongoDB パッケージに含まれる Linux パッケージ初期化スクリプトは、 systemLog.path 、 storage.dbPath 、およびprocessManagement.forkまたはMONGODB_CONFIG_OVERRIDE_NOFORKシステム環境変数の特定の値に依存します。 デフォルトの構成ファイルでこれらの設定を変更すると、 mongodが起動しない可能性があります。
| [1] | YAML は JSON のスーパーセットです。 |
外部ソースの値
注意
MongoDB は、構成ファイルの展開ディレクティブを使用して外部から取得された値をロードすることをサポートしています。 展開ディレクティブを使用すると、特定の構成ファイル オプションの値をロードしたり、構成ファイル全体をロードしたりできます。
次の展開ディレクティブが利用可能です。
展開ディレクティブ | 説明 |
|---|---|
完全なドキュメントについては、「自己管理型配置の 外部ソースの構成ファイルの値 」を参照してください。
構成ファイルを使用
構成ファイルを使用して mongod または mongos を構成するには、次の例のように、--config オプションまたは -f オプションを使用して構成ファイルを指定します。
たとえば、次の例では mongod --config
<configuration file> mongos --config
<configuration file> が使用されています。
mongod --config /etc/mongod.conf mongos --config /etc/mongos.conf
次のように、-f エイリアスを使用して構成ファイルを指定することもできます。
mongod -f /etc/mongod.conf mongos -f /etc/mongos.conf
パッケージからインストールし、システムの init スクリプトを使用して MongoDB を起動した場合は、すでに構成ファイルが使用されています。
展開ディレクティブと --configExpand
構成ファイルで展開ディレクティブを使用している場合は、mongod または mongos を起動するときに、--configExpand オプションを含める必要があります。以下がその例です。
mongod --config /etc/mongod.conf --configExpand "rest,exec" mongos --config /etc/mongos.conf --configExpand "rest,exec"
構成ファイルに展開ディレクティブが含まれている場合、--configExpand のオプションでそのディレクティブを指定せずに mongod / mongos を起動すると、mongod / mongos は起動に失敗します。
完全なドキュメントについては、「自己管理型配置の 外部ソースの構成ファイルの値 」を参照してください。
中心的オプション
systemLog オプション
systemLog: verbosity: <int> quiet: <boolean> traceAllExceptions: <boolean> syslogFacility: <string> path: <string> logAppend: <boolean> logRotate: <string> destination: <string> timeStampFormat: <string> component: accessControl: verbosity: <int> command: verbosity: <int> # COMMENT additional component verbosity settings omitted for brevity
systemLog.verbosityタイプ: 整数
デフォルト: 0
コンポーネントのデフォルトのログ メッセージの冗長レベルです。冗長レベルは、MongoDB が出力する情報メッセージとデバッグ メッセージの量を決定します。[2]
冗長レベルは次のように
0から5までの範囲で指定できます。名前付きコンポーネントに別の冗長レベルを使用するには、コンポーネントの冗長設定を使用します。 たとえば、
systemLog.component.accessControl.verbosityを使用して、ACCESSコンポーネントのみに冗長レベルを設定します。特定のコンポーネントの冗長設定については、「
systemLog.component.<name>.verbosity設定」を参照してください。ログの冗長レベルを設定するさまざまな方法については、「ログの冗長レベルの構成」を参照してください。
[2] MongoDB バージョン 4.2 以降では、ログ メッセージにデバッグの冗長レベル(1 ~ 5)が含まれるようになりました。たとえば、冗長レベルが 2 の場合、MongoDB は D2をログに出力します。以前のバージョンでは、MongoDB のログ メッセージではデバッグ レベルにDしか指定されていませんでした。
systemLog.quietタイプ: ブール値
デフォルト: false
出力量を制限するクワイエットモードで
mongosまたはmongodを実行します。systemLog.quietは、特定の接続中に問題の追跡が非常に困難になる可能性があるため、実稼働システムには推奨されません。
systemLog.syslogFacility型: string
デフォルト: user
メッセージを syslog に記録するときに使用するファシリティ レベルです。指定する値は、使用しているオペレーティング システムの syslog の実装でサポートされている必要があります。このオプションを使用するには、
systemLog.destinationをsyslogに設定する必要があります。
systemLog.path型: string
mongodまたはmongosが標準出力やホストの syslog ではなく、すべての診断ログ情報を送信すべきログファイルのパス。MongoDB は指定したパスにログファイルを作成します。Linux パッケージ初期化スクリプトでは、
systemLog.pathがデフォルトから変更されることは想定されていません。 Linux パッケージを使用してsystemLog.pathを変更する場合は、独自の初期化スクリプトを使用し、組み込みスクリプトを無効にする必要があります。
systemLog.logAppendタイプ: ブール値
デフォルト: false
trueの場合、インスタンスの再起動時にmongosまたはmongodによって既存のログファイルの末尾に新しいエントリが追加されます。 このオプションを指定しない場合、mongodまたはmongosは既存のログをバックアップして新しいファイルを作成します。
systemLog.logRotate型: string
デフォルト: rename
サーバー ログや監査ログをローテーションするときの
logRotateコマンドの動作を決定します。renameまたはreopenを指定します。renameは、ログファイルの名前を変更します。reopenは、一般的な Linux/Unix ログのローテーション動作に従って、ログファイルを閉じてから再度開きます。Linux/Unix logrotate ユーティリティを使用する場合は、ログの損失を防ぐためにreopenを使用してください。reopenを指定する場合は、systemLog.logAppendもtrueに設定する必要があります。
systemLog.destination型: string
MongoDB がすべてのログ出力を送信する宛先です。
fileまたはsyslogを指定します。fileを指定する場合は、systemLog.pathも指定する必要があります。systemLog.destinationを指定しない場合、MongoDB はすべてのログ出力を標準出力に送信します。警告
syslogデーモンでは、MongoDB がメッセージを発行したときではなく、メッセージをログに記録する際にタイムスタンプを生成します。これにより、特にシステムの負荷が高い場合に、ログエントリのタイムスタンプに誤りが生じる可能性があります。タイムスタンプが正確になるように、実稼働システムではfileオプションを使用することをお勧めします。
systemLog.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注意
systemLog.timeStampFormatでのctimeのサポートは終了しました。ctime形式の日付の例は、Wed Dec 31 18:17:54.811です。
systemLog.component オプション
systemLog: component: accessControl: verbosity: <int> command: verbosity: <int> # COMMENT some component verbosity settings omitted for brevity replication: verbosity: <int> election: verbosity: <int> heartbeats: verbosity: <int> initialSync: verbosity: <int> rollback: verbosity: <int> storage: verbosity: <int> journal: verbosity: <int> recovery: verbosity: <int> write: verbosity: <int>
注意
MongoDB バージョン 4.2 以降では、ログ メッセージにデバッグの冗長レベル(1 ~ 5)が含まれるようになりました。たとえば、冗長レベルが 2 の場合、MongoDB は D2 をログに出力します。以前のバージョンでは、MongoDB のログ メッセージではデバッグ レベルに D しか指定されていませんでした。
systemLog.component.assert.verbosityタイプ: 整数
デフォルト: 0
MongoDB において、ユーザー操作で発生したアサーションに対するログメッセージの冗長レベル。通常、アサーションは操作がエラーを返したときにトリガーされます。
ASSERTコンポーネントをご覧ください。
systemLog.component.accessControl.verbosityタイプ: 整数
デフォルト: 0
アクセス制御に関連したコンポーネントのログ メッセージの冗長レベル。「
ACCESSコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.command.verbosityタイプ: 整数
デフォルト: 0
コマンドに関連したコンポーネントのログ メッセージの冗長レベル。「
COMMANDコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.control.verbosityタイプ: 整数
デフォルト: 0
制御操作に関連したコンポーネントのログ メッセージの詳細レベル。「
CONTROLコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.ftdc.verbosityタイプ: 整数
デフォルト: 0
診断データ収集操作に関連したコンポーネントのログ メッセージの詳細レベル。「
FTDCコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.geo.verbosityタイプ: 整数
デフォルト: 0
地理空間解析操作に関連したコンポーネントのログ メッセージの詳細レベル。「
GEOコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.index.verbosityタイプ: 整数
デフォルト: 0
インデックス操作に関連したコンポーネントのログ メッセージの詳細レベル。「
INDEXコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.network.verbosityタイプ: 整数
デフォルト: 0
ネットワーク操作に関連したコンポーネントのログ メッセージの詳細レベル。「
NETWORKコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.query.verbosityタイプ: 整数
デフォルト: 0
クエリ操作に関連したコンポーネントのログ メッセージの詳細レベル。「
QUERYコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.query.rejected.verbosityタイプ: 整数
デフォルト: 0
バージョン8.0の新機能。
拒否されたクエリ操作に関連したコンポーネントのログ メッセージの冗長レベル。詳細については、
REJECTEDコンポーネントを参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.queryStats.verbosityタイプ: 整数
デフォルト: 0
$queryStatsの呼び出しに関連するコンポーネントのログ メッセージの冗長レベル。QUERYSTATSコンポーネントを参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。0は、デフォルトのログ冗長レベルであり、情報メッセージのみが含まれます。 このレベルでは、$queryStats呼び出しはログに記録されません。1から2に増やすと、冗長レベルが上がり、algorithmが"hmac-sha-256"である$queryStats呼び出しが含まれるようになります。 すべての HMAC キーは編集されます。3から5への冗長レベルは、algorithmが"hmac-sha-256"である$queryStats呼び出しとそれに対応する結果を含めるようにします。 各結果は独自のエントリであり、string"we finished"を含む最終エントリがあります。
systemLog.component.replication.verbosityタイプ: 整数
デフォルト: 0
レプリケーションに関連したコンポーネントのログ メッセージの冗長レベル。「
REPLコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.replication.election.verbosityタイプ: 整数
デフォルト: 0
選挙に関連したコンポーネントのログ メッセージの冗長レベル。「
ELECTIONコンポーネント」を参照。systemLog.component.replication.election.verbosityが設定されていない場合、systemLog.component.replication.verbosityレベルは選挙コンポーネントにも適用されます。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.replication.heartbeats.verbosityタイプ: 整数
デフォルト: 0
ハートビートに関連したコンポーネントのログ メッセージの冗長レベル。「
REPL_HBコンポーネント」を参照。systemLog.component.replication.heartbeats.verbosityが設定されていない場合は、ハートビート コンポーネントにsystemLog.component.replication.verbosityレベルも適用されます。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.replication.initialSync.verbosityタイプ: 整数
デフォルト: 0
initialSync に関連したコンポーネントのログ メッセージの冗長レベル。「
INITSYNCコンポーネント」を参照。systemLog.component.replication.initialSync.verbosityが設定されていない場合は、systemLog.component.replication.verbosityレベルも initialSync コンポーネントに適用されます。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.replication.rollback.verbosityタイプ: 整数
デフォルト: 0
ロールバックに関連したコンポーネントのログ メッセージの冗長レベル。「
ROLLBACKコンポーネント」を参照。systemLog.component.replication.rollback.verbosityが設定されていない場合は、systemLog.component.replication.verbosityレベルはロールバック コンポーネントにも適用されます。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.sharding.verbosityタイプ: 整数
デフォルト: 0
シャーディングに関連したコンポーネントのログ メッセージの冗長レベル。「
SHARDINGコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.verbosityタイプ: 整数
デフォルト: 0
ストレージに関連したコンポーネントのログ メッセージの冗長レベル。「
STORAGEコンポーネント」を参照。systemLog.component.storage.journal.verbosityが設定されていない場合は、systemLog.component.storage.verbosityレベルもジャーナリング コンポーネントに適用されます。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.journal.verbosityタイプ: 整数
デフォルト: 0
ジャーナリングに関連したコンポーネントのログ メッセージの冗長レベル。「
JOURNALコンポーネント」を参照。systemLog.component.storage.journal.verbosityが設定されていない場合、ジャーナリング コンポーネントは親ストレージ コンポーネントと同じ冗長レベルになります。つまり、設定されている場合はsystemLog.component.storage.verbosityレベル、またはデフォルトの冗長レベルのいずれかです。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.recovery.verbosityタイプ: 整数
デフォルト: 0
リカバリに関連したコンポーネントのログメッセージの冗長レベル。「
RECOVERYコンポーネント」を参照。systemLog.component.storage.recovery.verbosityが設定されていない場合は、systemLog.component.storage.verbosityレベルもリカバリ コンポーネントに適用されます。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンに関連したコンポーネントのログ メッセージの冗長レベル。「
WTコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtBackup.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行されたバックアップ操作に関連したコンポーネントのログ メッセージの詳細レベル。「
WTBACKUPコンポーネント」を参照。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtCheckpoint.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行されるチェックポイント操作に関連するコンポーネントのログ メッセージの冗長度。「
WTCHKPTコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtCompact.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行される圧縮操作に関連するコンポーネントのログ メッセージの冗長度。「
WTCMPCTコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtEviction.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行されるエビクション操作に関連するコンポーネントのログ メッセージの冗長度。「
WTEVICTコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtHS.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行される履歴保存操作に関連するコンポーネントのログ メッセージの冗長度。「
WTHSコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtRecovery.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行されるリカバリ操作に関連するコンポーネントのログ メッセージの冗長度。「
WTRECOVコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtRTS.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行される安定状態へのロールバック(RTS)操作に関連するコンポーネントのログ メッセージの冗長度。「
WTRTSコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtSalvage.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行されるサルベージ操作に関連するコンポーネントのログ メッセージの冗長度。「
WTSLVGコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtTimestamp.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって使用されるタイムスタンプに関連するコンポーネントのログ メッセージの冗長度。「
WTTSコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtTransaction.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行されるトランザクション操作に関連するコンポーネントのログ メッセージの冗長度。「
WTTXNコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtVerify.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行される検証操作に関連するコンポーネントのログ メッセージの冗長度。「
WTVRFYコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.storage.wt.wtWriteLog.verbosityタイプ: 整数
デフォルト: -1
バージョン 5.3 で追加。
WiredTiger ストレージエンジンによって実行されるログ書き込み (write) 操作に関連するコンポーネントのログ メッセージの冗長度。「
WTWRTLOGコンポーネント」を参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
systemLog.component.transaction.verbosityタイプ: 整数
デフォルト: 0
トランザクションに関連するコンポーネントのログ メッセージの冗長レベル。
TXNコンポーネントを参照してください。冗長レベルは次のように
0から5までの範囲で指定できます。
processManagement オプション
processManagement: fork: <boolean> pidFilePath: <string> timeZoneInfo: <string>
processManagement.forkタイプ: ブール値
デフォルト: false
デーモン モードを有効にして、
mongosまたはmongodプロセスをバックグラウンドで実行します。デフォルトでは、mongosまたはmongodは、デーモンとして実行されません。mongosまたはmongodをデーモンとして使用するには、processManagement.forkを設定するか、デーモン化プロセスを取り扱う制御プロセス(例:systemd)を使用します。processManagement.forkオプションは Windows ではサポートされていません。Linux パッケージ初期化スクリプトでは、
processManagement.forkがデフォルトから変更されることは想定されていません。 Linux パッケージを使用してprocessManagement.forkを変更する場合は、独自の初期化スクリプトを使用し、組み込みスクリプトを無効にする必要があります。
processManagement.pidFilePath型: string
mongosプロセスまたはmongodプロセスのプロセス ID(PID)を保存するファイルの場所を指定します。mongodプロセスまたはmongosプロセスを実行中のユーザーは、このパスに書込む (write) ことができる必要があります。processManagement.pidFilePathオプションが指定されていない場合、プロセスは PID ファイルを作成しません。このオプションは通常、processManagement.forkの設定と組み合わせて使用した場合にのみ役立ちます。注意
Linux
Linux では、PID ファイルの管理は通常、ディストリビューションの初期化システムによって行われます。通常、
/etc/init.dディレクトリ内のサービス ファイル、またはsystemctlに登録された systemd ユニット ファイルが使用されます。 これらの初期化システムのいずれも使用していない場合にのみ、processManagement.pidFilePathオプションを使用してください。 詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。注意
MacOS
macOS では、PID ファイル管理は通常
brewによって処理されます。 macOS システムでbrewを使用していない場合にのみ、processManagement.pidFilePathオプションを使用してください。 詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。
processManagement.timeZoneInfo型: string
タイムゾーン データベースをロードするフルパス。 このオプションが指定されていない場合、MongoDB は組み込みのタイムゾーンデータベースを使用します。
Linux パッケージと macOS パッケージに含まれる構成ファイルでは、タイムゾーン データベース パスがデフォルトで
/usr/share/zoneinfoに設定されています。組み込みのタイム ゾーン データベースは、 Olson および IANA のタイムゾーンデータベースのコピーです。タイム ゾーン データベースは MongoDB のリリース時にアップデートされますが、タイム ゾーン データベースと MongoDB のリリース サイクルは異なります。タイム ゾーン データベースの最新リリースは、当社の ダウンロードサイト から入手できます。
警告
MongoDBはサードパーティのtimelibライブラリを使用して、タイムゾーン間の正確な変換を提供します。最近の更新により、
timelibはMongoDBの古いバージョンで不正確なタイムゾーン変換を作成する可能性があります。5.0 より前のバージョンの MongoDB でタイムゾーン データベースに明示的にリンクするには、タイムゾーン データベース をダウンロードし、
timeZoneInfoパラメーターを使用します。
net オプション
バージョン 5.0 で変更: MongoDB は、net.serviceExecutor構成オプションとそれに対応する --serviceExecutor コマンドライン オプションを削除します。
net: port: <int> bindIp: <string> bindIpAll: <boolean> maxIncomingConnections: <int> wireObjectCheck: <boolean> ipv6: <boolean> unixDomainSocket: enabled: <boolean> pathPrefix: <string> filePermissions: <int> tls: certificateSelector: <string> clusterCertificateSelector: <string> mode: <string> certificateKeyFile: <string> certificateKeyFilePassword: <string> clusterFile: <string> clusterPassword: <string> CAFile: <string> clusterCAFile: <string> clusterAuthX509: attributes: <string> extensionValue: <string> CRLFile: <string> allowConnectionsWithoutCertificates: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> disabledProtocols: <string> FIPSMode: <boolean> logVersions: <string> compression: compressors: <string>
net.portタイプ: 整数
デフォルト:
mongod(シャード ノードでもコンフィギュレーションサーバー ノードでもない場合)かmongosインスタンスの場合は 27017mongodがshard memberの場合、27018mongodがconfig server memberの場合、27019
MongoDB インスタンスがクライアント接続を待機するTCP ポート。
net.portオプションは、0から65535までの範囲の値を受け入れます。ポートを0に設定すると、mongosまたはmongodがオペレーティング システムによって割り当てられた任意のポートを使用するように構成されます。
net.bindIp型: string
デフォルト: localhost
mongosまたはmongodがクライアント接続を待機するべきホスト名、IP アドレス、Unix ドメイン ソケットの完全パス。mongosまたはmongodを任意のインターフェースにバインドできます。複数のアドレスにバインドするには、カンマで区切った値のリストを入力します。例
localhost,/tmp/mongod.sockIPv4 アドレスと IPv6 アドレスの両方、 IPv4 アドレスまたは IPv6 アドレスのいずれかに解決するホスト名が指定できます。
例
localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513注意
IPv6 アドレス、または IPv6 アドレスに解決するホスト名を
net.bindIpに指定する場合、IPv6 サポートを有効にするには、mongosまたはmongodをnet.ipv6 : trueに設定して開始する必要があります。net.bindIpに IPv6 アドレスを指定しても、IPv6 サポートは有効になりません。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」と入力します。すべての IPv4 と IPv6 アドレスにバインドするには、
::,0.0.0.0またはアスタリスク"*"を入力します(アスタリスクは YAML エイリアス ノード と区別するために引用符で囲みます)。または、net.bindIpAll設定を使用します。注意
net.bindIpとnet.bindIpAllは相互に排他的です。 つまり、どちらか一方を指定できますが、両方を指定することはできません。コマンドライン オプション
--bind_ipは、構成ファイルの設定net.bindIpを上書きします。
分裂ホライズンDNS のクラスター ノードを構成するにはIPアドレスの代わりにホスト名を使用します。
MongoDB v5.0 以降の
replSetInitiateとreplSetReconfigでは、ホスト名の代わりに IP アドレスを使用する設定は拒否します。ホスト名を使用するように更新できないノードを変更するには、
disableSplitHorizonIPCheckを使用します。このパラメーターはコンフィギュレーション コマンドにのみ適用されます。mongodとmongosは起動時の検証に関してdisableSplitHorizonIPCheckに依存しません。 ホスト名の代わりに IP アドレスを使用する従来のmongodおよびmongosインスタンスは、アップグレード後に起動できます。IP アドレスで設定されたインスタンスでは、IP アドレスの代わりにホスト名を使用するように警告がログに記録されます。
net.bindIpAllタイプ: ブール値
デフォルト: false
true の場合、
mongosまたはmongodインスタンスはすべての IPv 4アドレス(つまり0.0.0.0)。mongosまたはmongodがnet.ipv6 : trueで始まる場合、net.bindIpAllはすべての IPv 6アドレス(つまり::)。mongosまたはmongodでは、net.ipv6 : trueに設定して開始された場合にのみ IPv6 がサポートされます。net.bindIpAllのみを指定しても、IPv6 のサポートは有効になりません。警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
IP バインディングの詳細については、「自己管理型配置の IP バインディング」ドキュメントを参照してください。
あるいは、
net.bindIpを::,0.0.0.0またはアスタリスク"*"に設定し(アスタリスクは YAML エイリアス ノードと区別するために引用符で囲みます)、すべての IP アドレスにバインドします。注意
net.bindIpとnet.bindIpAllは相互に排他的です。 両方のオプションを指定すると、mongosまたはmongodはエラーをスローして終了します。
net.maxIncomingConnectionsタイプ: 整数
バージョン8.1 での変更:(および8.0.16 )
Default (Windows): 1,000,000Default (Linux): (RLIMIT_NOFILE / 2) * 0.8注意
Linuxでは、
net.maxIncomingConnectionsは (RLIT_NOFILE / 2) * 0.8 の値以下である必要があります。より大きな値を設定しようとすると、 MongoDB は自動的にデフォルトのを使用します。mongosまたはmongodが受け入れる同時接続の最大数です。この設定は、オペレーティング システムで設定されている最大接続追跡しきい値よりも高い場合は効果がありません。このオプションに、あまりにも低い値は割り当てないでください。通常のアプリケーション操作中にエラーが発生する可能性があります。
これは、クライアントで接続を複数作成して、それらを閉じるのではなくタイムアウトさせる場合、特に
mongosにとって有用です。この場合、
maxIncomingConnectionsを、クライアントが作成する接続の最大数、または接続プールの最大サイズよりも少し高い値に設定します。この設定により、
mongosが個々のシャードで接続スパイクが発生するのを防ぎます。 このようなスパイクが発生すると、 シャーディングされたクラスター の操作とメモリ割り当てが中断されることがあります。
net.wireObjectCheckタイプ: ブール値
デフォルト: true
trueの場合、mongodインスタンスやmongosインスタンスでは、クライアントからのリクエストを受け取るとすぐにすべてのリクエストを検証し、クライアントが MongoDB データベースに不正な BSON を挿入するのを防ぎます。サブドキュメントのネストが深いオブジェクトの場合、
net.wireObjectCheckはパフォーマンスにわずかな影響を与える可能性があります。
net.ipv6タイプ: ブール値
デフォルト: false
IPv6 のサポートを有効にするには、
net.ipv6をtrueに設定します。mongosおよびmongodでは、デフォルトで IPv6 のサポートは無効です。net.ipv6を設定しても、mongosおよびmongodがローカル IPv6 アドレスまたはインターフェースをリッスンするように指示しません。mongosおよびmongodを IPv6 インターフェースでリッスンするように設定するには、次のいずれかを行う必要があります。IPv 6アドレスに解決される 1 つ以上の IPv 6アドレスまたはホスト名を使用して
net.bindIpを構成するか、あるいはnet.bindIpAllをtrueに設定します。
net.unixDomainSocket オプション
net: unixDomainSocket: enabled: <boolean> pathPrefix: <string> filePermissions: <int>
net.unixDomainSocket.enabledタイプ: ブール値
デフォルト: true
UNIX ドメイン ソケットでのリスニングを有効または無効にします。
net.unixDomainSocket.enabledは Unix ベースのシステムにのみ適用されます。net.unixDomainSocket.enabledがtrueの場合、mongosまたはmongodが UNIX ソケットでリッスンします。次のいずれかが true でない限り、
mongosプロセスやmongodプロセスは常に UNIX ソケットで待機します。net.unixDomainSocket.enabledとはfalse--nounixsocketが設定されています。コマンドライン オプションは構成ファイルの設定よりも優先されます。net.bindIpが設定されていないnet.bindIpはlocalhostまたはそれに関連付けられた IP アドレスを指定しません
公式の Install MongoDB Community Edition on Debian および Install MongoDB Community Edition on Red Hat or CentOS パッケージからインストールされた
mongosまたはmongodでは、デフォルトでbind_ip設定が127.0.0.1に設定されています。
net.unixDomainSocket.pathPrefix型: string
デフォルト: /tmp
UNIX ソケットのパス。
net.unixDomainSocket.pathPrefixは Unix ベースのシステムにのみ適用されます。このオプションに値がない場合、
mongosプロセスやmongodプロセスでは、プレフィックスとして/tmpのソケットを作成します。MongoDB は、次のいずれかに該当しない限り、UNIX ソケットを作成して待機します。net.unixDomainSocket.enabledとはfalse--nounixsocketが設定されているnet.bindIpが設定されていないnet.bindIpはlocalhostまたはそれに関連付けられた IP アドレスを指定しません
net.unixDomainSocket.filePermissionsタイプ: int
デフォルト:
0700UNIX ドメイン ソケット ファイルのパーミッションを設定します。
net.unixDomainSocket.filePermissionsは Unix ベースのシステムにのみ適用されます。
net.tls オプション
注意
tlsオプションは、前のsslオプションと同じ機能を提供します。
net: tls: mode: <string> certificateKeyFile: <string> certificateKeyFilePassword: <string> certificateSelector: <string> clusterCertificateSelector: <string> clusterFile: <string> clusterPassword: <string> clusterAuthX509: attributes: <string> extensionValue: <string> CAFile: <string> clusterCAFile: <string> CRLFile: <string> allowConnectionsWithoutCertificates: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> disabledProtocols: <string> FIPSMode: <boolean> logVersions: <string>
net.tls.mode型: string
すべてのネットワーク接続に使用される TLS を有効にします。
net.tls.mode設定の引数は次のいずれかになります。値説明disabledサーバーは TLS を使用しません。
allowTLSサーバー間の接続では TLS は使用されません。着信接続の場合、サーバーでは TLS と非 TLS のいずれも受け付けます。
preferTLSサーバー間の接続では TLS が使用されます。着信接続の場合、サーバーでは TLS と非 TLS のいずれも受け付けます。
requireTLSサーバーは TLS 暗号化接続のみを使用し、受け入れます。
--tlsCAFileまたはtls.CAFileが指定されておらず、X.509 認証を使用していない場合は、tlsUseSystemCAパラメータをtrueに設定する必要があります。これにより、MongoDB は TLS 対応サーバーに接続する際にシステム全体の CA 証明書ストアを使用します。X.509 認証を使用する場合、 を使用しない限り、
--tlsCAFileまたはtls.CAFile--tlsCertificateSelectorを指定する必要があります。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.certificateKeyFile型: string
TLS 証明書とキーの両方を含む
.pemファイル。macOS または Windows では、
net.tls.certificateSelector設定を使用して、PEM キー ファイルの代わりに、オペレーティング システムのセキュリティで保護されている証明書ストアからの証明書を指定できます。certificateKeyFileとnet.tls.certificateSelectorは相互に排他的です。指定できるのは 1 つだけです。Linux および BSD では、TLS が有効になっている場合、
net.tls.certificateKeyFileを指定する必要があります。Windows または macOS では、TLS が有効になっている場合、
net.tls.certificateKeyFileまたはnet.tls.certificateSelectorのいずれかを指定する必要があります。重要
Windows の場合のみ、MongoDB では暗号化された PEM ファイルをサポートしていません。暗号化された PEM ファイルがあると、
mongodの起動は失敗します。Windows の TLS で使用する証明書を安全に保存してアクセスするには、net.tls.certificateSelectorを使用します。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.certificateKeyFilePassword型: string
証明書鍵ファイルの複合化用パスワード(
certificateKeyFile)。 証明書キー ファイルが暗号化されている場合にのみ、net.tls.certificateKeyFilePasswordオプションを使用します。 いずれの場合も、mongosまたはmongodはすべてのログとレポート出力からパスワードを削除します。Linux/BSD で
net.tls.certificateKeyFilePasswordオプションを指定しない場合、PEM ファイル内の秘密キーが暗号化されていると、MongoDB はパスフレーズの入力を要求します。詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。
macOS で PEM ファイル内の秘密キーが暗号化されている場合、
net.tls.certificateKeyFilePasswordオプションを明示的に指定する必要があります。 あるいは、PEM キー ファイルの代わりに、セキュア システム ストア(net.tls.certificateSelectorを参照)から証明書を取得して使用するか、暗号化されていない PEM ファイルを使用することもできます。Windows では、MongoDB は暗号化された証明書をサポートしていません。暗号化された PEM ファイルに遭遇すると、
mongodは失敗します。代わりに、net.tls.certificateSelectorを使用してください。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.certificateSelector型: string
TLS/SSL に使用する証明書をオペレーティング システムの証明書ストアから選択するための証明書プロパティを指定します。
net.tls.certificateKeyFileの代替として Windows および macOS で利用できます。net.tls.certificateKeyFileとnet.tls.certificateSelectorのオプションは相互に排他的です。指定できるのは 1 つだけです。net.tls.certificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。
mongodは、指定された TLS 証明書の完全な証明書チェーンを検証するために必要な CA 証明書をオペレーティング システムのセキュリティで保護された証明書ストアで検索します。 具体的には、安全な証明書ストアには、TLS 証明書への完全な証明書チェーンを構築するために必要なルート CA 証明書と中間 CA 証明書が含まれている必要があります。警告
net.tls.certificateSelectorおよび/またはnet.tls.clusterCertificateSelectorを使用する場合、ルートおよび中間 CA 証明書を指定するために、net.tls.clusterFileまたはnet.tls.CAFileを使用することは 推奨され ません 。たとえば、TLS 証明書が単一のルート CA 証明書によって署名されている場合、セキュア証明書ストアには当該ルート CA 証明書が含まれている必要があります。TLS 証明書が中間 CA 証明書によって署名されている場合、セキュア証明書ストアには中間 CA 証明書とルート CA 証明書が含まれている必要があります。
注意
net.tls.certificateSelectorまたは--tlsCertificateSelectorをthumbprintに設定している場合、rotateCertificatesコマンドまたはdb.rotateCertificates()shell メソッドは使用できません。
net.tls.clusterCertificateSelector型: string
内部 X.509 メンバーシップ認証に使用するために、オペレーティング システムのセキュリティで保護された証明書ストアから一致する証明書を選択するための証明書プロパティを指定します。
net.tls.clusterFileの代替として、Windows および macOS で利用可能です。net.tls.clusterFileとnet.tls.clusterCertificateSelectorのオプションは相互に排他的です。指定できるのは 1 つだけです。net.tls.clusterCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。mongodは、指定されたクラスター証明書の完全な証明書チェーンを検証するために必要な CA 証明書をオペレーティング システムのセキュリティで保護された証明書ストアで検索します。 具体的には、安全な証明書ストアには、クラスター証明書への完全な証明書チェーンを構築するために必要なルート CA 証明書と中間 CA 証明書が含まれている必要があります。警告
net.tls.certificateSelectorおよび/またはnet.tls.clusterCertificateSelectorを使用する場合、ルートおよび中間 CA 証明書を指定するために、net.tls.CAFileまたはnet.tls.clusterCAFileを使用することは推奨されません。たとえば、クラスター証明書が単一のルート CA 証明書によって署名されている場合、セキュア証明書ストアには当該ルート CA 証明書が含まれている必要があります。クラスター証明書が中間 CA 証明書によって署名されている場合、セキュア証明書ストアには中間 CA 証明書とルート CA 証明書が含まれている必要があります。
mongodmongosX.509 証明書が30mongod/mongosホスト システム時間から 日以内に期限切れになる場合、 / は接続時に警告を記録します。
net.tls.clusterFile型: string
クラスターまたはレプリカ セットのメンバーシップ認証のための X.509 証明書キー ファイルを含む
.pemファイル。macOS または Windows では、PEM 鍵ファイルの代わりに、
net.tls.clusterCertificateSelectorオプションを使用してオペレーティング システムの安全な証明書ストアから証明書を指定できます。net.tls.clusterFileオプションとnet.tls.clusterCertificateSelectorオプションは相互に排他的です。指定できるのは 1 つだけです。net.tls.clusterFileが内部クラスター認証用の.pemファイルまたは代替のnet.tls.clusterCertificateSelectorを指定しない場合、クラスターはcertificateKeyFile設定で指定された.pemファイルまたはnet.tls.certificateSelectorによって返された証明書を使用します。X.509 認証を使用する場合、 を使用しない限り、
--tlsCAFileまたはtls.CAFile--tlsCertificateSelectorを指定する必要があります。mongodmongosX.509 証明書が30mongod/mongosホスト システム時間から 日以内に期限切れになる場合、 / は接続時に警告を記録します。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。重要
Windows の場合のみ、MongoDB では暗号化された PEM ファイルをサポートしていません。暗号化された PEM ファイルがあると、
mongodの起動は失敗します。Windows のメンバーシップ認証で使用する証明書を安全に保存してアクセスするには、net.tls.clusterCertificateSelectorを使用します。
net.tls.clusterPassword型: string
で指定された X.509
--sslClusterFile証明書キーファイルの復号化パスワード。証明書キーファイルが暗号化されている場合にのみ、net.tls.clusterPasswordオプションを使用します。いずれの場合も、mongosまたはmongodはすべてのログとレポート出力からパスワードを削除します。Linux/BSD で
net.tls.clusterPasswordオプションを指定しない場合、x.509 ファイル内の秘密キーが暗号化されていると、MongoDB はパスフレーズの入力を要求します。詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。
macOS で x.509 ファイル内の秘密キーが暗号化されている場合は、
net.tls.clusterPasswordオプションを明示的に指定する必要があります。あるいは、クラスター PEM ファイルの代わりに、セキュア システム ストア(net.tls.clusterCertificateSelectorを参照)から証明書を取得して使用するか、暗号化されていない PEM ファイルを使用することもできます。Windows では、MongoDB は暗号化された証明書をサポートしていません。 暗号化された PEM ファイルがあると、
mongodは処理に失敗します。net.tls.clusterCertificateSelectorを使用します。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.clusterAuthX509バージョン 7.0 で追加。
net: tls: clusterAuthX509: attributes: <string> extensionValue: <string>
net.tls.clusterAuthX509.attributes型: string
バージョン 7.0 で追加。
証明書サブジェクト名にクラスター ノードが含まれていることがサーバーで予期されている X.509DN(Distinguished Name、識別名)属性と値のセットを指定します。こうすると、
DC、O、OUの値を含まない証明書を使用してクラスター ノードを認証できるようになります。attributesが設定されている場合、MongoDB は識別名を使用して証明書を照合し、拡張値を無視します。
net.tls.clusterAuthX509.extensionValue型: string
バージョン 7.0 で追加。
MongoDBクラスター メンバーシップ拡張 OID、
1.3.6.1.4.1.34601.2.1.2に対応する拡張値を指定します。サーバーでは、クラスター ノードの証明書にこの拡張機能が含まれていることが想定されています。こうすると、DC、O、OUの値を含まない証明書を使用してクラスター ノードを認証できるようになります。extensionValueを設定すると、 MongoDB は証明書拡張値を使用して証明書を照合し、識別名(DN)を無視します。OID
1.3.6.1.4.1.34601.2.1.2を使用して証明書を作成する場合は、次のガイドラインを考慮してください。拡張値は 128 バイト未満にしてください。
拡張機能の内部値として単一の UTF8string を使用します。
mongodは他の string タイプを受け入れません。OpenSSL を使用する場合は、UTF8string をエンコードするため、ASN.1 タイプを明示的に指定する必要があります。(例: )。
コマンドラインで、
-addext: 1.3.6.1.4.1.34601.2.1.2=ASN1:UTF8String:<your-value>を指定します。OpenSSL 構成ファイルで、
1.3.6.1.4.1.34601.2.1.2 = ASN1:UTF8String:<your-value>と指定します。
警告
ASN1:UTF8String:を省略すると、OpenSSL は別のエンコーディングまたは未加工の oct を選択する可能性があり、mongodは「Unsupported tags」または「Unknown DER」タグで拒否します。
net.tls.CAFile型: string
証明機関からのルート証明書チェーンを含む
.pemファイル。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。- Windows と macOS のみ
net.tls.certificateSelectorおよび/またはnet.tls.clusterCertificateSelectorを使用する場合、ルート CA 証明書と中間 CA 証明書の指定にはnet.tls.CAFileを使用しません。net.tls.certificateSelectorおよび/またはnet.tls.clusterCertificateSelector証明書の完全な信頼チェーンの検証に必要なすべての CA 証明書は、安全な証明書ストアに保存します。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.clusterCAFile型: string
接続を確立するクライアントによって提示された証明書を検証するために使用される証明機関からのルート証明書チェーンを含む
.pemファイル。 相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。net.tls.clusterCAFileにはnet.tls.CAFileが設定されている必要があります。net.tls.clusterCAFileで、接続を確立するクライアントからの証明書を検証するための.pemファイルが指定されない場合、クラスターではnet.tls.CAFileオプションで指定された.pemファイルが使用されます。net.tls.clusterCAFileクライアントからサーバー、サーバーからクライアントへのTLS ハンドシェイクの各部分を検証するために、異なる認証局を使用することができます。4.0 以降、macOS または Windows では、PEM キー ファイルの代わりに、オペレーティング システムのセキュア ストアからの証明書を使用できます。
net.tls.clusterCertificateSelector参照してください。セキュア ストアを使用する場合は、net.tls.clusterCAFileを指定する必要はありませんが、指定することもできます。- Windows と macOS のみ
net.tls.certificateSelectorおよび/またはnet.tls.clusterCertificateSelectorを使用する場合、ルート CA 証明書と中間 CA 証明書の指定にはnet.tls.clusterCAFileを使用しません。net.tls.certificateSelectorおよび/またはnet.tls.clusterCertificateSelector証明書の完全な信頼チェーンの検証に必要なすべての CA 証明書は、安全な証明書ストアに保存します。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.CRLFile型: string
証明書失効リストを含む
.pemファイル。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。注意
macOS では、
net.tls.CRLFileは指定できません。代わりに、システム SSL 証明書ストアを使用できます。これは、OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効ステータスを検証するものです。システム SSL 証明書ストアを使用するには、net.tls.certificateSelectorを参照してください。証明書の失効を確認するために、MongoDB は CRL ファイルを指定するか、システム SSL 証明書ストアを使用する代わりに、デフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を使用し
enables。
TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.allowConnectionsWithoutCertificatesタイプ: ブール値
デフォルト: false
falseの場合、すべてのクライアントがクライアント TLS 証明書を提供する必要があります。trueの場合、クライアントはクライアント証明書を提供する必要はありませんが、mongodまたはmongosによって TLS/SSL 接続が暗号化されます。クライアントがクライアント証明書を提供する場合、
net.tls.allowConnectionsWithoutCertificatesに設定した値に関係なく、mongosまたはmongodは、CAFileで指定されたルート証明書チェーン、またはtlsUseSystemCAがtrueの場合はシステム CA ストアを使用して証明書の検証を実行し、無効な証明書を持つクライアントを拒否します。mongosまたはmongodに証明書を提示しない、または提示できないクライアントを含む混合配置がある場合は、net.tls.allowConnectionsWithoutCertificatesオプションを使用します。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
net.tls.allowInvalidCertificatesタイプ: ブール値
デフォルト: false
クラスター内の他のサーバーの TLS 証明書の検証チェックを有効または無効にし、無効な証明書を使用して接続できるようにします。
注意
X.509 認証を使用するときに
--tlsAllowInvalidCertificatesまたはtls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。net.tls.allowInvalidCertificates設定を使用すると、MongoDB では無効な証明書の使用に関する警告がログに記録されます。TLS とMongoDB の詳細については、「 自己管理型配置および自己管理型内部認証とメンバーシップ認証で TLS/SSL 用に と
mongodmongosを構成する 」を参照してください。
net.tls.allowInvalidHostnamesタイプ: ブール値
デフォルト: false
net.tls.allowInvalidHostnamesがtrueの場合、MongoDB は TLS 証明書のホスト名の検証を無効にします。 これにより、証明書のホスト名が指定されたホスト名と一致しない場合でも、mongodまたはmongosはクラスター内の他の MongoDB インスタンスに接続できます。TLS とMongoDB の詳細については、「 自己管理型配置で TLS/SSL 用に と を構成する 」を参照してください。
mongodmongos
net.tls.disabledProtocols型: string
TLS によって実行されている MongoDB サーバーで、1 つ以上の特定のプロトコルを使用する着信接続を受け付けないようにします。複数のプロトコルを指定するには、カンマで区切ったプロトコルのリストを使用しますが、このカンマの後にはスペースを入れないでください。プロトコル名の前にスペースがあると、認識されないプロトコルと解釈されるため、サーバーは起動しません。
net.tls.disabledProtocolsは、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からnet.tls.disabledProtocolsを指定します。レプリカセットとシャーディングされたクラスターのノード間では、少なくとも 1 つのプロトコルが共通している必要があります。
Tip
net.tls.FIPSModeタイプ: ブール値
デフォルト: false
mongosまたはmongodの TLS ライブラリの FIPS モードの使用を有効または無効にします。net.tls.FIPSModeオプションを使用するには、システムに FIPS 準拠のライブラリが必要です。注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
net.tls.logVersions型: string
mongosやmongodに対し、クライアントが指定の TLS バージョンを使用して接続した場合にメッセージをログに記録するよう指示します。TLS バージョンを 1 つ指定するか、複数の TLS バージョンのカンマ区切りリストを指定します。
例
クライアントが TLS 1.2または TLS 1.3を使用して接続したときにメッセージをログに記録するよう、
mongosまたはmongodに指示するには、net.tls.logVersionsを"TLS1_2,TLS1_3"に設定します。
net.compression オプション
net: compression: compressors: <string>
net.compression.compressorsDefault: snappy,zstd,zlib
このような
mongodインスタンスやmongosインスタンスと以下の間の通信に使用するデフォルトのコンプレッサーを指定します。配置の他のノード(インスタンスがレプリカセットまたはシャーディングされたクラスターの一部である場合)
OP_COMPRESSEDメッセージ形式をサポートするドライバー
MongoDB では、以下のコンプレッサーをサポートしています。
ネットワーク圧縮を無効にするには、値を
disabledに設定します。重要
両者がネットワーク圧縮を有効にしている場合、メッセージは圧縮されます。そうでなければ、この両者間のメッセージは非圧縮となります。
複数のコンプレッサーを指定する場合、通信イニシエーターだけでなく、コンプレッサーをリストする順序も重要になります。たとえば、
mongoshが次のネットワーク コンプレッサーzlib,snappyを指定し、mongodがsnappy,zlibを指定する場合、mongoshとmongodの間のメッセージはzlibを使用します。両者に共通のコンプレッサーが 1 つもなければ、両者間のメッセージは圧縮されません。例えば、
mongoshではネットワーク コンプレッサーとしてzlibが指定され、mongodではsnappyが指定されている場合、mongoshとmongodの間のメッセージは圧縮されません。
security オプション
security: keyFile: <string> clusterAuthMode: <string> authorization: <string> transitionToAuth: <boolean> javascriptEnabled: <boolean> redactClientLogData: <boolean> clusterIpSourceAllowlist: - <string> sasl: hostName: <string> serviceName: <string> saslauthdSocketPath: <string> enableEncryption: <boolean> encryptionCipherMode: <string> encryptionKeyFile: <string> kmip: keyIdentifier: <string> rotateMasterKey: <boolean> serverName: <string> port: <string> clientCertificateFile: <string> clientCertificatePassword: <string> clientCertificateSelector: <string> serverCAFile: <string> connectRetries: <int> connectTimeoutMS: <int> ldap: servers: <string> bind: method: <string> saslMechanisms: <string> queryUser: <string> queryPassword: <string | array> useOSDefaults: <boolean> transportSecurity: <string> timeoutMS: <int> userToDNMapping: <string> authz: queryTemplate: <string> validateLDAPServerConfig: <boolean>
security.keyFile型: string
MongoDB インスタンスが シャーディングされたクラスターまたはレプリカセット内で相互に認証するために使用する共有シークレットを保存するキー ファイルへのパスです。
keyFileはsecurity.authorization} を意味します。 詳細については、「自己管理型内部認証とメンバーシップ認証」を参照してください。内部メンバーシップ認証用のキーファイルでは、キーファイル内に複数のキーを含めるために YAML 形式が使用されます。YAML 形式は次のいずれかを受け入れます。
1 つのキー文字列(以前のバージョンと同じ)
キー文字列のシーケンス
YAML 形式は、テキストファイル形式を使用する既存の単一のキー キーファイルと互換性があります。
security.clusterAuthMode型: string
デフォルト: 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 認証を使用する場合、 を使用しない限り、
--tlsCAFileまたはtls.CAFile--tlsCertificateSelectorを指定する必要があります。TLS とMongoDB の詳細については、「 自己管理型配置の TLS/SSL 用に と を構成する
mongodmongosと クライアントの TLS/SSL 構成 を参照してください。
security.authorization型: string
デフォルト: disabled
データベースリソースや操作に対する各ユーザーのアクセスを管理するために、ロールベース アクセス制御 (RBAC) を有効または無効にします。
このオプションは次のいずれかに設定します。
値説明enabledユーザーは、権限が付与されているデータベース リソースとアクションにのみアクセスできます。
disabledユーザーは任意のデータベースにアクセスして任意のアクションを実行することができます。
詳細については、「自己管理型配置のロールベースのアクセス制御」を参照してください。
security.transitionToAuthタイプ: ブール値
デフォルト: false
mongodまたはmongosが配置内の他のmongodインスタンスおよびmongosインスタンスとの間で、認証済みの接続および非認証の接続の受け入れと作成を許可します。これは、レプリカセットやシャーディングされたクラスターを、認証なしの構成から内部認証へ段階的に移行するために使用されます。security.keyFileなどの内部認証メカニズムを指定する必要があります。たとえば、キーファイルを内部認証に使用する場合、
mongodやmongosでは、一致するキーファイルを使用して、配置にある任意のmongodやmongosとの認証された接続を作成します。セキュリティ メカニズムが一致しない場合、mongodやmongosでは代わりに非認証の接続を利用します。security.transitionToAuthを使用して実行されているmongodまたはmongosでは、ユーザー アクセス制御は強制されません。ユーザーは、アクセス制御チェックなしで配置に接続し、読み取り操作、書込み操作、および管理操作を実行できます。注意
mongodまたはmongosが、内部認証で実行され、かつsecurity.transitionToAuthがない場合、クライアントはユーザー アクセス制御を使用して接続する必要があります。クライアントを更新して、適切なユーザーを使用してmongodまたはmongosに接続し再起動する前に、mongodまたはmongosにsecurity.transitionToAuthがない状態で接続する必要があります。
security.javascriptEnabledタイプ: ブール値
デフォルト: true
重要
サーバーサイド JavaScript の非推奨化
MongoDB 8.0以降、サーバーサイド JavaScript 関数(
$accumulator、$function、$where)は非推奨です。 MongoDB では、これらの関数を実行すると警告がログに記録されます。MongoDB 5.0 以降では map-Reduce は非推奨となります。
サーバー側でのJavaScript の実行を有効または無効にします無効にすると、
$whereクエリ演算子、mapReduceコマンド、$accumulator、$functionなど、サーバー側で JavaScript コードの実行を行う操作はできません。このような操作をしない場合は、サーバー側のスクリプトを無効にします。
security.javascriptEnabledはmongodとmongosの両方で使用できます。 以前のバージョンでは、この設定はmongodでのみ利用可能です。
security.redactClientLogDataタイプ: ブール値
MongoDB Enterprise でのみ使用できます。
security.redactClientLogDataを使用して実行されているmongodまたはmongosは、ログに記録される前にログ イベントに付随するすべてのメッセージを編集します。これにより、mongodまたはmongosがデータベースに保存されている潜在的に機密性の高いデータを診断ログに書込むことを防ぎます。エラー コードやオペレーション コード、行番号、ソース ファイル名などのメタデータは、引き続きログに表示されます。規制要件へのコンプライアンスの補助に、
security.redactClientLogDataを保管時の暗号化および TLS/SSL(トランスポート暗号化)と組み合わせて使用します。たとえば、MongoDB の配置では、個人を特定できる情報(PII)が 1 つ以上のコレクションに保存される場合があります。
mongodまたはmongosは、CRUD 操作やシャーディングメタデータなどに関連するイベントをログに記録します。mongodまたはmongosは、これらのログ操作の一環として PII を公開する可能性があります。security.redactClientLogDataとともに実行されるmongodまたはmongosは、ログに出力される前にこれらのイベントに付随するメッセージをすべて除き、効果的に PII を排除します。とともに実行されている
mongossecurity.redactClientLogDataまたはmongodの診断は、ログ イベントに関連するデータが不足しているため、より困難になる可能性があります。がログ出力に与える影響の例については、security.redactClientLogDataプロセス ログ のマニュアル ページを参照してください。稼働中の
mongodやmongosでも、setParameterをredactClientLogDataパラメーターとともに使用して、この設定を構成できます。
security.clusterIpSourceAllowlistタイプ: list
バージョン 5.0 で追加
バージョン 5.2 で変更。
IP アドレス/CIDR(クラスレス ドメイン間ルーティング)のリスト範囲に対して、
mongodはレプリカセットの他のノードおよび、シャーディングされたクラスターの一部である場合は、mongosインスタンスからの認証リクエストを検証します。mongodは、発信元 IP がリストに明示的に含まれているか、またはリスト内の CIDR 範囲に属していることを確認します。IP アドレスが存在しない場合、サーバーはmongodまたはmongosを認証しません。security.clusterIpSourceAllowlistは、認証なしで開始されたmongodには影響しません。MongoDB 5.2以降では、
setParameterを使用して実行中のmongodまたはmongosでsecurity.clusterIpSourceAllowlistを構成できますこの例では、ランタイム時に
security.clusterIpSourceAllowlistを更新して、IP アドレス"1.1.1.1/24"、"2.2.2.2/16"、および"3.3.3.3"を含めます。db.adminCommand( { setParameter: 1, "clusterIpSourceAllowlist": ["1.1.1.1/24", "2.2.2.2/16", "3.3.3.3"] } ); この例では、ランタイム時に
security.clusterIpSourceAllowlistを更新してすべての IP アドレスを除外します。db.adminCommand( { setParameter: 1, "clusterIpSourceAllowlist": null } ); security.clusterIpSourceAllowlistは、認証なしで開始されたmongodには影響しません。security.clusterIpSourceAllowlistには、各IPv4/6 アドレスまたはクラスレス ドメイン間ルーティング(CIDR)の範囲を、YAML リストとして指定する必要があります。security: clusterIpSourceAllowlist: - 192.0.2.0/24 - 127.0.0.1 - ::1 重要
クラスター コンポーネント間の正常な通信を確保するために、
security.clusterIpSourceAllowlistには、IP アドレス、または各レプリカセットのノードもしくは配置内にあるmongosを含む CIDR 範囲が含まれていることを確認してください。
キー管理構成オプション
security: enableEncryption: <boolean> encryptionCipherMode: <string> encryptionKeyFile: <string> kmip: keyIdentifier: <string> rotateMasterKey: <boolean> serverName: <string> port: <string> clientCertificateFile: <string> clientCertificatePassword: <string> clientCertificateSelector: <string> serverCAFile: <string> connectRetries: <int> connectTimeoutMS: <int> activateKeys: <boolean> keyStatePollingSeconds: <int>
security.enableEncryptionタイプ: ブール値
デフォルト: false
WiredTiger ストレージエンジンの暗号化を有効にします。暗号化キーと構成を渡すには、
trueに設定する必要があります。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.encryptionCipherMode型: string
デフォルト:
AES256-CBC保管時の暗号化に使用するモードです。
モード説明AES256-CBC暗号ブロック チェーン モードの 256 ビット AES(Advanced Encryption Standard)
AES256-GCMガロア カウンタ モードの 256 ビットAES
Linuxでのみ利用可能です。
Windows 上の MongoDB Enterprise では、保管時の暗号化のブロック暗号として
AES256-GCMをサポートしなくなりました。この使用は、Linux でのみサポートされています。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.encryptionKeyFile型: string
KMIP以外の プロセスで鍵を管理する場合のローカル鍵ファイルへのパスです。 KMIP 以外のプロセスでキーを管理する場合にのみ設定します。 データがすでに KMIP を使用して暗号化されている場合には、MongoDB はエラーをスローします。
security.enableEncryptionがtrueである必要があります。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.keyIdentifier型: string
KMIP サーバー内の既存のキーに対する一意の KMIP 識別子です。この識別子を指定することで、識別子に関連付けられたキーをシステム キーとして使用できます。この設定は、
mongodインスタンスの暗号化を初めて有効にするときにのみ使用できます。security.enableEncryptionが true である必要があります。未指定の場合、MongoDB は KMIP サーバーにシステムキーとして使う新しいキーの作成を要求します。
KMIP サーバーが指定された識別子を持つキーを見つけられない場合、またはデータがすでにキーで暗号化されている場合、MongoDB でエラーが発生します。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.rotateMasterKeyタイプ: ブール値
デフォルト: false
true の場合、マスター キーをローテーションし、内部キーストアを再暗号化します。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.serverName型: string
接続先の KMIP サーバーのホスト名または IP アドレスです。
security.enableEncryptionが true である必要があります。複数の KMIP サーバーをカンマ区切りのリスト(例:
server1.example.com,server2.example.com)として指定できます。mongodでは起動時に、リストされている順序で各サーバーへの接続確立が試みられ、正常に接続を確立できた最初のサーバーが選択されます。KMIP サーバーが選択されるのは、起動時のみです。mongodでは、起動時に KMIP サーバーへの接続を検証します。--kmipServerNameに指定するサーバー名は、KMIP サーバーで提示する証明書のサブジェクト代替名SANまたはコモンネームCNのいずれかと一致する必要があります。SANはシステム名または IP アドレスにすることができます。SANが存在する場合、mongodはCNとの一致は試行しません。KMIP サーバーのホスト名や IP アドレスが
SANともCNとも一致しない場合、mongodは起動しません。MongoDB 4.2 以降、SAN の比較を行なう際に、MongoDB は DNS 名または IP アドレスの比較をサポートします。以前のバージョンでは、 MongoDB は DNS 名の比較のみをサポートしていました。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.port型: string
デフォルト: 5696
KMIP サーバーとの通信に使用されるポート番号です。
security.kmip.serverNameが必要です。security.enableEncryptionが true である必要があります。security.kmip.serverNameで複数の KMIP サーバーを指定する場合、mongodは、提供されているすべての KMIP サーバーに対してsecurity.kmip.portで指定されたポートを使用します。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.clientCertificateFile型: string
KMIP サーバーに対して MongoDB を認証するために使用される
.pemファイルへのパスです。指定された.pemファイルには、TLS/SSL 証明書とキーの両方が含まれている必要があります。この設定を使用するには、
security.kmip.serverName設定も指定する必要があります。重要
Windows で KMIP サーバーを使用して暗号化を有効にすると、
security.kmip.clientCertificateFileと KMIP サーバーにより TLS 1.2が強制されます。Windows で KMIP を使用して保管時の暗号化を有効にするには、次の条件を満たす必要があります。
クライアント証明書を Windows 証明書ストアにインポートします。
security.kmip.clientCertificateSelectorオプションを使用します。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.clientCertificatePassword型: string
KMIPサーバーに接続するクライアント証明書の秘密キーを復号化するためのパスワードです。 このオプションはMongoDB をKMIPサーバーに認証するため、 を指定する必要があります。
--kmipClientCertificateFile注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.clientCertificateSelector型: string
バージョン5.0の新機能:
security.kmip.clientCertificateFileの代替として Windows および macOS で利用できます。security.kmip.clientCertificateFileとsecurity.kmip.clientCertificateSelectorのオプションは相互に排他的です。指定できるのは 1 つだけです。MongoDB が KMIP サーバーに認証するために、オペレーティング システムの証明書ストアから一致する証明書を選択するための証明書プロパティを指定します。
security.kmip.clientCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.serverCAFile型: string
CA ファイルへのパス。KMIP サーバーへの安全なクライアント接続を検証するために使用されます。
注意
4.0 以降、macOS または Windows では、PEM キー ファイルの代わりに、オペレーティング システムのセキュア ストアからの証明書を使用できます。
security.kmip.clientCertificateSelector参照してください。セキュア ストアを使用する場合は、security.kmip.serverCAFileを指定する必要はありませんが、指定することもできます。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.connectRetriesタイプ: int
デフォルト: 0
KMIP サーバーに対する初期接続を再試行する回数です。
connectTimeoutMSと併用することで、mongodが再試行を行うまでの待機時間を管理できます。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.connectTimeoutMSタイプ: int
デフォルト: 5000
KMIP サーバーからの応答を待つ際のタイムアウト(ミリ秒)です。
connectRetries設定が指定されている場合、mongodは再試行ごとにconnectTimeoutMSで指定された値まで待機します。値は
1000以上である必要があります。注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
security.kmip.activateKeysタイプ: ブール値
デフォルト: true
バージョン 5.3 で追加。
新しく作成された KMIP キーを作成時にすべてアクティブ化し、その後、当該キーがアクティブな状態であるかどうかを定期的にチェックします。
security.kmip.activateKeysがtrueで、KMIP サーバーに既存のキーがある場合、最初にキーをアクティブ化する必要があります。そうしないと、mongodノードの起動に失敗します。mongod によって使用されているキーが非アクティブ状態に移行すると、
kmipActivateKeysが false でない限り、mongodノードはシャットダウンします。アクティブなキーがあることを確認するには、security.kmip.rotateMasterKeyを使用して KMIP マスター キーをローテーションします。
security.kmip.keyStatePollingSecondsタイプ: int
デフォルト: 900 秒
バージョン 5.3 で追加。
mongod が KMIP サーバーでアクティブなキーをポーリングする頻度(秒単位)。
ポーリングを無効にするには、値を
-1に設定します。
security.kmip.useLegacyProtocolタイプ: ブール値
デフォルト: false
バージョン 7.0 の新機能: (および 6.0.6)
trueの場合、mongodでは、デフォルトのバージョンではなく、KMIP プロトコル バージョン 1.0 または 1.1 が使用されます。デフォルトの KMIP プロトコルはバージョン 1.2 です。KMIP バージョン 1.0 または 1.1 で監査ログ暗号化を使用するには、スタートアップ時に
auditEncryptKeyWithKMIPGetを指定する必要があります。KMIP プロトコルのバージョン 1.0 または 1.1 を使用するには、ローカル値を置き換えて、次のようなエントリを
mongod構成ファイルに追加します。security: enableEncryption: true kmip: serverName: "mdbhost.somecompany.com" serverCAFile: "security/libs/trusted-ca.pem" clientCertificateFile: "security/libs/trusted-client.pem" useLegacyProtocol: true
security.sasl オプション
security: sasl: hostName: <string> serviceName: <string> saslauthdSocketPath: <string>
security.sasl.hostName型: string
SASL および Kerberos 認証を構成するための完全修飾サーバー ドメイン名。SASL ホスト名は、SASL および Kerberos のの構成でのみホスト名を上書きします。
security.sasl.serviceName型: string
SASL を使用するサービスの登録名。このオプションを指定すると、インスタンスごとに Kerberos プリンシパル名のデフォルトの Kerberos サービス名コンポーネントを上書きできます。指定しない場合、デフォルト値は
mongodbです。MongoDB では、このオプションが設定できるのは起動時のみです。この設定を
setParameterで変更することはできません。このオプションは MongoDB Enterprise でのみ使用できます。
重要
ドライバーが代替サービス名をサポートしていることを確認してください。新しい
mongoshやその他の MongoDB ツールに接続するには、serviceNameを参照し、gssapiServiceNameオプションを確認してください。
security.ldap オプション
注意
MongoDB 8.0以降、 LDAP認証と認可は非推奨です。 LDAP は使用可能であり、 MongoDB 8のサポート期間中に変更されずに動作し続けます。 LDAP は将来のメジャー リリースで削除される予定です。
詳細については、「LDAP の非推奨」を参照してください。
security: ldap: servers: <string> bind: method: <string> saslMechanisms: <string> queryUser: <string> queryPassword: <string | array> useOSDefaults: <boolean> transportSecurity: <string> timeoutMS: <int> retryCount: <int> userToDNMapping: <string> authz: queryTemplate: <string> validateLDAPServerConfig: <boolean>
security.ldap.servers型: string
MongoDB Enterprise でのみ使用できます。
mongodやmongosがユーザーを認証したり、指定されたデータベースでユーザーが実行する権限を決定するための LDAP サーバー。指定された LDAP サーバーに複製されたインスタンスがある場合、複製サーバーごとのホストとポートをカンマ区切りのリストで指定できます。LDAP インフラストラクチャが LDAPディレクトリを複数の LDAP サーバーに分割する場合は、1 つ の LDAPサーバーまたはその複製されたインスタンスのいずれかを
security.ldap.serversに指定します。MongoDB は、RFC 4511 4.1.10 で定義されている以下の LDAP 紹介をサポートしています。インフラストラクチャ内のすべての LDAPサーバーを一覧表示するために、security.ldap.serversは使用しないでください。LDAP サーバーの前に
srv:とsrv_raw:を付けることができます。接続stringで
"srv:<DNS_NAME>"が指定されている場合、mongodは Active Directory をサポートする SRV に"_ldap._tcp.gc._msdcs.<DNS_NAME>"が存在することを確認します。 見つからない場合、mongodは SRV に"_ldap._tcp.<DNS_NAME>"が存在することを確認します。 SRV レコードが見つからない場合、mongodは代わりに"srv_raw:<DNS_NAME>"を使用するように警告します。接続stringで
"srv_raw:<DNS_NAME>"が指定されている場合、mongodは"<DNS NAME>"の SRV レコード検索を実行します。この設定は、稼働中の
mongodやmongosでもsetParameterを使用して構成できます。設定されていない場合、
mongodやmongosでは LDAP 認証や承認ができません。
security.ldap.bind.queryUser型: string
MongoDB Enterprise でのみ使用できます。
LDAP サーバーへの接続またはクエリ実行時に
mongodまたはmongosがバインドする ID。次のいずれかに当てはまる場合にのみ必要です。
LDAP 承認を使用している
security.ldap.userToDNMappingには LDAP クエリを使用します。LDAP サーバーが匿名バインドを許可していない
queryPasswordではqueryUserを使用する必要があります設定されていない場合、
mongodまたはmongosは LDAP サーバーへのバインドを試行しません。この設定は、稼働中の
mongodやmongosでもsetParameterを使用して構成できます。注意
Windows MongoDB 配置では、
useOSDefaultsqueryUserqueryPasswordと の代わりに使用できます。queryUserとuseOSDefaultsの両方を同時に指定することはできません。
security.ldap.bind.queryPassword型: string または array
MongoDB Enterprise でのみ使用できます。
queryUserを使用するときに LDAP サーバーにバインドするために使用されるパスワード。queryUserではqueryPasswordを使用する必要があります設定されていない場合、
mongodまたはmongosは LDAP サーバーへのバインドを試行しません。この設定は、実行中の
mongodやmongosでもsetParameterを使用して行うことができます。ldapQueryPasswordsetParameterコマンドは、文字列または文字列の配列のいずれかを受け付けます。ldapQueryPasswordが配列に設定されている場合、MongoDB は成功するまで各パスワードを順番に試行します。パスワード配列を使用して、LDAP アカウントのパスワードをダウンタイムなしでロールオーバーします。注意
Windows MongoDB 配置では、
useOSDefaultsqueryUserqueryPasswordと の代わりに使用できます。queryPasswordとuseOSDefaultsの両方を同時に指定することはできません。
security.ldap.bind.useOSDefaultsタイプ: ブール値
デフォルト: false
Windows プラットフォームの MongoDB Enterprise でのみ利用可能です。
mongodやmongosが LDAP サーバーに接続する際の認証やバインドに Windows のログイン認証情報を使用できるようにします。次の場合にのみ必要です。
LDAP 承認を使用している
username transformationには LDAP クエリを使用します。LDAP サーバーが匿名バインドを許可していない
useOSDefaultsqueryUserと を置き換えるには、queryPasswordを使用します。
security.ldap.bind.method型: string
デフォルト: simple
MongoDB Enterprise でのみ使用できます。
メソッド
mongodまたはmongosは を使用して LDAP サーバーに認証します。 LDAP サーバーに接続するには、queryUserとqueryPasswordとともに使用します。methodは次の値をサポートします。saslを指定した場合は、security.ldap.bind.saslMechanismsを使用して使用可能な SASL メカニズムを構成できます。mongodまたはmongosはデフォルトでDIGEST-MD5メカニズムを使用します。
security.ldap.bind.saslMechanisms型: string
デフォルト: DIGEST-MD5
MongoDB Enterprise でのみ使用できます。
SASL メカニズムのカンマ区切りリストは、
mongodまたはmongosが LDAP サーバーに認証する時に使用できます。mongodやmongosと、LDAP サーバーは、少なくとも 1 つのメカニズムで一致している必要があります。mongodまたはmongosは、ホスト マシンにインストールされている SASL メカニズム ライブラリをランタイムで動的に読み込みます。選択した SASL メカニズムに該当するライブラリを、
mongodまたはmongosのホストおよびリモート LDAP サーバー ホストの両方にインストールして構成してください。オペレーティング システムには、特定の SASL ライブラリがデフォルトで含まれている場合があります。インストールと構成のガイダンスについては、各 SASL メカニズムに関連するドキュメントを参照してください。自己管理型配置で Kerberos 認証で使用するために
GSSAPISASL メカニズムを使用する場合は、mongodまたはmongosホスト マシンで次の点を確認します。LinuxKRB5_CLIENT_KTNAME環境変数は、ホスト マシン用のクライアントLinuxキータブ ファイルの名前に解決されます。Kerberos 環境変数の詳細については、 Kerberos のドキュメント を参照してください。クライアント キータブには、LDAP サーバーに接続して LDAP クエリを実行する際に使用する
mongodやmongosのユーザー プリンシパルが含まれています。
Windows- Active Directoryサーバーに接続する場合、 Windows Kerberos構成により、ユーザーがシステムにログオンした際に Ticket-Granting-Ticket が自動生成されます。
useOSDefaultsをtrueに設定すると、mongodまたはmongosが Active Directoryサーバーに接続してクエリを実行する際に、生成された認証情報を使用できるようになります。
このオプションを使用するには
methodをsaslに設定します。注意
全 SASL メカニズムを網羅したリストについては、IANA のリスト を参照してください。サービスと互換性のある SASL メカニズムを特定するには、LDAP または Active Directory サービスのドキュメントを参照してください。
MongoDB は SASL メカニズム ライブラリのソースではなく、MongoDB ドキュメントも特定の SASL メカニズムのインストールや設定をするための決定的な情報源ではありません。ドキュメントとサポートについては、SASL メカニズム ライブラリのベンダーまたは管理者に問い合わせてください。
SASLの詳細については、次のリソースを参照してください。
Linuxの場合は、 Cyrus SASL のドキュメント を参照してください。
Windowsの場合は、Windows SASL ドキュメントを参照してください。
security.ldap.transportSecurity型: string
デフォルト: tls
MongoDB Enterprise でのみ使用できます。
デフォルトでは、
mongodやmongosは、LDAP サーバーに対して TLS/SSL で保護された接続を確立します。Linux配置の場合、
/etc/openldap/ldap.confファイルで適切な TLS オプションを構成する必要があります。オペレーティング システムのパッケージマネージャーは、libldap依存関係を介して、 MongoDB Enterpriseインストールの一部としてこのファイルを作成します。詳しくは、ldap.conf OpenLDAP ドキュメント のTLS Optionsのドキュメントを参照してください。Windows 配置の場合、LDAP サーバー CA 証明書を Windows 証明書管理ツールに追加する必要があります。ツールの正確な名前と機能は、オペレーティング システムのバージョンによって異なる場合があります。証明書管理の詳細については、ご使用の Windows バージョンのドキュメントを参照してください。
または
mongosとtransportSecuritynonemongodLDAP サーバー間の TLS/SSL を無効にするには、 を に設定します。警告
transportSecurityをnoneに設定すると、mongodまたはmongosと LDAP サーバー間でプレーンテキスト情報と、場合によっては認証情報が送信されます。
security.ldap.timeoutMSタイプ: int
デフォルト: 10000
MongoDB Enterprise でのみ使用できます。
mongodやmongosで LDAP サーバーからリクエストへの応答があるまで待機する時間(ミリ秒単位)。timeoutMSの値を増やすと、障害の原因が接続タイムアウトである場合、MongoDB サーバーと LDAP サーバー間の接続が失敗しなくなる可能性があります。timeoutMSの値を小さくすると、MongoDB が LDAP サーバーからの応答を待機する時間が短縮されます。この設定は、稼働中の
mongodやmongosでもsetParameterを使用して構成できます。
security.ldap.retryCountバージョン 6.1 で追加。
タイプ: int
デフォルト: 0
MongoDB Enterprise でのみ使用できます。
ネットワーク エラーが発生した場合にサーバー LDAP マネージャーによって再試行される操作の回数。
この設定は、稼働中の
mongodやmongosでもsetParameterを使用して構成できます。
security.ldap.userToDNMapping型: string
MongoDB Enterprise でのみ使用できます。
認証用に
mongodまたはmongosに指定されたユーザー名を LDAP 識別名(DN)にマッピングします。 次のシナリオではユーザー名を LDAP DN に変換するためにuserToDNMappingを使用する必要がある場合があります。LDAP のシンプル バインドにより LDAP 認証を実行し、ユーザーが MongoDB に対し、完全な LDAP 識別名ではないユーザー名で認証されます。
識別名を必要とする
LDAP authorization query templateを使用します。さまざまな認証メカニズム(例: x.509、kerberos)を使用して Mongo DB に認証するクライアントのユーザー名を、承認用の完全な LDAP 識別名に変換します。
userToDNMappingは、順序付けられたドキュメントの配列を表す引用符で囲まれた 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"ldapQuerymatch正規表現に一致する認証名を RFC4515 と RFC4516 に従ってエンコードされた LDAP クエリ URI に挿入する LDAP クエリ形式のテンプレート。中括弧で囲まれた各数値は、 式を通じて認証ユーザー名から抽出された、対応する正規表現キャプチャmatchグループに置き換えられます。mongodまたはmongosは LDAPサーバーに対してクエリを実行し、認証されたユーザーの LDAP DN を検索します。mongodまたはmongosでは、変換を成功させるために返された結果が 1 つだけ必要になるか、mongodまたはmongosはこの変換をスキップします。"ou=engineering,dc=example, dc=com??one?(user={0})"注意
配列内の各ドキュメントに対して、
substitutionまたはldapQueryのいずれかを使用する必要があります。同じ文書で両方を指定することはできません。認証や承認を実行する際、
mongodやmongosでは配列にあるドキュメントを指定の順序で処理し、認証ユーザー名をmatchフィルターと照合します。一致が見つかったら、mongodやmongosで変換を適用し、その出力を使用してユーザーを認証します。mongodまたはmongosでは、配列内の残りのドキュメントをチェックしません。特定のドキュメントが指定の認証名と一致しない場合でも、
mongodやmongosではドキュメントのリストで他に一致するところがないか引き続き検索します。どのドキュメントにも一致するところが見つからない場合、またはドキュメントの記載内容の変換が失敗した場合、mongodやmongosはエラーを返します。また、LDAP サーバーとのネットワーク接続や認証に失敗して変換の 1 つを評価できない場合にも、
mongodまたはmongosはエラーを返します。mongodまたはmongosは接続リクエストを拒否し、配列内の残りのドキュメントをチェックしません。MongoDB 5.0 以降、マッピング ドキュメントの代わりに
userToDNMappingは空のstring""または空の配列[ ]を受け入れます。 空の string または空の配列をuserToDNMappingに指定すると、MongoDB は認証されたユーザー名を LDAP DN としてマッピングします。 以前は、空のマッピング ドキュメントを提供するとマッピングが失敗していました。例
次に示すのは、2 つの変換ドキュメントです。1 番目のドキュメントは
@ENGINEERINGで終わる文字列に一致し、サフィックスの前にあるものはすべて正規表現のキャプチャ グループに格納します。2 番目のドキュメントは@DBAで終わる文字列に一致し、サフィックスの前にあるものはすべて正規表現のキャプチャ グループに格納します。重要
配列は文字列として userToDNMapping へ渡す必要があります。
"[ { 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またはmongosでは、このクエリを LDAP サーバーに対して実行し、その結果"cn=bob,ou=dba,dc=example,dc=com"を返します。userToDNMappingが設定されていない場合、mongodまたはmongosは、LDAP サーバーに対してユーザーを認証または承認しようとする際に、ユーザー名を変換しません。この設定は、実行中の
mongodやmongosでもsetParameterデータベース コマンドを使用して構成できます。
security.ldap.authz.queryTemplate型: string
MongoDB Enterprise でのみ使用できます。
RFC4515 と RFC4516 に準拠して形式された相対的 LDAP クエリURL で、認証されたユーザーが属する LDAP グループを取得するために
mongodが実行します。クエリは、security.ldap.serversで指定されたホストに対して相対的です。注意
パフォーマンスを向上させるには、MongoDB 認可に使用される LDAP グループを専用の組織単位(
OU)に配置することを検討してください。URL では、次の置換トークンが使用できます。
置換トークン説明{USER}認証されたユーザー名を置き換えるか、 が指定されている場合は
transformeduserToDNMappingユーザー名を置き換えます。{PROVIDED_USER}認証または
LDAP transformationの前に、指定されたユーザー名を置き換えます。クエリ URL を作成する際は、LDAP パラメーターの順序が次の RFC4516 に準拠しているようにします。
[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ] クエリに属性が含まれている場合、
mongodは、このエンティティがメンバーである識別名のリストがクエリで取得されるものと想定します。クエリに属性が含まれていない場合、
mongodでは、ユーザーがメンバーであるエンティティすべてがクエリで取得されるものと想定します。クエリによって返される LDAP 識別名ごとに、
mongodでは認証されているユーザーに対しadminデータベースの対応するロールを割り当てます。adminデータベースでのロールが識別名と完全に一致する場合、mongodではそのロールに割り当てられているロールと権限をユーザーに付与します。ロール作成の詳細については、db.createRole()メソッドを参照してください。例
この LDAP クエリは、LDAP ユーザー オブジェクトの
memberOf属性にリストされているすべてのグループを返します。"{USER}?memberOf?base" LDAP 構成に、ユーザー スキーマの一部として
memberOf属性が含まれていない場合、グループ メンバーシップのレポート作成用に別の属性がある場合、属性を通じてグループ メンバーシップを追跡していない場合があります。クエリは、独自の LDAP 設定に基づいて設定します。設定されていない場合、
mongodは LDAP を使用してユーザーを認証することはできません。データベースコマンドを使用して実行中中の
mongodsetParameterの パラメータの値を変更することはできますが、実行中に有効または無効にすることはできません。ldapAuthzQueryTemplateこの設定を有効にするには、スタートアップ時に構成ファイルでsecurity.ldap.authz.queryTemplateを構成する必要があります。
security.ldap.validateLDAPServerConfigタイプ: ブール値
デフォルト: true
MongoDB Enterprise で利用可能です。
mongodまたはmongosインスタンスが起動の一部としてLDAP server(s)の可用性をチェックするかどうかを決定するフラグです。
setParameter オプション
setParameterMongoDB パラメータまたは自己管理型配置の MongoDB Server パラメータ で説明されているパラメータを設定します
パラメーターを YAML 構成ファイルに設定するには、次の形式を使用します。
setParameter: <parameter1>: <value1> <parameter2>: <value2> たとえば、構成ファイルで
enableLocalhostAuthBypassを指定するには、次のようにします。setParameter: enableLocalhostAuthBypass: false
setParameter LDAP オプション
setParameter.ldapUserCacheInvalidationIntervalタイプ: int
デフォルト: 30
自己管理型配置で LDAP
mongod認証 を使用する サーバーで使用します。mongodが外部ユーザー キャッシュをフラッシュする間隔(秒単位)。mongodが外部ユーザー キャッシュをフラッシュした後、LDAP 承認ユーザーが次に操作を発行したときに、MongoDB は LDAP サーバーから認証データを再取得します。指定する値を増やすと、
mongodが LDAP サーバーと同期する間隔が長くなりますが、LDAP サーバーの負荷は軽減されます。逆に、指定する値を減らすと、mongodが LDAP サーバーと同期する間隔は短くなりますが、LDAP サーバーの負荷が増大します。
setParameter: ldapUserCacheInvalidationInterval: <int>
setParameter MongoDB Search オプション
setParameter.searchIndexManagementHostAndPort型: string
デフォルト: ""
検索インデックス管理ホストアドレス。このパラメータは、検索インデックスマネジメントサーバーのホスト名またはIPアドレスとポートを指定します。
注意
このパラメータは
setParameter.mongotHostと同じ値である必要があります。
setParameter: searchIndexManagementHostAndPort: <hostname|IP:port>
例
setParameter: searchIndexManagementHostAndPort: localhost:27028
setParameter.skipAuthenticationToSearchIndexManagementServerタイプ: ブール値
デフォルト: true
サーバーとインデックス管理サーバーの接続のために
mongodの認証をスキップするかどうかを決定するフラグ。mongodで認証が有効になっている場合でも、注意
セキュリティ上のベストプラクティスとして、このパラメータを
falseに設定することをお勧めします。
setParameter: skipAuthenticationToSearchIndexManagementServer: <true|false>
setParameter.mongotHost型: string
デフォルト: ""
mongot設定する必要があります。このパラメータは、mongotサーバーのホスト名またはIPアドレスとポートを指定します。注意
このパラメータは
setParameter.searchIndexManagementHostAndPortと同じ値である必要があります。
setParameter: mongotHost: <hostname|IP:port>
例
setParameter: mongotHost: localhost:27028
setParameter.skipAuthenticationToMongotタイプ: ブール値
デフォルト: false
MongoDB が
mongodで認証が有効になっている場合でも、mongodからmongotへの接続の認証をスキップするかどうかを指定します。注意
セキュリティ上のベストプラクティスとして、このパラメータを設定せずに残すか、
falseに設定することをお勧めします。
setParameter: skipAuthenticationToMongot: <true|false>
setParameter.useGrpcForSearchタイプ: ブール値
デフォルト: false
シャードが gRPC を使用して
mongotと通信するかどうかを指定します。注意
mongotを使用している場合は、このパラメータをtrueに設定する必要があります。
setParameter: useGrpcForSearch: <true|false>
setParameter.searchTLSMode型: string
デフォルト:
globalTLSmongodからmongot接続への TLSモードを設定します。globalTLS値を設定すると、net.tls.modeで指定した設定が使用されますが、その他の設定は通常の動作に従って動作します。このパラメーターには、次の値を使用できます。
globalTLSdisabledallowTLSpreferTLSrequireTLS
setParameter: searchTLSMode: <globalTLS|disabled|allowTLS|preferTLS|requireTLS>
storage オプション
バージョン 6.1 での変更:
MongoDB では常にジャーナリングが有効です。その結果、MongoDB は、
storage.journal.enabledオプション、および対応する--journalと--nojournalのコマンドライン オプションを削除します。
storage: dbPath: <string> journal: commitIntervalMs: <num> directoryPerDB: <boolean> syncPeriodSecs: <int> engine: <string> wiredTiger: engineConfig: cacheSizeGB: <number> journalCompressor: <string> directoryForIndexes: <boolean> maxCacheOverflowFileSizeGB: <number> collectionConfig: blockCompressor: <string> indexConfig: prefixCompression: <boolean> inMemory: engineConfig: inMemorySizeGB: <number> oplogMinRetentionHours: <double>
storage.dbPath型: string
デフォルト:
/data/dbLinux と macOS の場合\data\dbWindows の場合
mongodインスタンスによってデータが保存されるディレクトリ。storage.dbPath設定はmongodでのみ使用できます。注意
構成ファイル
パッケージ マネージャーのインストールに含まれるデフォルトの
mongod.conf構成ファイルでは、storage.dbPathに対し、プラットフォーム固有の次のデフォルト値が使用されます。プラットフォームパッケージ マネージャーdefaultstorage.dbPathRHEL / CentOS と Amazon
yum/var/lib/mongoSUSE
zypper/var/lib/mongoUbuntu と Debian
apt/var/lib/mongodbMacOS
brew/usr/local/var/mongodbLinux パッケージ初期化スクリプトでは、
storage.dbPathがデフォルトから変更されることは想定されていません。 Linux パッケージを使用してstorage.dbPathを変更する場合は、独自の初期化スクリプトを使用し、組み込みスクリプトを無効にする必要があります。
storage.journal.commitIntervalMsタイプ: 数値
デフォルト: 100
mongodプロセスがジャーナリング操作間に許容する最大時間(ミリ秒単位)。値は 1 から 500 ミリ秒の範囲で指定できます。値を小さくすると、ジャーナリングの耐久性は向上しますが、ディスクのパフォーマンスは低下します。WiredTiger では、デフォルトのジャーナル コミット間隔は100ミリ秒です。 さらに、
j:trueを含む、または意味する書込み (write) によって、ジャーナルが即座に同期されます。 同期の頻度に影響する詳細またはその他の条件については、「ジャーナリング プロセス 」を参照してください。storage.journal.commitIntervalMs設定はmongodでのみ使用できます。インメモリ ストレージエンジンを使用する
mongodインスタンスでは使用できません。
storage.directoryPerDBタイプ: ブール値
デフォルト: false
trueの場合、MongoDB は各データベースのデータを保存するために個別のディレクトリを使用します。ディレクトリは、storage.dbPathディレクトリの下にあり、各サブディレクトリ名はデータベース名に対応しています。storage.directoryPerDB設定はmongodでのみ使用できます。インメモリ ストレージエンジンを使用する
mongodインスタンスでは使用できません。MongoDB 5.0以降 、
storage.directoryPerDBが有効になっている場合にデータベース内の最終コレクションを削除すると(またはデータベース自体を削除すると)、そのデータベースの新しく空になったサブディレクトリが削除されます。既存の配置の
storage.directoryPerDBオプションを変更する方法は以下の通りです。スタンドアロン インスタンスの場合:
mongodインスタンスを停止します。storage.directoryPerDB値を追加し、新しいデータディレクトリを構成するmongodインスタンスを再起動します。mongorestoreを使用して新しいデータディレクトリを作成します。
レプリカセットの場合:
セカンダリ ノードを停止します。
storage.directoryPerDB値を追加し、そしてセカンダリ ノードに新しいデータ ディレクトリを設定します。そのセカンダリを再起動します。
最初の同期を使用して新しいデータディレクトリを作成します。
残りのセカンダリも同じ方法で更新します。
プライマリを降格させ、降格させたノードを同様に更新します。
storage.syncPeriodSecsタイプ: 数値
デフォルト: 60
MongoDB がデータをデータファイルにフラッシュするまでにかかる時間です。
この値は本番システムでは設定しないでください。ほとんどすべての状況において、デフォルト設定を使用するべきです。
mongodプロセスはデータをジャーナルにすばやく書込み、データファイルには遅延して書き込みます。storage.syncPeriodSecsはジャーナリングには影響しませんが、storage.syncPeriodSecsが0に設定されていると、ジャーナルにより利用可能なディスクスペースが最終的にすべて消費されます。storage.syncPeriodSecs設定はmongodでのみ使用できます。インメモリ ストレージエンジンを使用する
mongodインスタンスでは使用できません。永続的なデータを提供するために、 WiredTigerはチェックポイントを使用します。 詳細については、「ジャーナリングと WiredTiger ストレージ エンジン 」を参照してください。
storage.engineデフォルト:
wiredTigermongodデータベースのストレージエンジン。使用可能な値は次のとおりです。値説明wiredTigerWiredTiger ストレージ エンジン を指定します。
inMemory自己管理型配置の インメモリ ストレージ エンジン を指定します。
MongoDB Enterprise でのみ使用できます。
mongodstorage.dbPathで指定されたもの以外のストレージエンジンによって生成されたデータファイルを含む を使用してstorage.engineを起動しようとすると、mongodは起動を拒否します。
storage.oplogMinRetentionHours型: double
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の値を更新してください。
storage.wiredTiger オプション
storage: wiredTiger: engineConfig: cacheSizeGB: <number> cacheSizePct: <number> journalCompressor: <string> directoryForIndexes: <boolean> maxCacheOverflowFileSizeGB: <number> collectionConfig: blockCompressor: <string> indexConfig: prefixCompression: <boolean>
storage.wiredTiger.engineConfig.cacheSizeGB型: float
WiredTiger がすべてのデータに使用する内部キャッシュの最大サイズを定義します。インデックス構築が消費するメモリ(
maxIndexBuildMemoryUsageMegabytesを参照)は、 WiredTigerキャッシュメモリとは別です。WiredTiger の内部キャッシュサイズをデフォルト値より大きくしないようにしてください。ユースケースでその必要がある場合は、 を使用して、使用可能なメモリの最大
storage.wiredTiger.engineConfig.cacheSizePct80% のパーセンテージを指定できます。値の範囲は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 キャッシュや他のプロセスによって使用されていないすべての空きメモリを自動的に使用します。
注意
storage.wiredTiger.engineConfig.cacheSizeGBは WiredTiger の内部キャッシュのサイズを制限します。 オペレーティング システムは、使用可能な空きメモリをファイルシステム キャッシュに使用するため、圧縮されたMongoDBデータファイルをメモリに保持できます。 さらに、オペレーティング システムは、空き RAM を使用して、ファイル システム ブロックとファイル システム キャッシュをバッファリングします。RAM の利用者増加に対応するためには、WiredTiger の内部キャッシュ サイズを減らす必要がある場合があります。
デフォルトのWiredTiger内部キャッシュサイズの値は、マシンごとに 1 つの
mongodインスタンスがあることを前提としています。1 台のマシンに複数のMongoDBインスタンスが存在する場合は、設定値を減らして他のmongodインスタンスに対応できるようにしてください。システムで使用可能なすべての RAM にアクセス でき ない
mongodコンテナ(たとえば、lxccgroups、storage.wiredTiger.engineConfig.cacheSizeGB、Docker など)で を実行する場合は、 を 値に設定する必要がありますコンテナで使用可能な RAM の量よりも小さい。正確な量は、コンテナ内で実行中の他のプロセスによって異なります。 詳しくはmemLimitMBを参照してください。storage.wiredTiger.engineConfig.cacheSizeGBまたはstorage.wiredTiger.engineConfig.cacheSizePctのいずれか 1 つだけを提供できます。
storage.wiredTiger.engineConfig.cacheSizePct型: 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 キャッシュや他のプロセスによって使用されていないすべての空きメモリを自動的に使用します。
注意
storage.wiredTiger.engineConfig.cacheSizePctは WiredTiger の内部キャッシュのサイズを制限します。 オペレーティング システムは、使用可能な空きメモリをファイルシステム キャッシュに使用するため、圧縮されたMongoDBデータファイルをメモリに保持できます。 さらに、オペレーティング システムは、空き RAM を使用して、ファイル システム ブロックとファイル システム キャッシュをバッファリングします。RAM の利用者増加に対応するためには、WiredTiger の内部キャッシュ サイズを減らす必要がある場合があります。
デフォルトのWiredTiger内部キャッシュサイズの値は、マシンごとに 1 つの
mongodインスタンスがあることを前提としています。1 台のマシンに複数のMongoDBインスタンスが存在する場合は、設定値を減らして他のmongodインスタンスに対応できるようにしてください。システムで使用可能なすべての RAM にアクセス でき ない
mongodコンテナ(たとえば、lxccgroups、storage.wiredTiger.engineConfig.cacheSizePct、Docker など)で を実行する場合は、 を 値に設定する必要がありますコンテナで使用可能な RAM の量よりも小さい。正確な量は、コンテナ内で実行中の他のプロセスによって異なります。 詳しくはmemLimitMBを参照してください。storage.wiredTiger.engineConfig.cacheSizePctまたはstorage.wiredTiger.engineConfig.cacheSizeGBのいずれか 1 つだけを提供できます。
storage.wiredTiger.engineConfig.journalCompressorデフォルト: snappy
WiredTiger ジャーナリング データを圧縮するのに使用する圧縮タイプを指定します。
利用可能なコンプレッサーは次のとおりです。
storage.wiredTiger.engineConfig.directoryForIndexesタイプ: ブール値
デフォルト: false
storage.wiredTiger.engineConfig.directoryForIndexesがtrueの場合、mongodはインデックスとコレクションをデータの下の個別のサブディレクトリに保存します(つまりstorage.dbPath)ディレクトリ。 具体的には、mongodはインデックスをindexという名前のサブディレクトリに保存し、コレクション データをcollectionという名前のサブディレクトリに保存します。シンボリックリンクを使用すると、インデックスに別のロケーションを指定することができます。具体的には、
mongodインスタンスが実行されていない場合に、indexサブディレクトリを目的のロケーションに移動し、indexという名前のシンボリック リンクを新しい目的地のデータディレクトリの下に作成します。
storage.wiredTiger.engineConfig.zstdCompressionLevelタイプ: 整数
デフォルト: 6
バージョン 5.0 で追加
バージョン8.2で変更
zstd コンプレッサーを使用する際に適用される圧縮レベルを指定します。
値の範囲は -7 から 22 です。
正の値は圧縮レベルを指定します。
zstdCompressionLevelの値が大きいほど圧縮比率は高くなりますが、圧縮と解凍速度は遅くなりコスト。負の値を指定すると、圧縮比率がコスト、圧縮および解凍の速度が速くなります。
0の値を指定すると、zstd の内部デフォルト圧縮レベル 3 が使用されます。これはMongoDBのデフォルトの 6 とは異なります。blockCompressorまたはjournalCompressor(あるいは両方)がzstdに設定されている場合にのみ適用されます。重要
MongoDBの以前のバージョンにダウングレードする場合は、
storage.wiredTiger.engineConfig.zstdCompressionLevelの設定がそのバージョンでサポートされている範囲に構成されていることを確認してください。例、 MongoDB 8.0 は 1 から 22 の範囲をサポートしています。
storage.wiredTiger.collectionConfig.blockCompressorデフォルト: snappy
コレクション データのデフォルトの圧縮率を指定します。これは、コレクションを作成する際、コレクションごとに上書きできます。
利用可能なコンプレッサーは次のとおりです。
storage.wiredTiger.collectionConfig.blockCompressorは作成されたすべてのコレクションに影響します。既存の MongoDB の配置でstorage.wiredTiger.collectionConfig.blockCompressorの値を変更すると、すべての新しいコレクションで指定されたコンプレッサーが使用されます。既存のコレクションは、作成時に指定されたコンプレッサー、またはその時点でのデフォルトのコンプレッサーを引き続き使用します。
storage.wiredTiger.indexConfig.prefixCompressionデフォルト: true
インデックスデータの接頭辞圧縮を有効または無効にします。
truestorage.wiredTiger.indexConfig.prefixCompressionインデックス データの 接頭辞圧縮 を有効にするにはfalseに指定し、インデックス データの接頭辞圧縮を無効にするには を指定します。storage.wiredTiger.indexConfig.prefixCompressionの設定は作成されたすべてのインデックスに影響します。 既存の MongoDB デプロイでstorage.wiredTiger.indexConfig.prefixCompressionの値を変更すると、すべての新しいインデックスで接頭辞圧縮が使用されます。 既存のインデックスは影響を受けません。
storage.inmemory オプション
storage: inMemory: engineConfig: inMemorySizeGB: <number>
storage.inMemory.engineConfig.inMemorySizeGB型: float
デフォルト: 物理 RAM の50% から 1GB を引いた値
値の範囲は 256 MB から 10 TB までで、float にすることができます。
インメモリ ストレージエンジン データ(インデックス、
mongodがレプリカセットの一部である場合の oplog、レプリカセット、シャーディングされたクラスターのメタデータなど)に割り当てるメモリの最大量。デフォルトで、インメモリ ストレージエンジンは物理 RAM の 50% から 1 GB を引いた量を使用します。
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
operationProfiling オプション
operationProfiling: mode: <string> slowOpThresholdMs: <int> slowOpSampleRate: <double> filter: <string>
operationProfiling.mode型: string
デフォルト:
offどの操作をプロファイリングするべきかを指定します。次のプロファイラー レベルが利用可能です。
レベル説明offプロファイラーはオフになっており、データは収集されません。これはデフォルトのプロファイラー レベルです。このレベルはプロファイラーのレベル 0 に対応します。
slowOpプロファイラーは、
slowmsの値よりも時間がかかる操作のデータを収集します。このレベルはプロファイラーのレベル 1 に対応します。allプロファイラーは、すべての操作のデータを収集します。このレベルはプロファイラーのレベル 2 に対応します。
警告
プロファイリングにより、パフォーマンスが低下し、暗号化されていないクエリ データがシステム ログに公開されることがあります。プロファイラーを本番環境に設定して有効にする前に、パフォーマンスとセキュリティへの影響を慎重に検討してください。
パフォーマンス低下の可能性の詳細については、「プロファイラーのオーバーヘッド」を参照してください。
operationProfiling.slowOpThresholdMsタイプ: 整数
デフォルト: 100
低速操作時間のしきい値(ミリ秒単位)。操作が実行される時間がこのしきい値より長いと、低速とみなされます。
低速操作は、MongoDB でその操作にかかった時間である
workingMillisに基づいてログに記録されます。つまり、ロック待ちやフロー制御などの要因は、操作が低速操作のしきい値を超えるかどうかに影響しません。が
logLevel0に設定されている場合、MongoDBslowOpSampleRateは で決定されたレートで 低速 操作を診断ログに記録しますlogLevel設定を引き上げると、レイテンシに関係なく、すべての操作が診断ログに表示されます。ただし、セカンダリによる低速の oplog エントリ メッセージのログ記録は除きます。セカンダリでは、低速の oplog エントリのみがログに記録されます。logLevelを引き上げても、すべての oplog エントリがログに記録されるわけではありません。
operationProfiling.slowOpSampleRate型: double
デフォルト: 1.0
プロファイリングまたはログに記録する必要がある低速操作の割合。
operationProfiling.slowOpSampleRateは0から1までの値を受け入れます。slowOpSampleRate設定は、mongodとmongosで使用できます。
operationProfiling.filterタイプ: クエリ ドキュメントの文字列表現
どの操作をプロファイリングしてログ記録するかを制御するフィルター式。
filterが設定されている場合、slowOpThresholdMsとslowOpSampleRateはプロファイリングおよび低速クエリ ログ行には使用されません。構成ファイルでプロファイル フィルターを設定すると、そのフィルターは配置にあるデータベースすべてに適用されます。特定のデータベースにプロファイル フィルターを設定するには、
db.setProfilingLevel()メソッドを使用します。このオプションでは、次の形式のクエリ ドキュメントの文字列表現を取ります。
{ <field1>: <expression1>, ... } <field>は、プロファイラー出力の任意のフィールドになります。<expression>はクエリ条件式です。構成ファイルでプロファイリング フィルターを指定するには、以下の手順を実行する必要があります。
フィルター ドキュメントを一重引用符で囲み、ドキュメントを文字列として渡します。
YAML 形式の構成ファイルを使用します。
たとえば、次の
filterでは、2 秒以上かかるquery操作をログ記録するようプロファイラーに設定します。operationProfiling: mode: all filter: '{ op: "query", millis: { $gt: 2000 } }'
replication オプション
replication: oplogSizeMB: <int> replSetName: <string> enableMajorityReadConcern: <boolean>
replication.oplogSizeMBタイプ: 整数
oplogの最大サイズ(メガバイト単位)。
oplogSizeMB設定では、ディスク上のサイズではなく、oplog の非圧縮サイズが構成されます。注意
oplog は、
majority commit pointが削除されるのを回避するために、設定されたサイズ制限を超えて大きくなることがあります。mongodプロセスのデフォルト設定では、使用可能な最大容量に基づいて oplog が作成されます。64 ビット システムの場合、oplog は通常、使用可能なディスク容量の 5% を占めます。mongodが初めて oplog を作成した後は、replication.oplogSizeMBオプションを変更しても oplog のサイズには影響しません。mongodの起動後に最大 oplog サイズを変更するには、replSetResizeOplogを使用します。replSetResizeOplogの使用により、mongodプロセスを再起動せずに oplog のサイズを動的に変更できます。replSetResizeOplogを使用して行った変更を再起動後も保持するには、oplogSizeMBの値を更新します。詳細については、oplog サイズを参照してください。
replication.replSetName型: string
mongodが属するレプリカセットの名前。レプリカセット内のすべてのホストは同じセット名を持つ必要があります。アプリケーションが複数のレプリカセットに接続する場合、それぞれのセットには異なる名前を付ける必要があります。一部のドライバーは、レプリカセットの名前で接続をグループ化します。
replication.replSetName設定はmongodでのみ使用できます。replication.replSetNameは、storage.indexBuildRetryと組み合わせて使用することはできません。
replication.enableMajorityReadConcernデフォルト: true
"majority"読み取り保証 (read concern) のサポートを設定します。MongoDB 5.0以降では、
enableMajorityReadConcernは変更されず、常にtrueに設定されます。--enableMajorityReadConcernオプションを使用して、過半数 の読み取り保証 (read concern) をサポートしないストレージエンジンを起動しようとすると失敗し、エラー メッセージが返されます。MongoDB の以前のバージョンでは、
enableMajorityReadConcernは構成可能でした。警告
3 ノードのプライマリセカンダリアービタ(PSA)アーキテクチャを使用している場合は、次の点を考慮してください。
セカンダリが使用できなくなったり遅延が発生したりすると、 書込み保証 (write concern
"majority"によってパフォーマンスの問題が発生することがあります。 こうした問題を軽減するためのアドバイスについては、「自己管理型 PSA レプリカセットのパフォーマンスの問題の軽減 」を参照してください。グローバル デフォルト
"majority"を使用しており、書込み保証 (write concern) が過半数のサイズより小さい場合、クエリは古い(完全には複製されていない)データを返すことがあります。
sharding オプション
sharding: clusterRole: <string>
sharding.clusterRole型: string
シャーディングされたクラスターでの
mongodインスタンスのロール。この設定を次のいずれかに設定します。値説明configsvrこのインスタンスをコンフィギュレーションサーバーとして起動します。インスタンスは、デフォルトではポート
27019で起動します。MongoDBインスタンスを clusterRole として構成する場合は、
configsvrも指定する必要があります。replSetNameshardsvrこのインスタンスをシャードとして起動します。インスタンスは、デフォルトではポート
27018で起動します。MongoDBインスタンスをclusterRole として構成する場合は、
shardsvrreplSetNameも指定する必要があります。注意
sharding.clusterRoleを設定するには、mongodインスタンスがレプリケーションを使用して実行されている必要があります。インスタンスをレプリカセット ノードとして配置するには、replSetName設定を使用してレプリカセットの名前を指定します。
auditLog オプション
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
auditLog: destination: <string> format: <string> path: <string> filter: <string> schema: <string>
auditLog.auditEncryptionKeyIdentifier型: string
バージョン 6.0 で追加。
監査ログの暗号化用に KMIP(Key Management Interoperability Protocol)キーの一意の識別子を指定します。
auditLog.auditEncryptionKeyIdentifierとauditLog.localAuditKeyFileを併用することはできません。注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
auditLog.compressionMode型: string
バージョン 5.3 で追加。
監査ログの暗号化の圧縮モードを指定します。 また、
auditLog.auditEncryptionKeyIdentifierまたはauditLog.localAuditKeyFileのいずれかを使用して、監査ログの暗号化を有効にする必要があります。auditLog.compressionModeは次のいずれかの値に設定できます。値説明zstd監査ログを圧縮するには、zstd アルゴリズムを使用します。
none(デフォルト)監査ログを圧縮しないでください。
注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
auditLog.destination型: string
設定すると、
auditLog.destinationによって監査が有効になり、mongosまたはmongodがすべての監査イベントを送信する場所を指定します。auditLog.destinationには次のいずれかの値を指定できます。値説明syslog監査イベントを JSON 形式で syslog に出力します。Windows では使用できません。監査メッセージの syslog 重大度レベルは
infoで、機能レベルはuserです。syslog メッセージの制限により、監査メッセージが切り捨てられる可能性があります。監査システムは、切り捨てを検出することも、切り捨て時にエラーを発生させることもありません。
console監査イベントを JSON 形式で
stdoutに出力します。file注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
auditLog.filterタイプ: ドキュメントの文字列表現
監査システムが記録する操作の種類を制限するフィルター。このオプションでは、次の形式のクエリ ドキュメントの文字列表現を取ります。
{ <field1>: <expression1>, ... } <field>は、監査フィールド内の任意のフィールド(param ドキュメントで返されるフィールドを含む)にすることができます。<expression>はクエリ条件式です。監査フィルターを指定するには、フィルター ドキュメントを一重引用符で囲み、ドキュメントを文字列として渡します。
構成ファイルで監査フィルターを指定するには、YAML 形式の構成ファイルを使用する必要があります。
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
auditLog.format型: string
destinationがfileであった場合の監査用出力ファイルの形式です。auditLog.formatオプションには、次のいずれかの値を指定できます。値説明JSON監査するイベントをJSON形式で
auditLog.pathで指定されたファイルに出力します。BSON監査するイベントをBSONバイナリ形式で、
auditLog.pathで指定されたファイルに出力します。監査イベントを JSON 形式のファイルに出力すると、BSON 形式のファイルに出力するよりもサーバーのパフォーマンスが低下します。
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
auditLog.localAuditKeyFile型: string
バージョン 5.3 で追加。
監査ログの暗号化用にローカル監査キー ファイルのパスとファイル名を指定します。
注意
キーが保護されていないため、テストには
auditLog.localAuditKeyFileのみを使用してください。 キーを保護するには、auditLog.auditEncryptionKeyIdentifierと外部の KMIP サーバーを使用します。auditLog.localAuditKeyFileとauditLog.auditEncryptionKeyIdentifierを併用することはできません。注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
auditLog.path型: string
destinationの値がfileの場合の監査用の出力ファイル。auditLog.pathオプションには、完全パス名または相対パス名のいずれかを指定できます。
auditLog.runtimeConfigurationタイプ: ブール値
監査フィルターと AuditAuthorizationSuccess 変数のランタイム構成をノードで許可するかどうかを指定します。
trueの場合、ノードはオンライン監査フィルター マネジメントに参加できます。
auditLog.schema型: string
デフォルト:
mongoバージョン8.0の新機能。
監査ログに使用される形式を指定します。
auditLog.schemaには、次のいずれかの値を指定できます。値説明mongoログは、MongoDB によって設計された形式で書き込まれます。
ログメッセージの例については、「mongo スキーマ監査メッセージ」を参照してください。
OCSFログは OCSF 形式で書かれています。このオプションは、ログプロセッサと互換性のある標準化された形式でログを提供します。
ログメッセージの例については、「OCSF スキーマ監査メッセージ」を参照してください。
mongot オプション
パブリック プレビューで mongod で mongot を構成するには、次のオプションを使用します。
syncSource: replicaSet: <object> hostAndPort: <string> username: <string> passwordFile: <string> authSource: <string> tls: <boolean> readPreference: <string> router: <object> hostAndPort: <string> username: <string> passwordFile: <string> tls: <boolean> caFile: <string> storage: dataPath: <string> server: grpc: address: <string> tls: mode: <string> certificateKeyFile: <string> caFile: <string> address: <string> metrics: enabled: <boolean> address: <boolean> healthCheck: address: <string> logging: verbosity: <string> logPath: <string>
syncSource.replicaSet.hostAndPortタイプ: String または複数の string の配列
必要性: 必須
mongod接続文字列でシードリストを構築するために使用する 1 つ以上のホストとポート指定子。 ホスト指定子とポート指定子の数に関係なく、接続文字列はスタンドアロンモードではなくレプリカセットモードになります。
syncSource.replicaSet.usernameタイプ: string
必要性: 必須
mongodでmongotを認証するために使用するユーザー名。指定されたユーザーにはsearchCoordinatorロールが必要です。
syncSource.replicaSet.passwordFileタイプ: string
必要性: 必須
mongotがmongodで認証するために使用する必要があるパスワードを含むファイルへのパス。
syncSource.replicaSet.authSourceタイプ: string
必要性: 任意
mongot認証情報に関連付けられているデータベースの名前。指定されていない場合、authSourceはデフォルトでadminになります。
syncSource.replicaSet.tlsタイプ: ブール値
必要性: 任意
デフォルト: false
TLS接続文字列オプションへの直接パス。省略した場合、デフォルトは
falseになります。
syncSource.replicaSet.readPreferenceタイプ: string
必要性: 任意
デフォルト: secondaryPreferred
readPreference接続文字列オプションへの直接パス。省略した場合、レプリカセットのデフォルトは
secondaryPreferredになります。
syncSource.router型: オブジェクト
必要性: 条件付き
mongotのmongosへのレプリケーション接続。省略した場合、mongotはシャーディングされていない環境で実行中いることを想定します。mongotがシャーディングされた環境で実行中中で、この設定を定義しない場合、結果の動作は未定義になります。したがって、シャーディングされたクラスターではこれが必要です。
syncSource.router.hostAndPortタイプ: String または複数の string の配列
必要性: 必須
mongos接続文字列でシードリストを構築するために使用する 1 つ以上のホストとポート指定子。 ホスト指定子とポート指定子の数に関係なく、接続文字列はスタンドアロンモードではなくレプリカセットモードになります。
syncSource.router.usernameタイプ: string
必要性: 必須
mongosでmongotを認証するために使用するユーザー名。指定されたユーザーにはsearchCoordinatorロールが必要です。
syncSource.router.tlsタイプ: ブール値
必要性: 任意
デフォルト: false
TLS接続文字列オプションへの直接パス。省略した場合、デフォルトは
falseになります。
syncSource.router.readPreferenceタイプ: string
必要性: 任意
readPreference接続文字列オプションへの直接パス。
syncSource.caFileタイプ: string
必要性: 任意
mongodからエンドポイントに提示された証明書を検証するため、信頼できる証明書を含む証明機関(CA)のファイルを指定します。ファイルには PEM形式の X.509 証明書コレクションが含まれている必要があります。このオプションを指定すると、mongotはシステム キーストアの代わりにこのファイルを使用します。
server.grpc型: オブジェクト
必要性: 任意
mongotプロセスとmongodプロセス間の gRPC 通信のサーバー設定をリッスンします。省略した場合、 MongoDB はgRPC リッスンサーバーを起動しません。
server.grpc.addressタイプ: string
必要性: 必須
gRPC listenサーバーがリッスンするアドレス。アドレスは次の形式である必要があります。
<host>:<port> 警告
システムトポロジーによっては、
mongotクエリサーバーをMongoDBクラスターからアクセスできるインターフェースにバインドする必要がある場合があります。0.0.0.0IPアドレスへのバインディングは許可されていますが、サーバーがすべてのパブリック ネットワークに公開され、不正アクセスのリスクが生じます。セキュリティを強化するには、
localhostやその他の信頼できる内部アドレスなど、ネットワークレイヤーで制御および保護されている特定のインターフェースにserver.grpc.addressを制限することを検討してください。
server.grpc.tls型: オブジェクト
必要性: 任意
gRPC listenサーバーの TLS 構成オプション。
注意
tls構成制限の詳細については、mongo TLS 構成制限 を参照してください。
server.grpc.tls.certificateKeyFileタイプ: string
必要性: 条件付き
tls.modeが"TLS"または"mTLS"の場合に必須です。PKCS#8秘密キーを使用するmongotの有効な X.509 証明書を含む PEMファイルを指定します。mongodは、mongod--tlsCAFileオプションで指定した認証局(CA)のファイルを使用してこの証明書を検証します。
server.grpc.tls.caFileタイプ: string
必要性: 条件付き
tls.modeが"mTLS"の場合に必須です。mongodからエンドポイントに提示された証明書を検証するため、信頼できる証明書を含む証明機関(CA)のファイルを指定します。ファイルには PEM形式の X.509 証明書コレクションが含まれている必要があります。
metrics.enabledタイプ: ブール値
必要性: 必須
Prometheus メトリクス エンドポイントを有効にするフラグ。
falseの場合、 MongoDB はメトリクス ブロック内の他の構成オプションの構文を解析して検証しますが、メトリクス リスナーは起動しません。
metrics.addressタイプ: string
必要性: 任意
Prometheus
/metricsエンドポイントが公開されるソケット アドレス(IPv4/6)。アドレスは次の形式である必要があります。<host>:<port> 省略した場合、デフォルトは次のアドレスになります。
localhost:9946
healthCheck型: オブジェクト
必要性: 任意
mongotヘルスチェックエンドポイントの 設定。ヘルスチェックエンドポイントを無効にすることはできませんが、その listen アドレスは構成 できます。
mongos -only オプション
replication: localPingThresholdMs: <int> sharding: configDB: <string>
replication.localPingThresholdMsタイプ: 整数
デフォルト: 15
mongosでクライアントからの読み取り操作を渡すセカンダリ レプリカセット ノードの決定に使用される ping 時間(ミリ秒単位)。デフォルト値の15は、すべてのクライアントドライバーのデフォルト値に対応します。mongosがセカンダリ ノードへの読み取りの許可のリクエストを受信すると、mongosは次のようになります。ping 時間が最も短いセットのノードを検索します。
レプリカセット ノードのリストを作成します。これはセットの最も近い適切なノードから、ping 時間 15 ミリ秒以内です。
replication.localPingThresholdMsオプションに値を指定すると、mongosは、この値で許容されるレイテンシ内のレプリカ ノードのリストを構築します。このリストからランダムに読み取るノードを選択します。
replication.localPingThresholdMs設定によって比較されるノードの ping 時間は、最大 10 秒間隔で計算した直近の ping 時間の移動平均です。その結果、mongosが平均を再計算するまでに、一部のクエリは閾値を超えるノードに到達する可能性があります。詳細については、 読み込み設定 (read preference) ドキュメントの「レプリカセットの読み込み設定」セクションを参照してください。
sharding.configDB型: string
シャーディングされたクラスターのコンフィギュレーションサーバーはレプリカセットとして配置されます。レプリカセット コンフィギュレーションサーバーでは、WiredTiger ストレージエンジンを実行する必要があります。
コンフィギュレーションサーバー レプリカセット名と、コンフィギュレーションサーバー レプリカセットの少なくとも 1 つのノードのホスト名とポートを指定します。
sharding: configDB: <configReplSetName>/cfg1.example.net:27019, cfg2.example.net:27019,... シャーディングされたクラスターの
mongosインスタンスで指定するコンフィギュレーションサーバー レプリカセット名は同じにする必要がありますが、レプリカセットのノードのホスト名とポートにはそれぞれ異なった指定ができます。
Windows サービス オプション
processManagement: windowsService: serviceName: <string> displayName: <string> description: <string> serviceUser: <string> servicePassword: <string>
processManagement.windowsService.serviceName型: string
デフォルト: MongoDB
Windows サービスとして実行中の
mongosまたはmongodのサービス名。この名前をnet start <name>操作およびnet stop <name>操作で使用します。processManagement.windowsService.serviceNameは、--installまたは--removeオプションのいずれかと組み合わせて使用する必要があります。
processManagement.windowsService.displayName型: string
デフォルト: MongoDB
サービス管理アプリケーションで表示される MongoDB の名前。
processManagement.windowsService.description型: string
デフォルト: MongoDB Server
mongosまたはmongodのサービスの説明を実行します。processManagement.windowsService.descriptionは--installオプションと組み合わせて使用する必要があります。説明にスペースを含む場合は、その説明を引用符で囲む必要があります。
processManagement.windowsService.serviceUser型: string
特定のユーザーのコンテキストでの
mongosサービスまたはmongodサービス。このユーザーには「サービスとしてログオンする」権限が必要です。processManagement.windowsService.serviceUserは--installオプションと組み合わせて使用する必要があります。
processManagement.windowsService.servicePassword型: string
processManagement.windowsService.serviceUserオプションで実行する場合のmongosまたはmongodの<user>のパスワード。processManagement.windowsService.servicePasswordは--installオプションと組み合わせて使用する必要があります。
削除済み MMAPv1 オプション
MongoDB で非推奨の MMAPv1 ストレージエンジンと MMAPv1 固有の構成オプションが削除されました。
削除された構成ファイルの設定 | 削除されたコマンドライン オプション |
|---|---|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|