The following page describes the configuration options available in MongoDB 8.0. For configuration file options for other versions of MongoDB, see the appropriate version of the MongoDB Manual.下一页描述了MongoDB 8.0中可用的配置选项。有关其他版本MongoDB的配置文件选项,请参阅相应版本的MongoDB手册。
Note
If you're using MongoDB Atlas to manage your MongoDB deployments in the cloud, you don't need to create a configuration file. To learn how to configure settings for your MongoDB Atlas deployment, see Configure Additional Settings.如果您使用MongoDB Atlas来管理云中的MongoDB部署,则不需要创建配置文件。要了解如何为MongoDB Atlas部署配置设置,请参阅配置其他设置。
In addition to using the configuration file options, the default configuration for the MongoDB binaries also uses the operating system environment variables.除了使用配置文件选项外,MongoDB二进制文件的默认配置还使用操作系统环境变量。
Configuration File配置文件
You can configure 您可以在启动时使用配置文件配置mongod and mongos instances at startup using a configuration file. mongod和mongos实例。The configuration file contains settings that are equivalent to the 配置文件包含与mongod and mongos command-line options. mongod和mongos命令行选项等效的设置。See Self-Managed Configuration File Settings and Command-Line Options Mapping.请参见自我管理配置文件设置和命令行选项映射。
Using a configuration file makes managing 使用配置文件可以更容易地管理mongod and mongos options easier, especially for large-scale deployments. mongod和mongos选项,特别是对于大规模部署。You can also add comments to the configuration file to explain the server's settings.您还可以在配置文件中添加注释来解释服务器的设置。
If you installed MongoDB with a package manager such as如果您在Linux上使用yumorapton Linux orbrewon macOS, or with the MSI installer on Windows, a default configuration file has been provided as part of your installation:yum或apt等包管理器安装MongoDB,在macOS上使用brew安装MongoDB,或者在Windows上使用MSI安装程序安装MongoDB,则默认配置文件已作为安装的一部分提供:Platform平台Method方法Configuration File配置文件Linux apt,yum, orzypperPackage Managerapt、yum或zypper包管理器/etc/mongod.confmacOS brewPackage Manager包管理器/usr/local/etc/mongod.conf(on Intel processors), or(在英特尔处理器上),或/opt/homebrew/etc/mongod.conf(on Apple M1 processors)(在苹果M1处理器上)Windows MSI InstallerMSI 安装程序<install directory>\bin\mongod.cfgIf you installed MongoDB through a downloaded如果您是通过下载的TGZorZIPfile, you must create your own configuration file.TGZ或ZIP文件安装MongoDB的,则必须创建自己的配置文件。The basic example configuration is a good place to start.基本示例配置是一个很好的起点。
File Format文件格式
MongoDB configuration files use the YAML format [1].MongoDB配置文件使用YAML格式[1]。
The following sample configuration file contains several 以下示例配置文件包含几个mongod settings that you may adapt to your local configuration:mongod设置,您可以根据本地配置进行调整:
Note
YAML does not support tab characters for indentation: use spaces instead.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
...
The Linux package init scripts included in the official MongoDB packages depend on specific values for MongoDB官方包中包含的Linux包初始化脚本取决于systemLog.path, storage.dbPath, and processManagement.fork or MONGODB_CONFIG_OVERRIDE_NOFORK system environment variable. systemLog.path、storage.dbPath和processManagement.fork或MONGODB_CONFIG_OVERRIDE_NOFORK系统环境变量的特定值。If you modify these settings in the default configuration file, 如果在默认配置文件中修改这些设置,mongod may not start.mongod可能无法启动。
| [1] | |
Externally Sourced Values外部来源价值
Note
MongoDB supports using expansion directives in configuration files to load externally sourced values. MongoDB支持在配置文件中使用扩展指令来加载外部来源的值。Expansion directives can load values for specific configuration file options or load the entire configuration file.扩展指令可以加载特定配置文件选项的值,也可以加载整个配置文件。
The following expansion directives are available:以下扩展指令可用:
__rest |
|
__exec |
|
For complete documentation, see Externally Sourced Configuration File Values for Self-Managed Deployments.有关完整文档,请参阅自我管理部署的外部源配置文件值。
Use the Configuration File使用配置文件
To configure 要使用配置文件配置mongod or mongos using a config file, specify the config file with the --config option or the -f option, as in the following examples:mongod或mongos,请使用--config选项或-f选项指定配置文件,如下例所示:
For example, the following uses 例如,下面使用mongod --config <configuration file> mongos --config <configuration file>:mongod --config <configuration file>、mongos --config <configuration file>:
mongod --config /etc/mongod.conf
mongos --config /etc/mongos.conf
You can also use the 您还可以使用-f alias to specify the configuration file, as in the following:-f别名指定配置文件,如下所示:
mongod -f /etc/mongod.conf
mongos -f /etc/mongos.conf
If you installed from a package and have started MongoDB using your system's init script, you are already using a configuration file.如果你从包中安装并使用系统的init脚本启动了MongoDB,那么你已经在使用配置文件了。
Expansion Directives and --configExpand扩展指令和--configExpand
--configExpandIf you are using expansion directives in the configuration file, you must include the 如果在配置文件中使用扩展指令,则在启动--configExpand option when starting the mongod or mongos. For example:mongod或mongos时必须包含--configExpand选项。例如:
mongod --config /etc/mongod.conf --configExpand "rest,exec"
mongos --config /etc/mongos.conf --configExpand "rest,exec"
If the configuration file includes an expansion directive and you start the 如果配置文件包含扩展指令,并且您在启动mongod / mongos without specifying that directive in the --configExpand option, the mongod / mongos fails to start.mongod/mongos时没有在--configExpand选项中指定该指令,则mongod/mongos将无法启动。
For complete documentation, see Externally Sourced Configuration File Values for Self-Managed Deployments.有关完整文档,请参阅自我管理部署的外部源配置文件值。
Core Options核心选项
systemLog Options选项
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.verbosityType: integer类型:整数Default:默认值:0The default log message verbosity level for components. The verbosity level determines the amount of Informational and Debug messages MongoDB outputs.组件的默认日志消息详细程度。详细程度决定了MongoDB输出的信息和调试消息的数量。[2]The verbosity level can range from详细程度可以从0to5:0到5:0is the MongoDB's default log verbosity level, to include Informational messages.0是MongoDB的默认日志详细级别,用于包含信息消息。1to5increases the verbosity level to include Debug messages.1到5会增加详细程度,以包含调试消息。
To use a different verbosity level for a named component, use the component's verbosity setting.要为命名组件使用不同的详细程度,请使用组件的详细程度设置。For example, use the例如,使用systemLog.component.accessControl.verbosityto set the verbosity level specifically forACCESScomponents.systemLog.component.accessControl.verbosity专门为ACCESS组件设置详细级别。See the请参阅系统日志组件。特定组件详细度设置的systemLog.component.<name>.verbositysettings for specific component verbosity settings.systemLog.component.<name>.verbosity设置。For various ways to set the log verbosity level, see Configure Log Verbosity Levels.有关设置日志详细程度的各种方法,请参阅配置日志详细程度。[2] Starting in version 4.2, MongoDB includes the Debug verbosity level (1-5) in the log messages.从4.2版本开始,MongoDB在日志消息中包含调试详细级别(1-5)。For example, if the verbosity level is 2, MongoDB logs例如,如果详细程度为2,MongoDB会记录D2. In previous versions, MongoDB log messages only specifiedDfor Debug level.D2。在以前的版本中,MongoDB日志消息仅将调试级别指定为D。
systemLog.quietType: boolean类型:布尔值Default:默认值:falseRun在试图限制输出量的安静模式下运行mongosormongodin a quiet mode that attempts to limit the amount of output.mongos或mongod。systemLog.quietis not recommended for production systems as it may make tracking problems during particular connections much more difficult.不建议用于生产系统,因为这可能会使特定连接期间的跟踪问题变得更加困难。
systemLog.traceAllExceptionsType: boolean类型:布尔值Default:默认值:falsePrint verbose information for debugging. Use for additional logging for support-related troubleshooting.打印详细信息以进行调试。用于与支持相关的故障排除的额外日志记录。
systemLog.syslogFacilityType: string类型:字符串Default:默认值:userThe facility level used when logging messages to syslog. The value you specify must be supported by your operating system's implementation of syslog. To use this option, you must set将消息记录到syslog时使用的设施级别。您指定的值必须得到操作系统syslog实现的支持。要使用此选项,您必须将systemLog.destinationtosyslog.systemLog.destination设置为syslog。
systemLog.pathType: string类型:字符串The path of the log file to whichmongodormongosshould send all diagnostic logging information, rather than the standard output or the host's syslog. MongoDB creates the log file at the specified path.mongod或mongos应将所有诊断日志信息发送到的日志文件的路径,而不是标准输出或主机的syslog。MongoDB在指定路径创建日志文件。The Linux package init scripts do not expectLinux包初始化脚本不希望systemLog.pathto change from the defaults. If you use the Linux packages and changesystemLog.path, you must use your own init scripts and disable the built-in scripts.systemLog.path从默认值更改。如果使用Linux软件包并更改systemLog.path,则必须使用自己的init脚本并禁用内置脚本。
systemLog.logAppendType: boolean类型:布尔值Default:默认值:falseWhen当为true,mongosormongodappends new entries to the end of the existing log file when the instance restarts.true时,mongos或mongod会在实例重新启动时将新条目附加到现有日志文件的末尾。Without this option,如果没有此选项,mongodormongosbacks up the existing log and create a new file.mongod或mongos会备份现有日志并创建一个新文件。
systemLog.logRotateType: string类型:字符串Default:默认值:renameDetermines the behavior for the确定logRotatecommand when rotating the server log and/or the audit log. Specify eitherrenameorreopen:logRotate命令在旋转服务器日志和/或审核日志时的行为。指定rename或reopen:renamerenames the log file.重命名日志文件。reopencloses and reopens the log file following the typical Linux/Unix log rotate behavior.按照典型的Linux/Unix日志轮换行为关闭和重新打开日志文件。Use使用Linux/Unix logrotate实用程序时使用reopenwhen using the Linux/Unix logrotate utility to avoid log loss.reopen以避免日志丢失。If you specify如果指定reopen, you must also setsystemLog.logAppendtotrue.reopen,还必须将systemLog.logAppend设置为true。
systemLog.destinationType: string类型:字符串The destination to which MongoDB sends all log output. Specify eitherMongoDB将所有日志输出发送到的目标。指定fileorsyslog.file或syslog。If you specify如果指定file, you must also specifysystemLog.path.file,则还必须指定systemLog.path。If you do not specify如果不指定systemLog.destination, MongoDB sends all log output to standard output.systemLog.destination,MongoDB会将所有日志输出发送到标准输出。Warning
Thesyslogdaemon generates timestamps when it logs a message, not when MongoDB issues the message. This can lead to misleading timestamps for log entries, especially when the system is under heavy load. We recommend using thefileoption for production systems to ensure accurate timestamps.syslog守护进程在记录消息时生成时间戳,而不是在MongoDB发出消息时生成。这可能会导致日志条目的时间戳产生误导,尤其是在系统负载过重的情况下。我们建议在生产系统中使用file选项,以确保时间戳的准确性。
systemLog.timeStampFormatType: string类型:字符串Default:默认值:iso8601-localThe time format for timestamps in log messages. Specify one of the following values:日志消息中时间戳的时间格式。指定以下值之一:Value值Description描述iso8601-utcDisplays timestamps in Coordinated Universal Time (UTC) in the ISO-8601 format.以ISO-8601格式显示协调世界时(UTC)中的时间戳。For example, for New York at the start of the Epoch:例如,在纪元之初的纽约:1970-01-01T00:00:00.000Ziso8601-localDisplays timestamps in local time in the ISO-8601 format.以ISO-8601格式显示本地时间的时间戳。For example, for New York at the start of the Epoch:例如,在纪元之初的纽约:1969-12-31T19:00:00.000-05:00Note
systemLog.timeStampFormatno longer supportsctime. An example ofctimeformatted date is:Wed Dec 31 18:17:54.811.
systemLog.component Options选项
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>
Note
Starting in version 4.2, MongoDB includes the Debug verbosity level (1-5) in the log messages. For example, if the verbosity level is 2, MongoDB logs D2. In previous versions, MongoDB log messages only specified D for Debug level.
systemLog.component.assert.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for assertions encountered by user operations in MongoDB. Typically an assertion is triggered when an operation returns an error. See
ASSERTcomponents.
systemLog.component.accessControl.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to access control. See
ACCESScomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.command.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to commands. See
COMMANDcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.control.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to control operations. See
CONTROLcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.ftdc.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to diagnostic data collection operations. See
FTDCcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.geo.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to geospatial parsing operations. See
GEOcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.index.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to indexing operations. See
INDEXcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.network.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to networking operations. See
NETWORKcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.query.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to query operations. See
QUERYcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.query.rejected.verbosityType: integer类型:整数Default:默认值:0New in version 8.0.在版本8.0中新增。The log message verbosity level for components related to rejected query operations. For details, see the
REJECTEDcomponent.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.queryStats.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to invocations of
$queryStats. SeeQUERYSTATScomponents.The verbosity level can range from
0to5:0is the default log verbosity level, and only includes informational messages. No$queryStatscalls are logged at this level.1to2increases the verbosity level to include$queryStatscalls wherealgorithmis"hmac-sha-256". Any HMAC keys are redacted.3to5increases the verbosity level to include$queryStatscalls wherealgorithmis"hmac-sha-256", and the corresponding results. Each result is its own entry and there is a final entry with the string"we finished".
systemLog.component.replication.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to replication. See
REPLcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.replication.election.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to election. See
ELECTIONcomponents.If
systemLog.component.replication.election.verbosityis unset,systemLog.component.replication.verbositylevel also applies to election components.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.replication.heartbeats.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to heartbeats. See
REPL_HBcomponents.If
systemLog.component.replication.heartbeats.verbosityis unset,systemLog.component.replication.verbositylevel also applies to heartbeats components.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.replication.initialSync.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to initialSync. See
INITSYNCcomponents.If
systemLog.component.replication.initialSync.verbosityis unset,systemLog.component.replication.verbositylevel also applies to initialSync components.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.replication.rollback.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to rollback. See
ROLLBACKcomponents.If
systemLog.component.replication.rollback.verbosityis unset,systemLog.component.replication.verbositylevel also applies to rollback components.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.sharding.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to sharding. See
SHARDINGcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to storage. See
STORAGEcomponents.If
systemLog.component.storage.journal.verbosityis unset,systemLog.component.storage.verbositylevel also applies to journaling components.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.journal.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to journaling. See
JOURNALcomponents.If
systemLog.component.storage.journal.verbosityis unset, the journaling components have the same verbosity level as the parent storage components: i.e. either thesystemLog.component.storage.verbositylevel if set or the default verbosity level.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.recovery.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to recovery. See
RECOVERYcomponents.If
systemLog.component.storage.recovery.verbosityis unset,systemLog.component.storage.verbositylevel also applies to recovery components.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity level for components related to the WiredTiger storage engine. See
WTcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtBackup.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity level for components related to backup operations performed by the WiredTiger storage engine. See
WTBACKUPcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtCheckpoint.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to checkpoint operations performed by the WiredTiger storage engine. See
WTCHKPTcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtCompact.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to compaction operations performed by the WiredTiger storage engine. See
WTCMPCTcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtEviction.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to eviction operations performed by the WiredTiger storage engine. See
WTEVICTcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtHS.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to history store operations performed by the WiredTiger storage engine. See
WTHScomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtRecovery.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to recovery operations performed by the WiredTiger storage engine. See
WTRECOVcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtRTS.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to rollback to stable (RTS) operations performed by the WiredTiger storage engine. See
WTRTScomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtSalvage.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to salvage operations performed by the WiredTiger storage engine. See
WTSLVGcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtTimestamp.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to timestamps used by the WiredTiger storage engine. See
WTTScomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtTransaction.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to transaction operations performed by the WiredTiger storage engine. See
WTTXNcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtVerify.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to verification operations performed by the WiredTiger storage engine. See
WTVRFYcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.storage.wt.wtWriteLog.verbosityType: integer类型:整数Default:默认值:-1New in version 5.3.在版本5.3中新增。The log message verbosity for components related to log write operations performed by the WiredTiger storage engine. See
WTWRTLOGcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.transaction.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to transaction. See
TXNcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
systemLog.component.write.verbosityType: integer类型:整数Default:默认值:0The log message verbosity level for components related to write operations. See
WRITEcomponents.The verbosity level can range from
0to5:0is the MongoDB's default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
processManagement Options选项
processManagement:
fork: <boolean>
pidFilePath: <string>
timeZoneInfo: <string>
processManagement.forkType: boolean类型:布尔值Default:默认值:falseEnable a daemon mode that runs the
mongosormongodprocess in the background. By defaultmongosormongoddoes not run as a daemon. To usemongosormongodas a daemon, setprocessManagement.forkor use a controlling process that handles the daemonization process (for example,systemd).The
processManagement.forkoption is not supported on Windows.The Linux package init scripts do not expect
processManagement.forkto change from the defaults. If you use the Linux packages and changeprocessManagement.fork, you must use your own init scripts and disable the built-in scripts.
processManagement.pidFilePathType: string类型:字符串Specifies a file location to store the process ID (PID) of the
mongosormongodprocess. The user running themongodormongosprocess must be able to write to this path. If theprocessManagement.pidFilePathoption is not specified, the process does not create a PID file. This option is generally only useful in combination with theprocessManagement.forksetting.Note
Linux
On Linux, PID file management is generally the responsibility of your distro's init system: usually a service file in the
/etc/init.ddirectory, or a systemd unit file registered withsystemctl. Only use theprocessManagement.pidFilePathoption if you are not using one of these init systems. For more information, please see the respective Installation Guide for your operating system.Note
macOS
On macOS, PID file management is generally handled by
brew. Only use theprocessManagement.pidFilePathoption if you are not usingbrewon your macOS system. For more information, please see the respective Installation Guide for your operating system.
processManagement.timeZoneInfoType: string类型:字符串The full path from which to load the time zone database. If this option is not provided, then MongoDB uses its built-in time zone database.
The configuration file included with Linux and macOS packages sets the time zone database path to
/usr/share/zoneinfoby default.The built-in time zone database is a copy of the Olson/IANA time zone database. It is updated along with MongoDB releases, but the time zone database release cycle differs from the MongoDB release cycle. The most recent release of the time zone database is available on our download site.
Warning
MongoDB uses the third party timelib library to provide accurate conversions between timezones. Due to a recent update,
timelibcould create inaccurate time zone conversions in older versions of MongoDB.To explicitly link to the time zone database in versions of MongoDB prior to 5.0, download the time zone database. and use the
timeZoneInfoparameter.
net Options选项
Changed in version 5.0.在版本5.0中的更改。 MongoDB removes the net.serviceExecutor configuration option and the corresponding --serviceExecutor command-line option.
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.portType: integer类型:整数Default:
- 27017 for
mongod(if not a shard member or a config server member) ormongosinstance - 27018 if
mongodis ashard member - 27019 if
mongodis aconfig server member
The TCP port on which the MongoDB instance listens for client connections.
The
net.portoption accepts a range of values between0and65535. Setting the port to0configuresmongosormongodto use an arbitrary port assigned by the operating system.- 27017 for
net.bindIpType: string类型:字符串Default:默认值:localhostThe hostnames and/or IP addresses and/or full Unix domain socket paths on which
mongosormongodshould listen for client connections. You may attachmongosormongodto any interface. To bind to multiple addresses, enter a list of comma-separated values.Example示例localhost,/tmp/mongod.sockYou can specify both IPv4 and IPv6 addresses, or hostnames that resolve to an IPv4 or IPv6 address.
Example示例localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513Note
If specifying an IPv6 address or a hostname that resolves to an IPv6 address to
net.bindIp, you must startmongosormongodwithnet.ipv6 : trueto enable IPv6 support. Specifying an IPv6 address tonet.bindIpdoes not enable IPv6 support.If specifying a link-local IPv6 address (
fe80::/10), you must append the zone index to that address (i.e.fe80::<address>%<adapter-name>).Example示例localhost,fe80::a00:27ff:fee0:1fcf%enp0s3Important
To avoid configuration updates due to IP address changes, use DNS hostnames instead of IP addresses. It is particularly important to use a DNS hostname instead of an IP address when configuring replica set members or sharded cluster members.
Use hostnames instead of IP addresses to configure clusters across a split network horizon. Starting in MongoDB 5.0, nodes that are only configured with an IP address fail startup validation and do not start.
Warning
Before you bind your instance to a publicly-accessible IP address, you must secure your cluster from unauthorized access. For a complete list of security recommendations, see Security Checklist for Self-Managed Deployments. At minimum, consider enabling authentication and hardening network infrastructure.
For more information about IP Binding, refer to the IP Binding in Self-Managed Deployments documentation.
To bind to all IPv4 addresses, enter
0.0.0.0.To bind to all IPv4 and IPv6 addresses, enter
::,0.0.0.0or an asterisk"*"(enclose the asterisk in quotes to distinguish from YAML alias nodes). Alternatively, use thenet.bindIpAllsetting.Note
net.bindIpandnet.bindIpAllare mutually exclusive. That is, you can specify one or the other, but not both.- The command-line option
--bind_ipoverrides the configuration file settingnet.bindIp.
To configure cluster nodes for split horizon DNS, use host names instead of IP addresses.
Starting in MongoDB v5.0,
replSetInitiateandreplSetReconfigreject configurations that use IP addresses instead of hostnames.Use
disableSplitHorizonIPCheckto modify nodes that cannot be updated to use host names. The parameter only applies to the configuration commands.mongodandmongosdo not rely ondisableSplitHorizonIPCheckfor validation at startup. Legacymongodandmongosinstances that use IP addresses instead of host names can start after an upgrade.Instances that are configured with IP addresses log a warning to use host names instead of IP addresses.
net.bindIpAllType: boolean类型:布尔值Default:默认值:falseIf true, the
mongosormongodinstance binds to all IPv4 addresses (i.e.0.0.0.0). Ifmongosormongodstarts withnet.ipv6 : true,net.bindIpAllalso binds to all IPv6 addresses (i.e.::).mongosormongodonly supports IPv6 if started withnet.ipv6 : true. Specifyingnet.bindIpAllalone does not enable IPv6 support.Warning
Before you bind your instance to a publicly-accessible IP address, you must secure your cluster from unauthorized access. For a complete list of security recommendations, see Security Checklist for Self-Managed Deployments. At minimum, consider enabling authentication and hardening network infrastructure.
For more information about IP Binding, refer to the IP Binding in Self-Managed Deployments documentation.
Alternatively, set
net.bindIpto::,0.0.0.0or to an asterisk"*"(enclose the asterisk in quotes to distinguish from YAML alias nodes) to bind to all IP addresses.Note
net.bindIpandnet.bindIpAllare mutually exclusive. Specifying both options causesmongosormongodto throw an error and terminate.
net.maxIncomingConnectionsType: integer类型:整数Changed in version 8.1.在版本8.1中的更改。Default (Windows): 1,000,000
Default (Linux): (RLIMIT_NOFILE / 2) * 0.8Note
On Linux,
net.maxIncomingConnectionsmust be less than or equal to the value of (RLIMIT_NOFILE / 2) * 0.8. If you try to set a larger value, MongoDB automatically uses the default.The maximum number of simultaneous connections that
mongosormongodaccepts. This setting has no effect if it is higher than your operating system's configured maximum connection tracking threshold.Do not assign too low of a value to this option, or you may encounter errors during normal application operation.
This is particularly useful for a
mongosif you have a client that creates multiple connections and allows them to timeout rather than closing them.In this case, set
maxIncomingConnectionsto a value slightly higher than the maximum number of connections that the client creates, or the maximum size of the connection pool.This setting prevents the
mongosfrom causing connection spikes on the individual shards. Spikes like these may disrupt the operation and memory allocation of the sharded cluster.
net.wireObjectCheckType: boolean类型:布尔值Default:默认值:trueWhen
true, themongodormongosinstance validates all requests from clients upon receipt to prevent clients from inserting malformed or invalid BSON into a MongoDB database.For objects with a high degree of sub-document nesting,
net.wireObjectCheckcan have a small impact on performance.
net.ipv6Type: boolean类型:布尔值Default:默认值:falseSet
net.ipv6totrueto enable IPv6 support.mongos/mongoddisables IPv6 support by default.Setting
net.ipv6does not direct themongos/mongodto listen on any local IPv6 addresses or interfaces. To configure themongos/mongodto listen on an IPv6 interface, you must either:- Configure
net.bindIpwith one or more IPv6 addresses or hostnames that resolve to IPv6 addresses, or - Set
net.bindIpAlltotrue.
- Configure
net.unixDomainSocket Options选项
net:
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <int>
net.unixDomainSocket.enabledType: boolean类型:布尔值Default:默认值:trueEnable or disable listening on the UNIX domain socket.
net.unixDomainSocket.enabledapplies only to Unix-based systems.When
net.unixDomainSocket.enabledistrue,mongosormongodlistens on the UNIX socket.The
mongosormongodprocess always listens on the UNIX socket unless one of the following is true:net.unixDomainSocket.enabledisfalse--nounixsocketis set. The command line option takes precedence over the configuration file setting.net.bindIpis not setnet.bindIpdoes not specifylocalhostor its associated IP address
mongosormongodinstalled from official Install MongoDB Community Edition and Install MongoDB Community Edition packages have thebind_ipconfiguration set to127.0.0.1by default.
net.unixDomainSocket.pathPrefixType: string类型:字符串Default:默认值:/tmpThe path for the UNIX socket.
net.unixDomainSocket.pathPrefixapplies only to Unix-based systems.If this option has no value, the
mongosormongodprocess creates a socket with/tmpas a prefix. MongoDB creates and listens on a UNIX socket unless one of the following is true:net.unixDomainSocket.enabledisfalse--nounixsocketis setnet.bindIpis not setnet.bindIpdoes not specifylocalhostor its associated IP address
net.unixDomainSocket.filePermissionsType: int
Default:默认值:0700Sets the permission for the UNIX domain socket file.
net.unixDomainSocket.filePermissionsapplies only to Unix-based systems.
net.tls Options选项
Note
The tls options provide identical functionality as the previous ssl options.
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.modeType: string类型:字符串Enables TLS used for all network connections. The argument to the
net.tls.modesetting can be one of the following:Value Description描述disabledThe server does not use TLS. allowTLSConnections between servers do not use TLS. For incoming connections, the server accepts both TLS and non-TLS. preferTLSConnections between servers use TLS. For incoming connections, the server accepts both TLS and non-TLS. requireTLSThe server uses and accepts only TLS encrypted connections. If
--tlsCAFileortls.CAFileis not specified and you are not using X.509 authentication, you must set thetlsUseSystemCAparameter totrue. This makes MongoDB use the system-wide CA certificate store when connecting to a TLS-enabled server.If using X.509 authentication,
--tlsCAFileortls.CAFilemust be specified unless using--tlsCertificateSelector.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
net.tls.certificateKeyFileType: string类型:字符串The
.pemfile that contains both the TLS certificate and key.On macOS or Windows, you can use the
net.tls.certificateSelectorsetting to specify a certificate from the operating system's secure certificate store instead of a PEM key file.certificateKeyFileandnet.tls.certificateSelectorare mutually exclusive. You can only specify one.- On Linux/BSD, you must specify
net.tls.certificateKeyFilewhen TLS is enabled. On Windows or macOS, you must specify either
net.tls.certificateKeyFileornet.tls.certificateSelectorwhen TLS is enabled.Important
For Windows only, MongoDB does not support encrypted PEM files. The
mongodfails to start if it encounters an encrypted PEM file. To securely store and access a certificate for use with TLS on Windows, usenet.tls.certificateSelector.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .- On Linux/BSD, you must specify
net.tls.certificateKeyFilePasswordType: string类型:字符串The password to de-crypt the certificate-key file (i.e.
certificateKeyFile). Use thenet.tls.certificateKeyFilePasswordoption only if the certificate-key file is encrypted. In all cases, themongosormongodredacts the password from all logging and reporting output.On Linux/BSD, if the private key in the PEM file is encrypted and you do not specify the
net.tls.certificateKeyFilePasswordoption, MongoDB prompts for a passphrase.For more information, see TLS/SSL Certificate Passphrase.
On macOS, if the private key in the PEM file is encrypted, you must explicitly specify the
net.tls.certificateKeyFilePasswordoption. Alternatively, you can use a certificate from the secure system store (seenet.tls.certificateSelector) instead of a PEM key file or use an unencrypted PEM file.On Windows, MongoDB does not support encrypted certificates. The
mongodfails if it encounters an encrypted PEM file. Usenet.tls.certificateSelectorinstead.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
net.tls.certificateSelectorType: string类型:字符串Specifies a certificate property in order to select a matching certificate from the operating system's certificate store to use for TLS/SSL. Available on Windows and macOS as an alternative to
net.tls.certificateKeyFile.net.tls.certificateKeyFileandnet.tls.certificateSelectoroptions are mutually exclusive. You can only specify one.net.tls.certificateSelectoraccepts an argument of the format<property>=<value>where the property can be one of the following:Property Value type Description描述subjectASCII string Subject name or common name on certificate thumbprinthex string A sequence of bytes, expressed as hexadecimal, used to identify a public key by its SHA-1 digest.
The
thumbprintis sometimes referred to as afingerprint.When using the system SSL certificate store, OCSP (Online Certificate Status Protocol) is used to validate the revocation status of certificates.
The
mongodsearches the operating system's secure certificate store for the CA certificates required to validate the full certificate chain of the specified TLS certificate. Specifically, the secure certificate store must contain the root CA and any intermediate CA certificates required to build the full certificate chain to the TLS certificate.Warning
If you use
net.tls.certificateSelectorand/ornet.tls.clusterCertificateSelector, we do not recommend usingnet.tls.CAFileornet.tls.clusterFileto specify the root and intermediate CA certificateFor example, if the TLS certificate was signed with a single root CA certificate, the secure certificate store must contain that root CA certificate. If the TLS certificate was signed with an intermediate CA certificate, the secure certificate store must contain the intermedia CA certificate and the root CA certificate.
Note
You cannot use the
rotateCertificatescommand or thedb.rotateCertificates()shell method when usingnet.tls.certificateSelectoror--tlsCertificateSelectorset tothumbprint
net.tls.clusterCertificateSelectorType: string类型:字符串Specifies a certificate property to select a matching certificate from the operating system's secure certificate store to use for internal X.509 membership authentication.
Available on Windows and macOS as an alternative to
net.tls.clusterFile.net.tls.clusterFileandnet.tls.clusterCertificateSelectoroptions are mutually exclusive. You can only specify one.net.tls.clusterCertificateSelectoraccepts an argument of the format<property>=<value>where the property can be one of the following:Property Value type Description描述subjectASCII string Subject name or common name on certificate thumbprinthex string A sequence of bytes, expressed as hexadecimal, used to identify a public key by its SHA-1 digest.
The
thumbprintis sometimes referred to as afingerprint.The
mongodsearches the operating system's secure certificate store for the CA certificates required to validate the full certificate chain of the specified cluster certificate. Specifically, the secure certificate store must contain the root CA and any intermediate CA certificates required to build the full certificate chain to the cluster certificate.Warning
If you use
net.tls.certificateSelectorand/ornet.tls.clusterCertificateSelector, we do not recommend usingnet.tls.CAFileornet.tls.clusterCAFileto specify the root and intermediate CA certificate.For example, if the cluster certificate was signed with a single root CA certificate, the secure certificate store must contain that root CA certificate. If the cluster certificate was signed with an intermediate CA certificate, the secure certificate store must contain the intermediate CA certificate and the root CA certificate.
mongod/mongoslogs a warning on connection if the presented X.509 certificate expires within30days of themongod/mongoshost system time.
net.tls.clusterFileType: string类型:字符串The
.pemfile that contains the X.509 certificate-key file for membership authentication for the cluster or replica set.On macOS or Windows, you can use the
net.tls.clusterCertificateSelectoroption to specify a certificate from the operating system's secure certificate store instead of a PEM key file.net.tls.clusterFileandnet.tls.clusterCertificateSelectoroptions are mutually exclusive. You can only specify one.If
net.tls.clusterFiledoes not specify the.pemfile for internal cluster authentication or the alternativenet.tls.clusterCertificateSelector, the cluster uses the.pemfile specified in thecertificateKeyFilesetting or the certificate returned by thenet.tls.certificateSelector.If using X.509 authentication,
--tlsCAFileortls.CAFilemust be specified unless using--tlsCertificateSelector.mongod/mongoslogs a warning on connection if the presented X.509 certificate expires within30days of themongod/mongoshost system time.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .Important
For Windows only, MongoDB does not support encrypted PEM files. The
mongodfails to start if it encounters an encrypted PEM file. To securely store and access a certificate for use with membership authentication on Windows, usenet.tls.clusterCertificateSelector.
net.tls.clusterPasswordType: string类型:字符串The password to de-crypt the X.509 certificate-key file specified with
--sslClusterFile. Use thenet.tls.clusterPasswordoption only if the certificate-key file is encrypted. In all cases,mongosormongodredacts the password from all logging and reporting output.On Linux/BSD, if the private key in the X.509 file is encrypted and you do not specify the
net.tls.clusterPasswordoption, MongoDB prompts for a passphrase.For more information, see TLS/SSL Certificate Passphrase.
On macOS, if the private key in the X.509 file is encrypted, you must explicitly specify the
net.tls.clusterPasswordoption. Alternatively, you can either use a certificate from the secure system store (seenet.tls.clusterCertificateSelector) instead of a cluster PEM file or use an unencrypted PEM file.On Windows, MongoDB does not support encrypted certificates. The
mongodfails if it encounters an encrypted PEM file. Usenet.tls.clusterCertificateSelector.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
net.tls.clusterAuthX509New in version 7.0.在版本7.0中新增。net:
tls:
clusterAuthX509:
attributes: <string>
extensionValue: <string>
net.tls.clusterAuthX509.attributesType: string类型:字符串New in version 7.0.在版本7.0中新增。Specifies a set of X.509 Distinguished Name (DN) attributes and values that the server expects cluster member nodes to contain in their certificate subject names. This lets you use certificates that don't contain
DC,O, andOUvalues to authenticate cluster members.When
attributesis set, MongoDB matches certificates using the DN and ignores extension values.
net.tls.clusterAuthX509.extensionValueType: string类型:字符串New in version 7.0.在版本7.0中新增。Specifies an extension value that corresponds to the MongoDB cluster membership extension OID,
1.3.6.1.4.1.34601.2.1.2. The server expects cluster member nodes to contain this extension in their certificates. This lets you use certificates that don't containDC,O, andOUvalues to authenticate cluster members.When you set
extensionValue, MongoDB matches certificates using certificate extension values and ignores the Distinguished Name (DN).When you create a certificate with OID
1.3.6.1.4.1.34601.2.1.2, consider the following guidelines:- Keep the extension value below 128 bytes.
- Use a single UTF8String as the extension's inner value.
mongoddoesn't accept other string types. If you use OpenSSL, you must explicitly specify the ASN.1 type, so it encodes a UTF8String. For example:
- On the command line, specify
-addext: 1.3.6.1.4.1.34601.2.1.2=ASN1:UTF8String:<your-value>. - In an OpenSSL config file, specify
1.3.6.1.4.1.34601.2.1.2 = ASN1:UTF8String:<your-value>.
Warning
If you omit
ASN1:UTF8String:, OpenSSL might choose a different encoding or raw octets, whichmongodrejects with an "Unsupported tag" or "Unknown DER" tag.- On the command line, specify
net.tls.CAFileType: string类型:字符串The
.pemfile that contains the root certificate chain from the Certificate Authority. Specify the file name of the.pemfile using relative or absolute paths.- Windows/macOS Only
- If using
net.tls.certificateSelectorand/ornet.tls.clusterCertificateSelector, do not usenet.tls.CAFileto specify the root and intermediate CA certificates. Store all CA certificates required to validate the full trust chain of thenet.tls.certificateSelectorand/ornet.tls.clusterCertificateSelectorcertificates in the secure certificate store.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
net.tls.clusterCAFileType: string类型:字符串The
.pemfile that contains the root certificate chain from the Certificate Authority used to validate the certificate presented by a client establishing a connection. Specify the file name of the.pemfile using relative or absolute paths.net.tls.clusterCAFilerequires thatnet.tls.CAFileis set.If
net.tls.clusterCAFiledoes not specify the.pemfile for validating the certificate from a client establishing a connection, the cluster uses the.pemfile specified in thenet.tls.CAFileoption.net.tls.clusterCAFilelets you use separate Certificate Authorities to verify the client to server and server to client portions of the TLS handshake.Starting in 4.0, on macOS or Windows, you can use a certificate from the operating system's secure store instead of a PEM key file. See
net.tls.clusterCertificateSelector. When using the secure store, you do not need to, but can, also specify thenet.tls.clusterCAFile.- Windows/macOS Only
- If using
net.tls.certificateSelectorand/ornet.tls.clusterCertificateSelector, do not usenet.tls.clusterCAFileto specify the root and intermediate CA certificates. Store all CA certificates required to validate the full trust chain of thenet.tls.certificateSelectorand/ornet.tls.clusterCertificateSelectorcertificates in the secure certificate store.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
net.tls.CRLFileType: string类型:字符串The
.pemfile that contains the Certificate Revocation List. Specify the file name of the.pemfile using relative or absolute paths.Note
- You cannot specify
net.tls.CRLFileon macOS. Instead, you can use the system SSL certificate store, which uses OCSP (Online Certificate Status Protocol) to validate the revocation status of certificates. Seenet.tls.certificateSelectorto use the system SSL certificate store. - To check for certificate revocation, MongoDB
enablesthe use of OCSP (Online Certificate Status Protocol) by default as an alternative to specifying a CRL file or using the system SSL certificate store.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .- You cannot specify
net.tls.allowConnectionsWithoutCertificatesType: boolean类型:布尔值Default:默认值:falseIf
false, all clients must provide client TLS certificates. Iftrue, clients don't need to provide client certificates, butmongodormongosencrypts the TLS/SSL connection.If a client provides a client certificate, regardless of what value you set for
net.tls.allowConnectionsWithoutCertificates,mongosormongodperforms certificate validation using the root certificate chain specified byCAFile, or the system CA store iftlsUseSystemCAistrue, and rejects clients with invalid certificates.Use the
net.tls.allowConnectionsWithoutCertificatesoption if you have a mixed deployment that includes clients that do not or cannot present certificates to themongosormongod.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
net.tls.allowInvalidCertificatesType: boolean类型:布尔值Default:默认值:falseEnable or disable the validation checks for TLS certificates on other servers in the cluster and allows the use of invalid certificates to connect.
Note
If you specify
--tlsAllowInvalidCertificatesortls.allowInvalidCertificates: truewhen using X.509 authentication, an invalid certificate is only sufficient to establish a TLS connection but is insufficient for authentication.When using the
net.tls.allowInvalidCertificatessetting, MongoDB logs a warning regarding the use of the invalid certificate.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and Self-Managed Internal/Membership Authentication.
net.tls.allowInvalidHostnamesType: boolean类型:布尔值Default:默认值:falseWhen
net.tls.allowInvalidHostnamesistrue, MongoDB disables the validation of the hostnames in TLS certificates. This allowsmongodormongosto connect to other MongoDB instances in the cluster, even if the hostname of their certificates does not match the specified hostname.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments.
net.tls.disabledProtocolsType: string类型:字符串Prevents a MongoDB server running with TLS from accepting incoming connections that use a specific protocol or protocols. To specify multiple protocols, use a comma separated list of protocols, but do not use spaces after the commas. If you include a space before a protocol name, the server interprets it as an unrecognized protocol and doesn't start.
net.tls.disabledProtocolsrecognizes the following protocols:TLS1_0,TLS1_1,TLS1_2, andTLS1_3.- On macOS, you cannot disable
TLS1_1and leave bothTLS1_0andTLS1_2enabled. You must disable at least one of the other two, for example,TLS1_0,TLS1_1. - To list multiple protocols, specify as a comma separated list of protocols without spaces after the commas. For example
TLS1_0,TLS1_1. - Specifying an unrecognized protocol or including a space after a comma prevents the server from starting.
- The specified disabled protocols overrides any default disabled protocols.
MongoDB disables the use of TLS 1.0 if TLS 1.1+ is available on the system. To enable TLS 1.0, specify
nonetonet.tls.disabledProtocols.Members of replica sets and sharded clusters must speak at least one protocol in common.
- On macOS, you cannot disable
net.tls.FIPSModeType: boolean类型:布尔值Default:默认值:falseEnable or disable the use of the FIPS mode of the TLS library for the
mongosormongod. Your system must have a FIPS compliant library to use thenet.tls.FIPSModeoption.Note
FIPS-compatible TLS/SSL is available only in MongoDB Enterprise. See Configure MongoDB for FIPS for more information.
net.tls.logVersionsType: string类型:字符串Instructs
mongosormongodto log a message when a client connects using a specified TLS version.Specify either a single TLS version or a comma-separated list of multiple TLS versions.
Example示例To instruct
mongosormongodto log a message when a client connects using either TLS 1.2 or TLS 1.3, setnet.tls.logVersionsto"TLS1_2,TLS1_3".
net.compression Option选项
net:
compression:
compressors: <string>
net.compression.compressorsDefault:默认值:snappy,zstd,zlibSpecifies the default compressor(s) to use for communication between this
mongodormongosinstance and:- other members of the deployment if the instance is part of a replica set or a sharded cluster
mongosh- drivers that support the
OP_COMPRESSEDmessage format.
MongoDB supports the following compressors:
To disable network compression, set the value to
disabled.Important
Messages are compressed when both parties enable network compression. Otherwise, messages between the parties are uncompressed.
If you specify multiple compressors, then the order in which you list the compressors matter as well as the communication initiator. For example, if
mongoshspecifies the following network compressorszlib,snappyand themongodspecifiessnappy,zlib, messages betweenmongoshandmongoduseszlib.If the parties do not share at least one common compressor, messages between the parties are uncompressed. For example, if
mongoshspecifies the network compressorzlibandmongodspecifiessnappy, messages betweenmongoshandmongodare not compressed.
security Options选项
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.keyFileType: string类型:字符串The path to a key file that stores the shared secret that MongoDB instances use to authenticate to each other in a sharded cluster or replica set.
keyFileimpliessecurity.authorization. See Self-Managed Internal/Membership Authentication for more information.Keyfiles for internal membership authentication use YAML format to allow for multiple keys in a keyfile. The YAML format accepts either:
- A single key string (same as in earlier versions)
- A sequence of key strings
The YAML format is compatible with the existing single-key keyfiles that use the text file format.
security.clusterAuthModeType: string类型:字符串Default:默认值:keyFileThe authentication mode used for cluster authentication. If you use internal X.509 authentication, specify so here. This option can have one of the following values:
Value Description描述keyFileUse a keyfile for authentication. Accept only keyfiles. sendKeyFileFor rolling upgrade purposes. Send a keyfile for authentication but can accept both keyfiles and X.509 certificates. sendX509For rolling upgrade purposes. Send the X.509 certificate for authentication but can accept both keyfiles and X.509 certificates. x509Recommended. Send the X.509 certificate for authentication and accept only X.509 certificates. If
--tlsCAFileortls.CAFileis not specified and you are not using X.509 authentication, you must set thetlsUseSystemCAparameter totrue. This makes MongoDB use the system-wide CA certificate store when connecting to a TLS-enabled server.If using X.509 authentication,
--tlsCAFileortls.CAFilemust be specified unless using--tlsCertificateSelector.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
security.authorizationType: string类型:字符串Default:默认值:disabledEnable or disable Role-Based Access Control (RBAC) to govern each user's access to database resources and operations.
Set this option to one of the following:
Value Description描述enabledA user can access only the database resources and actions for which they have been granted privileges. disabledA user can access any database and perform any action. See Role-Based Access Control in Self-Managed Deployments for more information.
The
security.authorizationsetting is available only formongod.
security.transitionToAuthType: boolean类型:布尔值Default:默认值:falseAllows the
mongodormongosto accept and create authenticated and non-authenticated connections to and from othermongodandmongosinstances in the deployment. Used for performing rolling transition of replica sets or sharded clusters from a no-auth configuration to internal authentication. Requires specifying a internal authentication mechanism such assecurity.keyFile.For example, if using keyfiles for internal authentication, the
mongodormongoscreates an authenticated connection with anymongodormongosin the deployment using a matching keyfile. If the security mechanisms do not match, themongodormongosutilizes a non-authenticated connection instead.A
mongodormongosrunning withsecurity.transitionToAuthdoes not enforce user access controls. Users may connect to your deployment without any access control checks and perform read, write, and administrative operations.Note
A
mongodormongosrunning with internal authentication and withoutsecurity.transitionToAuthrequires clients to connect using user access controls. Update clients to connect to themongodormongosusing the appropriate user prior to restartingmongodormongoswithoutsecurity.transitionToAuth.
security.javascriptEnabledType: boolean类型:布尔值Default:默认值:trueImportant
Server-side JavaScript Deprecated
Starting in MongoDB 8.0, server-side JavaScript functions (
$accumulator,$function,$where) are deprecated. MongoDB logs a warning when you run these functions.Map-reduce is deprecated starting in MongoDB 5.0.
Enables or disables server-side JavaScript execution. When disabled, you cannot use operations that perform server-side execution of JavaScript code, such as the
$wherequery operator,mapReducecommand,$accumulator, and$function.If you do not use these operations, disable server-side scripting.
The
security.javascriptEnabledis available for bothmongodandmongos. In earlier versions, the setting is only available formongod.
security.redactClientLogDataType: boolean类型:布尔值Available in MongoDB Enterprise only.
A
mongodormongosrunning withsecurity.redactClientLogDataredacts any message accompanying a given log event before logging. This prevents themongodormongosfrom writing potentially sensitive data stored on the database to the diagnostic log. Metadata such as error or operation codes, line numbers, and source file names are still visible in the logs.Use
security.redactClientLogDatain conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements.For example, a MongoDB deployment might store Personally Identifiable Information (PII) in one or more collections. The
mongodormongoslogs events such as those related to CRUD operations, sharding metadata, etc. It is possible that themongodormongosmay expose PII as a part of these logging operations. Amongodormongosrunning withsecurity.redactClientLogDataremoves any message accompanying these events before being output to the log, effectively removing the PII.Diagnostics on a
mongodormongosrunning withsecurity.redactClientLogDatamay be more difficult due to the lack of data related to a log event. See the process logging manual page for an example of the effect ofsecurity.redactClientLogDataon log output.On a running
mongodormongos, usesetParameterwith theredactClientLogDataparameter to configure this setting.
security.clusterIpSourceAllowlistType: list
New in version 5.0.在版本5.0中新增。Changed in version 5.2.在版本5.2中的更改。A list of IP addresses/CIDR (Classless Inter-Domain Routing) ranges against which the
mongodvalidates authentication requests from other members of the replica set and, if part of a sharded cluster, themongosinstances. Themongodverifies that the originating IP is either explicitly in the list or belongs to a CIDR range in the list. If the IP address is not present, the server does not authenticate themongodormongos.security.clusterIpSourceAllowlisthas no effect on amongodstarted without authentication.Starting in MongoDB 5.2, you can configure
security.clusterIpSourceAllowliston a runningmongodormongosusingsetParameter.This example updates
security.clusterIpSourceAllowlistduring runtime to include the IP addresses"1.1.1.1/24","2.2.2.2/16", and"3.3.3.3".db.adminCommand( {
setParameter: 1,
"clusterIpSourceAllowlist": ["1.1.1.1/24", "2.2.2.2/16", "3.3.3.3"]
} );This example updates
security.clusterIpSourceAllowlistduring runtime to exclude all IP addresses:db.adminCommand( {
setParameter: 1,
"clusterIpSourceAllowlist": null
} );security.clusterIpSourceAllowlisthas no effect on amongodstarted without authentication.security.clusterIpSourceAllowlistrequires specifying each IPv4/6 address or Classless Inter-Domain Routing (CIDR) range as a YAML list:security:
clusterIpSourceAllowlist:
- 192.0.2.0/24
- 127.0.0.1
- ::1Important
Ensure
security.clusterIpSourceAllowlistincludes the IP address or CIDR ranges that include the IP address of each replica set member ormongosin the deployment to ensure healthy communication between cluster components.
Key Management Configuration Options
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.enableEncryptionType: boolean类型:布尔值Default:默认值:falseEnables encryption for the WiredTiger storage engine. You must set to
trueto pass in encryption keys and configurations.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.encryptionCipherModeType: string类型:字符串Default:默认值:AES256-CBCThe cipher mode to use for encryption at rest:
Mode Description描述AES256-CBC256-bit Advanced Encryption Standard in Cipher Block Chaining Mode AES256-GCM256-bit Advanced Encryption Standard in Galois/Counter Mode
Available only on Linux.
MongoDB Enterprise on Windows no longer supports
AES256-GCMas a block cipher for encryption at rest. This usage is only supported on Linux.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.encryptionKeyFileType: string类型:字符串The path to the local keyfile when managing keys through a process other than KMIP. Only set when managing keys through a process other than KMIP. If data is already encrypted using KMIP, MongoDB throws an error.
Requires
security.enableEncryptionto betrue.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.keyIdentifierType: string类型:字符串Unique KMIP identifier for an existing key within the KMIP server. Include to use the key associated with the identifier as the system key. You can only use the setting the first time you enable encryption for the
mongodinstance. Requiressecurity.enableEncryptionto be true.If unspecified, MongoDB requests that the KMIP server create a new key to utilize as the system key.
If the KMIP server cannot locate a key with the specified identifier or the data is already encrypted with a key, MongoDB throws an error.
Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.rotateMasterKeyType: boolean类型:布尔值Default:默认值:falseIf true, rotate the master key and re-encrypt the internal keystore.
Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.serverNameType: string类型:字符串Hostname or IP address of the KMIP server to connect to. Requires
security.enableEncryptionto be true.You can specify multiple KMIP servers as a comma-separated list, for example
server1.example.com,server2.example.com. On startup, themongodattempts to establish a connection to each server in the order listed, and selects the first server to which it can successfully establish a connection. KMIP server selection occurs only at startup.mongodverifies the connection to the KMIP server on startup.The server name specified in
--kmipServerNamemust match either the Subject Alternative NameSANor the Common NameCNon the certificate presented by the KMIP server.SANcan be a system name or an IP address.If
SANis present,mongoddoes not try to match againstCN.If the hostname or IP address of the KMIP server does does not match either
SANorCN,mongoddoes not start.Starting in MongoDB 4.2, when performing comparison of SAN, MongoDB supports comparison of DNS names or IP addresses. In previous versions, MongoDB only supports comparisons of DNS names.
Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.portType: string类型:字符串Default:默认值:5696Port number to use to communicate with the KMIP server. Requires
security.kmip.serverName. Requiressecurity.enableEncryptionto be true.If specifying multiple KMIP servers with
security.kmip.serverName, themongoduses the port specified withsecurity.kmip.portfor all provided KMIP servers.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.clientCertificateFileType: string类型:字符串Path to the
.pemfile used to authenticate MongoDB to the KMIP server. The specified.pemfile must contain both the TLS/SSL certificate and key.To use this setting, you must also specify the
security.kmip.serverNamesetting.Important
Enabling encryption using a KMIP server on Windows fails when using
security.kmip.clientCertificateFileand the KMIP server enforces TLS 1.2.To enable encryption at rest with KMIP on Windows, you must:
- Import the client certificate into the Windows Certificate Store.
- Use the
security.kmip.clientCertificateSelectoroption.
Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.clientCertificatePasswordType: string类型:字符串The password to decrypt the Private Key of the Client Certificate that connects to the KMIP server. This option authenticates MongoDB to the KMIP server and requires that you provide a
--kmipClientCertificateFile.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.clientCertificateSelectorType: string类型:字符串New in version 5.0.在版本5.0中新增。 Available on Windows and macOS as an alternative tosecurity.kmip.clientCertificateFile.security.kmip.clientCertificateFileandsecurity.kmip.clientCertificateSelectoroptions are mutually exclusive. You can only specify one.Specifies a certificate property in order to select a matching certificate from the operating system's certificate store to authenticate MongoDB to the KMIP server.
security.kmip.clientCertificateSelectoraccepts an argument of the format<property>=<value>where the property can be one of the following:Property Value type Description描述subjectASCII string Subject name or common name on certificate thumbprinthex string A sequence of bytes, expressed as hexadecimal, used to identify a public key by its SHA-1 digest.
The
thumbprintis sometimes referred to as afingerprint.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.serverCAFileType: string类型:字符串Path to CA File. Used for validating secure client connection to KMIP server.
Note
Starting in 4.0, on macOS or Windows, you can use a certificate from the operating system's secure store instead of a PEM key file. See
security.kmip.clientCertificateSelector. When using the secure store, you do not need to, but can, also specify thesecurity.kmip.serverCAFile.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.connectRetriesType: int
Default:默认值:0How many times to retry the initial connection to the KMIP server. Use together with
connectTimeoutMSto control how long themongodwaits for a response between each retry.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.connectTimeoutMSType: int
Default:默认值:5000Timeout in milliseconds to wait for a response from the KMIP server. If the
connectRetriessetting is specified, themongodwaits up to the value specified withconnectTimeoutMSfor each retry.Value must be
1000or greater.Note
Enterprise Feature
Available in MongoDB Enterprise only.
security.kmip.activateKeysType: boolean类型:布尔值Default:默认值:trueNew in version 5.3.在版本5.3中新增。Activates all newly created KMIP keys upon creation and then periodically checks those keys are in an active state.
When
security.kmip.activateKeysistrueand you have existing keys on a KMIP server, the key must be activated first or themongodnode fails to start.If the key being used by the mongod transitions into a non-active state, the
mongodnode shuts down unlesskmipActivateKeysis false. To ensure you have an active key, rotate the KMIP master key by usingsecurity.kmip.rotateMasterKey.
security.kmip.keyStatePollingSecondsType: int
Default:默认值:900 secondsNew in version 5.3.在版本5.3中新增。Frequency in seconds at which mongod polls the KMIP server for active keys.
To disable disable polling, set the value to
-1.
security.kmip.useLegacyProtocolType: boolean类型:布尔值Default:默认值:falseNew in version 7.0.在版本7.0中新增。 (and 6.0.6)When
true,mongoduses KMIP protocol version 1.0 or 1.1 instead of the default version. The default KMIP protocol is version 1.2.To use audit log encryption with KMIP version 1.0 or 1.1, you must specify
auditEncryptKeyWithKMIPGetat startup.To use KMIP protocol version 1.0 or 1.1, substitute your local values and add an entry like this to your
mongodconfiguration file:security:
enableEncryption: true
kmip:
serverName: "mdbhost.somecompany.com"
serverCAFile: "security/libs/trusted-ca.pem"
clientCertificateFile: "security/libs/trusted-client.pem"
useLegacyProtocol: true
security.sasl Options选项
security:
sasl:
hostName: <string>
serviceName: <string>
saslauthdSocketPath: <string>
security.sasl.hostNameType: string类型:字符串A fully qualified server domain name for the purpose of configuring SASL and Kerberos authentication. The SASL hostname overrides the hostname only for the configuration of SASL and Kerberos.
security.sasl.serviceNameType: string类型:字符串Registered name of the service using SASL. This option allows you to override the default Kerberos service name component of the Kerberos principal name, on a per-instance basis. If unspecified, the default value is
mongodb.MongoDB permits setting this option only at startup. The
setParametercan not change this setting.This option is available only in MongoDB Enterprise.
Important
Ensure that your driver supports alternate service names. For
mongoshand other MongoDB tools to connect to the newserviceName, see thegssapiServiceNameoption.
security.sasl.saslauthdSocketPathType: string类型:字符串The path to the UNIX domain socket file for
saslauthd.
security.ldap Options选项
Note
Starting in MongoDB 8.0, LDAP authentication and authorization is deprecated. LDAP is available and will continue to operate without changes throughout the lifetime of MongoDB 8. LDAP will be removed in a future major release.
For details, see LDAP Deprecation.
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.serversType: string类型:字符串Available in MongoDB Enterprise only.
The LDAP server against which the
mongodormongosauthenticates users or determines what actions a user is authorized to perform on a given database. If the LDAP server specified has any replicated instances, you may specify the host and port of each replicated server in a comma-delimited list.If your LDAP infrastructure partitions the LDAP directory over multiple LDAP servers, specify one LDAP server or any of its replicated instances to
security.ldap.servers. MongoDB supports following LDAP referrals as defined in RFC 4511 4.1.10. Do not usesecurity.ldap.serversfor listing every LDAP server in your infrastructure.You can prefix LDAP servers with
srv:andsrv_raw:.If your connection string specifies
"srv:<DNS_NAME>",mongodverifies that"_ldap._tcp.gc._msdcs.<DNS_NAME>"exists for SRV to support Active Directory. If not found,mongodverifies that"_ldap._tcp.<DNS_NAME>"exists for SRV. If an SRV record cannot be found,mongodwarns you to use"srv_raw:<DNS_NAME>"instead.If your connection string specifies
"srv_raw:<DNS_NAME>",mongodperforms an SRV record lookup for"<DNS NAME>".This setting can be configured on a running
mongodormongosusingsetParameter.If unset,
mongodormongoscannot use LDAP authentication or authorization.
security.ldap.bind.queryUserType: string类型:字符串Available in MongoDB Enterprise only.
The identity with which
mongodormongosbinds as, when connecting to or performing queries on an LDAP server.Only required if any of the following are true:
- Using LDAP authorization.
- Using an LDAP query for
security.ldap.userToDNMapping. - The LDAP server disallows anonymous binds
You must use
queryUserwithqueryPassword.If unset,
mongodormongosdoes not attempt to bind to the LDAP server.This setting can be configured on a running
mongodormongosusingsetParameter.Note
Windows MongoDB deployments can use
useOSDefaultsinstead ofqueryUserandqueryPassword. You cannot specify bothqueryUseranduseOSDefaultsat the same time.
security.ldap.bind.queryPasswordType: string or array
Available in MongoDB Enterprise only.
The password used to bind to an LDAP server when using
queryUser. You must usequeryPasswordwithqueryUser.If not set,
mongodormongosdoes not attempt to bind to the LDAP server.You can configure this setting on a running
mongodormongosusingsetParameter.The
ldapQueryPasswordsetParametercommand accepts either a string or an array of strings. IfldapQueryPasswordis set to an array, MongoDB tries each password in order until one succeeds. Use a password array to roll over the LDAP account password without downtime.Note
Windows MongoDB deployments can use
useOSDefaultsinstead ofqueryUserandqueryPassword. You cannot specify bothqueryPasswordanduseOSDefaultsat the same time.
security.ldap.bind.useOSDefaultsType: boolean类型:布尔值Default:默认值:falseAvailable in MongoDB Enterprise for the Windows platform only.
Allows
mongodormongosto authenticate, or bind, using your Windows login credentials when connecting to the LDAP server.Only required if:
- Using LDAP authorization.
- Using an LDAP query for
username transformation. - The LDAP server disallows anonymous binds
Use
useOSDefaultsto replacequeryUserandqueryPassword.
security.ldap.bind.methodType: string类型:字符串Default:默认值:simpleAvailable in MongoDB Enterprise only.
The method
mongodormongosuses to authenticate to an LDAP server. Use withqueryUserandqueryPasswordto connect to the LDAP server.methodsupports the following values:simple-mongodormongosuses simple authentication.sasl-mongodormongosuses SASL protocol for authentication
If you specify
sasl, you can configure the available SASL mechanisms usingsecurity.ldap.bind.saslMechanisms.mongodormongosdefaults to usingDIGEST-MD5mechanism.
security.ldap.bind.saslMechanismsType: string类型:字符串Default:默认值:DIGEST-MD5Available in MongoDB Enterprise only.
A comma-separated list of SASL mechanisms
mongodormongoscan use when authenticating to the LDAP server. Themongodormongosand the LDAP server must agree on at least one mechanism. Themongodormongosdynamically loads any SASL mechanism libraries installed on the host machine at runtime.Install and configure the appropriate libraries for the selected SASL mechanism(s) on both the
mongodormongoshost and the remote LDAP server host. Your operating system may include certain SASL libraries by default. Defer to the documentation associated with each SASL mechanism for guidance on installation and configuration.If using the
GSSAPISASL mechanism for use with Kerberos Authentication on Self-Managed Deployments, verify the following for themongodormongoshost machine:Linux-
- The
KRB5_CLIENT_KTNAMEenvironment variable resolves to the name of the client Linux Keytab Files for the host machine. For more on Kerberos environment variables, please defer to the Kerberos documentation. - The client keytab includes a User Principal for the
mongodormongosto use when connecting to the LDAP server and execute LDAP queries.
- The
Windows- If connecting to an Active Directory server, the Windows Kerberos configuration automatically generates a Ticket-Granting-Ticket when the user logs onto the system. Set
useOSDefaultstotrueto allowmongodormongosto use the generated credentials when connecting to the Active Directory server and execute queries.
Set
methodtosaslto use this option.Note
For a complete list of SASL mechanisms see the IANA listing. Defer to the documentation for your LDAP or Active Directory service for identifying the SASL mechanisms compatible with the service.
MongoDB is not a source of SASL mechanism libraries, nor is the MongoDB documentation a definitive source for installing or configuring any given SASL mechanism. For documentation and support, defer to the SASL mechanism library vendor or owner.
For more information on SASL, defer to the following resources:
- For Linux, please see the Cyrus SASL documentation.
- For Windows, please see the Windows SASL documentation.
security.ldap.transportSecurityType: string类型:字符串Default:默认值:tlsAvailable in MongoDB Enterprise only.
By default,
mongodormongoscreates a TLS/SSL secured connection to the LDAP server.For Linux deployments, you must configure the appropriate TLS Options in
/etc/openldap/ldap.conffile. Your operating system's package manager creates this file as part of the MongoDB Enterprise installation, through thelibldapdependency. See the documentation forTLS Optionsin the ldap.conf OpenLDAP documentation for more complete instructions.For Windows deployment, you must add the LDAP server CA certificates to the Windows certificate management tool. The exact name and functionality of the tool may vary depending on operating system version. Please see the documentation for your version of Windows for more information on certificate management.
Set
transportSecuritytononeto disable TLS/SSL betweenmongodormongosand the LDAP server.Warning
Setting
transportSecuritytononetransmits plaintext information and possibly credentials betweenmongodormongosand the LDAP server.
security.ldap.timeoutMSType: int
Default:默认值:10000Available in MongoDB Enterprise only.
The amount of time in milliseconds
mongodormongosshould wait for an LDAP server to respond to a request.Increasing the value of
timeoutMSmay prevent connection failure between the MongoDB server and the LDAP server, if the source of the failure is a connection timeout. Decreasing the value oftimeoutMSreduces the time MongoDB waits for a response from the LDAP server.This setting can be configured on a running
mongodormongosusingsetParameter.
security.ldap.retryCountNew in version 6.1.在版本6.1中新增。Type: int
Default:默认值:0Available in MongoDB Enterprise only.
Number of operation retries by the server LDAP manager after a network error.
This setting can be configured on a running
mongodormongosusingsetParameter.
security.ldap.userToDNMappingType: string类型:字符串Available in MongoDB Enterprise only.
Maps the username provided to
mongodormongosfor authentication to a LDAP Distinguished Name (DN). You may need to useuserToDNMappingto transform a username into an LDAP DN in the following scenarios:- Performing LDAP authentication with simple LDAP binding, where users authenticate to MongoDB with usernames that are not full LDAP DNs.
- Using an
LDAP authorization query templatethat requires a DN. - Transforming the usernames of clients authenticating to Mongo DB using different authentication mechanisms (for example, X.509, kerberos) to a full LDAP DN for authorization.
userToDNMappingexpects a quote-enclosed JSON-string representing an ordered array of documents. Each document contains a regular expressionmatchand either asubstitutionorldapQuerytemplate used for transforming the incoming username.Each document in the array has the following form:
{
match: "<regex>"
substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>"
}Field字段Description描述Example示例matchAn ECMAScript-formatted regular expression (regex) to match against a provided username. Each parenthesis-enclosed section represents a regex capture group used by substitutionorldapQuery."(.+)ENGINEERING""(.+)DBA"substitutionAn LDAP distinguished name (DN) formatting template that converts the authentication name matched by the
matchregex into a LDAP DN. Each curly bracket-enclosed numeric value is replaced by the corresponding regex capture group extracted from the authentication username through thematchregex.The result of the substitution must be an RFC4514 escaped string.
"cn={0},ou=engineering, dc=example,dc=com"ldapQueryA LDAP query formatting template that inserts the authentication name matched by the matchregex into an LDAP query URI encoded respecting RFC4515 and RFC4516. Each curly bracket-enclosed numeric value is replaced by the corresponding regex capture group extracted from the authentication username through thematchexpression.mongodormongosexecutes the query against the LDAP server to retrieve the LDAP DN for the authenticated user.mongodormongosrequires exactly one returned result for the transformation to be successful, ormongodormongosskips this transformation."ou=engineering,dc=example, dc=com??one?(user={0})"Note
For each document in the array, you must use either
substitutionorldapQuery. You cannot specify both in the same document.When performing authentication or authorization,
mongodormongossteps through each document in the array in the given order, checking the authentication username against thematchfilter. If a match is found,mongodormongosapplies the transformation and uses the output for authenticating the user.mongodormongosdoes not check the remaining documents in the array.If the given document does not match the provided authentication name,
mongodormongoscontinues through the list of documents to find additional matches. If no matches are found in any document, or the transformation the document describes fails,mongodormongosreturns an error.mongodormongosalso returns an error if one of the transformations cannot be evaluated due to networking or authentication failures to the LDAP server.mongodormongosrejects the connection request and does not check the remaining documents in the array.Starting in MongoDB 5.0,
userToDNMappingaccepts an empty string""or empty array[ ]in place of a mapping document. If providing an empty string or empty array touserToDNMapping, MongoDB maps the authenticated username as the LDAP DN. Previously, providing an empty mapping document would cause mapping to fail.Example示例The following shows two transformation documents. The first document matches against any string ending in
@ENGINEERING, placing anything preceding the suffix into a regex capture group. The second document matches against any string ending in@DBA, placing anything preceding the suffix into a regex capture group.Important
You must pass the array to userToDNMapping as a string.
"[
{
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})"
}
]"A user with username
alice@ENGINEERING.EXAMPLE.COMmatches the first document. The regex capture group{0}corresponds to the stringalice. The resulting output is the DN"cn=alice,ou=engineering,dc=example,dc=com".A user with username
bob@DBA.EXAMPLE.COMmatches the second document. The regex capture group{0}corresponds to the stringbob. The resulting output is the LDAP query"ou=dba,dc=example,dc=com??one?(user=bob)".mongodormongosexecutes this query against the LDAP server, returning the result"cn=bob,ou=dba,dc=example,dc=com".If
userToDNMappingis unset,mongodormongosapplies no transformations to the username when attempting to authenticate or authorize a user against the LDAP server.This setting can be configured on a running
mongodormongosusing thesetParameterdatabase command.
security.ldap.authz.queryTemplateType: string类型:字符串Available in MongoDB Enterprise only.
A relative LDAP query URL formatted conforming to RFC4515 and RFC4516 that
mongodexecutes to obtain the LDAP groups to which the authenticated user belongs to. The query is relative to the host or hosts specified insecurity.ldap.servers.Note
For better performance, consider placing the LDAP groups used for MongoDB authorization into their own Organizational Unit (
OU).In the URL, you can use the following substitution tokens:
Substitution Token Description描述{USER}Substitutes the authenticated username, or the transformedusername if auserToDNMappingis specified.{PROVIDED_USER}Substitutes the supplied username, i.e. before either authentication or LDAP transformation.When constructing the query URL, ensure that the order of LDAP parameters respects RFC4516:
[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]If your query includes an attribute,
mongodassumes that the query retrieves a list of the DNs which this entity is a member of.If your query does not include an attribute,
mongodassumes the query retrieves all entities which the user is member of.For each LDAP DN returned by the query,
mongodassigns the authorized user a corresponding role on theadmindatabase. If a role on the on theadmindatabase exactly matches the DN,mongodgrants the user the roles and privileges assigned to that role. See thedb.createRole()method for more information on creating roles.Example示例This LDAP query returns any groups listed in the LDAP user object's
memberOfattribute."{USER}?memberOf?base"Your LDAP configuration may not include the
memberOfattribute as part of the user schema, may possess a different attribute for reporting group membership, or may not track group membership through attributes. Configure your query with respect to your own unique LDAP configuration.If unset,
mongodcannot authorize users using LDAP.Although you can modify the value of the
ldapAuthzQueryTemplateparameter on a runningmongodby using thesetParameterdatabase command, you can't enable or disable it during runtime. To enable this setting, you must configuresecurity.ldap.authz.queryTemplatein your configuration file during startup.
security.ldap.validateLDAPServerConfigType: boolean类型:布尔值Default:默认值:trueAvailable in MongoDB Enterprise
A flag that determines if the
mongodormongosinstance checks the availability of theLDAP server(s)as part of its startup:
setParameter Option选项
setParameterSet MongoDB parameter or parameters described in MongoDB Server Parameters for a Self-Managed Deployment
To set parameters in the YAML configuration file, use the following format:
setParameter:
<parameter1>: <value1>
<parameter2>: <value2>For example, to specify the
enableLocalhostAuthBypassin the configuration file:setParameter:
enableLocalhostAuthBypass: false
setParameter LDAP Options
setParameter.ldapUserCacheInvalidationIntervalType: int
Default:默认值:30For use with
mongodservers using LDAP Authorization on Self-Managed Deployments.The interval (in seconds)
mongodwaits between external user cache flushes. Aftermongodflushes the external user cache, MongoDB reacquires authorization data from the LDAP server the next time an LDAP-authorized user issues an operation.Increasing the value specified increases the amount of time
mongodand the LDAP server can be out of sync, but reduces the load on the LDAP server. Conversely, decreasing the value specified decreases the timemongodand the LDAP server can be out of sync while increasing the load on the LDAP server.
setParameter:
ldapUserCacheInvalidationInterval: <int>setParameter MongoDB Search Options
setParameter.searchIndexManagementHostAndPortType: string类型:字符串Default:默认值:""Search index management host address. This parameter specifies the hostname or IP address and port for the search index management server.
Note
This parameter must have the same value as
setParameter.mongotHost.
setParameter:
searchIndexManagementHostAndPort: <hostname|IP:port>
Example示例
setParameter:
searchIndexManagementHostAndPort: localhost:27028setParameter.skipAuthenticationToSearchIndexManagementServerType: boolean类型:布尔值Default:默认值:trueFlag that determines whether or not to skip authentication for
mongodfor server to index management server connections, even if authentication is enabled onmongod.Note
As a security best practice, we recommend setting this parameter to
false.
setParameter:
skipAuthenticationToSearchIndexManagementServer: <true|false>
setParameter.mongotHostType: string类型:字符串Default:默认值:""mongothost address. This parameter specifies the hostname or IP address and port for themongotserver.Note
This parameter must have the same value as
setParameter.searchIndexManagementHostAndPort.
setParameter:
mongotHost: <hostname|IP:port>
Example示例
setParameter:
mongotHost: localhost:27028setParameter.skipAuthenticationToMongotType: boolean类型:布尔值Default:默认值:falseSpecifies whether MongoDB skips authentication for
mongodtomongotconnections, even if authentication is enabled onmongod.Note
As a security best practice, we recommend leaving this parameter unset or setting it to
false.
setParameter:
skipAuthenticationToMongot: <true|false>
setParameter.useGrpcForSearchType: boolean类型:布尔值Default:默认值:falseSpecifies whether or not shards should communicate with
mongotusing gRPC.Note
You must set this parameter to
trueif you're usingmongot.
setParameter:
useGrpcForSearch: <true|false>
setParameter.searchTLSModeType: string类型:字符串Default:默认值:globalTLSSets the TLS mode for
mongodtomongotconnection. Setting theglobalTLSvalue uses the setting that you specified innet.tls.mode, while the other settings operate according to their usual behavior.You can use the following values for this parameter:
globalTLSdisabledallowTLSpreferTLSrequireTLS
setParameter:
searchTLSMode: <globalTLS|disabled|allowTLS|preferTLS|requireTLS>storage Options选项
Changed in version 6.1.在版本6.1中的更改。
MongoDB always enables journaling. As a result, MongoDB removes theMongoDB始终支持日志记录。因此,MongoDB删除了storage.journal.enabledoption and the corresponding--journaland--nojournalcommand-line options.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.dbPathType: string类型:字符串Default:
/data/dbon Linux and macOS\data\dbon Windows
The directory where the
mongodinstance stores its data.The
storage.dbPathsetting is available only formongod.Note
Configuration Files
The default
mongod.confconfiguration file included with package manager installations uses the following platform-specific default values forstorage.dbPath:Platform Package Manager Default storage.dbPathRHEL / CentOS and Amazon yum/var/lib/mongoSUSE zypper/var/lib/mongoUbuntu and Debian apt/var/lib/mongodbmacOS brew/usr/local/var/mongodbThe Linux package init scripts do not expect
storage.dbPathto change from the defaults. If you use the Linux packages and changestorage.dbPath, you must use your own init scripts and disable the built-in scripts.
storage.journal.commitIntervalMsType: number
Default:默认值:100The maximum amount of time in milliseconds that the
mongodprocess allows between journal operations. Values can range from 1 to 500 milliseconds. Lower values increase the durability of the journal, at the expense of disk performance.On WiredTiger, the default journal commit interval is 100 milliseconds. Additionally, a write that includes or implies
j:truecauses an immediate sync of the journal. For details or additional conditions that affect the frequency of the sync, see Journaling Process.The
storage.journal.commitIntervalMssetting is available only formongod.Not available for
mongodinstances that use the in-memory storage engine.
storage.directoryPerDBType: boolean类型:布尔值Default:默认值:falseWhen
true, MongoDB uses a separate directory to store data for each database. The directories are under thestorage.dbPathdirectory, and each subdirectory name corresponds to the database name.The
storage.directoryPerDBsetting is available only formongod.Not available for
mongodinstances that use the in-memory storage engine.Starting in MongoDB 5.0, dropping the final collection in a database (or dropping the database itself) when
storage.directoryPerDBis enabled deletes the newly empty subdirectory for that database.To change the
storage.directoryPerDBoption for existing deployments:For standalone instances:
- Use
mongodumpon the existingmongodinstance to generate a backup. - Stop the
mongodinstance. - Add the
storage.directoryPerDBvalue and configure a new data directory - Restart the
mongodinstance. - Use
mongorestoreto populate the new data directory.
- Use
For replica sets:
- Stop a secondary member.
- Add the
storage.directoryPerDBvalue and configure a new data directory to that secondary member. - Restart that secondary.
- Use initial sync to populate the new data directory.
- Update remaining secondaries in the same fashion.
- Step down the primary, and update the stepped-down member in the same fashion.
storage.syncPeriodSecsType: number
Default:默认值:60The amount of time that can pass before MongoDB flushes data to the data files.
Do not set this value on production systems. In almost every situation, you should use the default setting.
The
mongodprocess writes data very quickly to the journal and lazily to the data files.storage.syncPeriodSecshas no effect on Journaling, but ifstorage.syncPeriodSecsis set to0the journal eventually consumes all available disk space.The
storage.syncPeriodSecssetting is available only formongod.Not available for
mongodinstances that use the in-memory storage engine.To provide durable data, WiredTiger uses checkpoints. For more details, see Journaling and the WiredTiger Storage Engine.
storage.engineDefault:默认值:wiredTigerThe storage engine for the
mongoddatabase. Available values include:Value Description描述wiredTigerTo specify the WiredTiger Storage Engine. inMemoryTo specify the In-Memory Storage Engine for Self-Managed Deployments.
Available in MongoDB Enterprise only.
If you attempt to start a
mongodwith astorage.dbPaththat contains data files produced by a storage engine other than the one specified bystorage.engine,mongodrefuses to start.
storage.oplogMinRetentionHoursType: double
Specifies the minimum number of hours to preserve an oplog entry, where the decimal values represent the fractions of an hour. For example, a value of
1.5represents one hour and thirty minutes.The value must be greater than or equal to
0. A value of0indicates that themongodshould truncate the oplog starting with the oldest entries to maintain the configured maximum oplog size.Defaults to
0.A
mongodstarted withoplogMinRetentionHoursonly removes an oplog entry if:- The oplog has reached the maximum configured oplog size and
- The oplog entry is older than the configured number of hours based on the host system clock.
The
mongodhas the following behavior when configured with a minimum oplog retention period:- The oplog can grow without constraint so as to retain oplog entries for the configured number of hours. This may result in reduction or exhaustion of system disk space due to a combination of high write volume and large retention period.
- If the oplog grows beyond its maximum size, the
mongodmay continue to hold that disk space even if the oplog returns to its maximum size or is configured for a smaller maximum size. See Reducing Oplog Size Does Not Immediately Return Disk Space. - The
mongodcompares the system wall clock to an oplog entries creation wall clock time when enforcing oplog entry retention. Clock drift between cluster components may result in unexpected oplog retention behavior. See Clock Synchronization for more information on clock synchronization across cluster members.
To change the minimum oplog retention period after starting the
mongod, usereplSetResizeOplog.replSetResizeOplogenables you to resize the oplog dynamically without restarting themongodprocess. To persist the changes made usingreplSetResizeOplogthrough a restart, update the value ofoplogMinRetentionHours.
storage.wiredTiger Options选项
storage:
wiredTiger:
engineConfig:
cacheSizeGB: <number>
cacheSizePct: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
maxCacheOverflowFileSizeGB: <number>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
storage.wiredTiger.engineConfig.cacheSizeGBType: float
Defines the maximum size of the internal cache that WiredTiger uses for all data. The memory that an index build consumes (see
maxIndexBuildMemoryUsageMegabytes) is separate from the WiredTiger cache memory.Avoid increasing the WiredTiger internal cache size above its default value. If your use case requires to do so, you can use
storage.wiredTiger.engineConfig.cacheSizePctto specify a percentage of up to 80% of available memory. Values can range from0.25GB to10000GB.The default WiredTiger internal cache size is the larger of either:
- 50% of (RAM - 1 GB), or
- 256 MB.
For example, on a system with a total of 4GB of RAM the WiredTiger cache uses 1.5GB of RAM (
0.5 * (4 GB - 1 GB) = 1.5 GB). Conversely, on a system with a total of 1.25 GB of RAM WiredTiger allocates 256 MB to the WiredTiger cache because that is more than half of the total RAM minus one gigabyte (0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB).Note
In some instances, such as when running in a container, the database can have memory constraints that are lower than the total system memory. In such instances, this memory limit, rather than the total system memory, is used as the maximum RAM available.
To see the memory limit, see
hostInfo.system.memLimitMB.With WiredTiger, MongoDB utilizes both the WiredTiger internal cache and the filesystem cache.
With the filesystem cache, MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes.
Note
The
storage.wiredTiger.engineConfig.cacheSizeGBlimits the size of the WiredTiger internal cache. The operating system uses the available free memory for filesystem cache, which allows the compressed MongoDB data files to stay in memory. In addition, the operating system uses any free RAM to buffer file system blocks and file system cache.To accommodate the additional consumers of RAM, you may have to decrease WiredTiger internal cache size.
The default WiredTiger internal cache size value assumes that there is a single
mongodinstance per machine. If a single machine contains multiple MongoDB instances, decrease the setting to accommodate the othermongodinstances.If you run
mongodin a container (for example,lxc,cgroups, Docker, etc.) that does not have access to all of the RAM available in a system, you must setstorage.wiredTiger.engineConfig.cacheSizeGBto a value less than the amount of RAM available in the container. The exact amount depends on the other processes running in the container. SeememLimitMB.You can only provide one of either
storage.wiredTiger.engineConfig.cacheSizeGBorstorage.wiredTiger.engineConfig.cacheSizePct.
storage.wiredTiger.engineConfig.cacheSizePctType: float
Defines the maximum amount of memory to allocate for cache as a percentage of physical RAM. The memory that an index build consumes (see
maxIndexBuildMemoryUsageMegabytes) is separate from the WiredTiger cache memory.You can specify a percentage of up to 80% of available memory. Values range from
0.25GB to10000GB.The default WiredTiger internal cache size is the larger of either:
- 50% of (RAM - 1 GB), or
- 256 MB.
For example, on a system with a total of 4GB of RAM the WiredTiger cache uses 1.5GB of RAM (
0.5 * (4 GB - 1 GB) = 1.5 GB). Conversely, on a system with a total of 1.25 GB of RAM WiredTiger allocates 256 MB to the WiredTiger cache because that is more than half of the total RAM minus one gigabyte (0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB).Note
In some instances, such as when running in a container, the database can have memory constraints that are lower than the total system memory. In such instances, this memory limit, rather than the total system memory, is used as the maximum RAM available.
To see the memory limit, see
hostInfo.system.memLimitMB.With WiredTiger, MongoDB utilizes both the WiredTiger internal cache and the filesystem cache.
With the filesystem cache, MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes.
Note
The
storage.wiredTiger.engineConfig.cacheSizePctlimits the size of the WiredTiger internal cache. The operating system uses the available free memory for filesystem cache, which allows the compressed MongoDB data files to stay in memory. In addition, the operating system uses any free RAM to buffer file system blocks and file system cache.To accommodate the additional consumers of RAM, you may have to decrease WiredTiger internal cache size.
The default WiredTiger internal cache size value assumes that there is a single
mongodinstance per machine. If a single machine contains multiple MongoDB instances, decrease the setting to accommodate the othermongodinstances.If you run
mongodin a container (for example,lxc,cgroups, Docker, etc.) that does not have access to all of the RAM available in a system, you must setstorage.wiredTiger.engineConfig.cacheSizePctto a value less than the amount of RAM available in the container. The exact amount depends on the other processes running in the container. SeememLimitMB.You can only provide one of either
storage.wiredTiger.engineConfig.cacheSizePctorstorage.wiredTiger.engineConfig.cacheSizeGB.
storage.wiredTiger.engineConfig.journalCompressorDefault:默认值:snappySpecifies the type of compression to use to compress WiredTiger journal data.
Available compressors are:
storage.wiredTiger.engineConfig.directoryForIndexesType: boolean类型:布尔值Default:默认值:falseWhen
storage.wiredTiger.engineConfig.directoryForIndexesistrue,mongodstores indexes and collections in separate subdirectories under the data (i.e.storage.dbPath) directory. Specifically,mongodstores the indexes in a subdirectory namedindexand the collection data in a subdirectory namedcollection.By using a symbolic link, you can specify a different location for the indexes. Specifically, when
mongodinstance is not running, move theindexsubdirectory to the destination and create a symbolic link namedindexunder the data directory to the new destination.
storage.wiredTiger.engineConfig.zstdCompressionLevelType: integer类型:整数Default:默认值:6New in version 5.0.在版本5.0中新增。/p>Changed in version 8.2.在版本8.2中的更改。/p>Specifies the level of compression applied when using the zstd compressor.
Values can range from -7 to 22.
Positive values specify the compression level, where a higher value for
zstdCompressionLevelresults in a higher compression ratio at the cost of slower compression and decompression speeds.Negative values provide faster compression and decompression speeds at the cost of the compression ratio.
Specifying a value of
0uses zstd's internal default compression level of 3, which differs from the MongoDB default of 6.Only applicable when either
blockCompressororjournalCompressor(or both) are set tozstd.Important
When downgrading to an earlier version of MongoDB, ensure that the
storage.wiredTiger.engineConfig.zstdCompressionLevelsetting is configured to a range supported by that version. For example, MongoDB 8.0 supports a range of 1 to 22.
storage.wiredTiger.collectionConfig.blockCompressorDefault:默认值:snappySpecifies the default compression for collection data. You can override this on a per-collection basis when creating collections.
Available compressors are:
storage.wiredTiger.collectionConfig.blockCompressoraffects all collections created. If you change the value ofstorage.wiredTiger.collectionConfig.blockCompressoron an existing MongoDB deployment, all new collections uses the specified compressor. Existing collections continue to use the compressor specified when they were created, or the default compressor at that time.
storage.wiredTiger.indexConfig.prefixCompressionDefault:默认值:trueEnables or disables prefix compression for index data.
Specify
trueforstorage.wiredTiger.indexConfig.prefixCompressionto enable prefix compression for index data, orfalseto disable prefix compression for index data.The
storage.wiredTiger.indexConfig.prefixCompressionsetting affects all indexes created. If you change the value ofstorage.wiredTiger.indexConfig.prefixCompressionon an existing MongoDB deployment, all new indexes uses prefix compression. Existing indexes are not affected.
storage.inmemory Options选项
storage:
inMemory:
engineConfig:
inMemorySizeGB: <number>
storage.inMemory.engineConfig.inMemorySizeGBType: float
Default:默认值:50% of physical RAM less 1 GBValues can range from 256MB to 10TB and can be a float.
Maximum amount of memory to allocate for in-memory storage engine data, including indexes, oplog if the
mongodis part of replica set, replica set or sharded cluster metadata, etc.By default, the in-memory storage engine uses 50% of physical RAM minus 1 GB.
Note
Enterprise Feature
Available in MongoDB Enterprise only.
operationProfiling Options选项
operationProfiling:
mode: <string>
slowOpThresholdMs: <int>
slowOpSampleRate: <double>
filter: <string>
operationProfiling.modeType: string类型:字符串Default:默认值:offSpecifies which operations should be profiled. The following profiler levels are available:
Level Description描述offThe profiler is off and does not collect any data. This is the default profiler level. This level corresponds to profiler level 0. slowOpThe profiler collects data for operations that take longer than the value of slowms. This level corresponds to profiler level 1.allThe profiler collects data for all operations. This level corresponds to profiler level 2. Warning
Profiling can degrade performance and expose unencrypted query data in the system log. Carefully consider any performance and security implications before configuring and enabling the profiler on a production deployment.
See Profiler Overhead for more information on potential performance degradation.
operationProfiling.slowOpThresholdMsType: integer类型:整数Default:默认值:100The slow operation time threshold, in milliseconds. Operations that run for longer than this threshold are considered slow.
Slow operations are logged based on
workingMillis, which is the amount of time that MongoDB spends working on that operation. This means that factors such as waiting for locks and flow control do not affect whether an operation exceeds the slow operation threshold.When
logLevelis set to0, MongoDB records slow operations to the diagnostic log at a rate determined byslowOpSampleRate.At higher
logLevelsettings, all operations appear in the diagnostic log regardless of their latency with the following exception: the logging of slow oplog entry messages by the secondaries. The secondaries log only the slow oplog entries; increasing thelogLeveldoes not log all oplog entries.
operationProfiling.slowOpSampleRateType: double
Default:默认值:1.0The fraction of slow operations that should be profiled or logged.
operationProfiling.slowOpSampleRateaccepts values between 0 and 1, inclusive.The
slowOpSampleRatesetting is available formongodandmongos.
operationProfiling.filterType: string representation of a query document
A filter expression that controls which operations are profiled and logged.
When
filteris set,slowOpThresholdMsandslowOpSampleRateare not used for profiling and slow-query log lines.When you set a profile filter in the configuration file, the filter applies to all databases in the deployment. To set a profile filter for a specific database, use the
db.setProfilingLevel()method.The option takes a string representation of a query document of the form:
{ <field1>: <expression1>, ... }The
<field>can be any field in the profiler output. The<expression>is a query condition expression.To specify a profiling filter in a configuration file, you must:
- Enclose the filter document in single quotes to pass the document as a string.
- Use the YAML format of the configuration file.
For example, the following
filterconfigures the profiler to logqueryoperations that take longer than 2 seconds:operationProfiling:
mode: all
filter: '{ op: "query", millis: { $gt: 2000 } }'
replication Options选项
replication:
oplogSizeMB: <int>
replSetName: <string>
enableMajorityReadConcern: <boolean>
replication.oplogSizeMBType: integer类型:整数The maximum size in megabytes for the oplog. The
oplogSizeMBsetting configures the uncompressed size of the oplog, not the size on disk.Note
The oplog can grow past its configured size limit to avoid deleting the
majority commit point.By default, the
mongodprocess creates an oplog based on the maximum amount of space available. For 64-bit systems, the oplog is typically 5% of available disk space.Once the
mongodhas created the oplog for the first time, changing thereplication.oplogSizeMBoption does not affect the size of the oplog. To change the maximum oplog size after starting themongod, usereplSetResizeOplog.replSetResizeOplogenables you to resize the oplog dynamically without restarting themongodprocess. To persist the changes made usingreplSetResizeOplogthrough a restart, update the value ofoplogSizeMB.See Oplog Size for more information.
The
replication.oplogSizeMBsetting is available only formongod.
replication.replSetNameType: string类型:字符串The name of the replica set that the
mongodis part of. All hosts in the replica set must have the same set name.If your application connects to more than one replica set, each set must have a distinct name. Some drivers group replica set connections by replica set name.
The
replication.replSetNamesetting is available only formongod.replication.replSetNamecannot be used in conjunction withstorage.indexBuildRetry.
replication.enableMajorityReadConcernDefault:默认值:trueConfigures support for
"majority"read concern.Starting in MongoDB 5.0,
enableMajorityReadConcerncannot be changed and is always set totrue. Attempting to start a storage engine that does not support majority read concern with the--enableMajorityReadConcernoption fails and return an error message.In earlier versions of MongoDB,
enableMajorityReadConcernwas configurable.Warning
If you are using a three-member primary-secondary-arbiter (PSA) architecture, consider the following:
- The write concern
"majority"can cause performance issues if a secondary is unavailable or lagging. For advice on how to mitigate these issues, see Mitigate Performance Issues with a Self-Managed PSA Replica Set. - If you are using a global default
"majority"and the write concern is less than the size of the majority, your queries may return stale (not fully replicated) data.
- The write concern
sharding Options选项
sharding:
clusterRole: <string>
sharding.clusterRoleType: string类型:字符串The role that the
mongodinstance has in the sharded cluster. Set this setting to one of the following:Value Description描述configsvrStart this instance as a config server. The instance starts on port
27019by default.When you configure a MongoDB instance as clusterRole
configsvryou must also specify areplSetName.shardsvrStart this instance as a shard. The instance starts on port
27018by default.When you configure a MongoDB instance as a a clusterRole
shardsvryou must also specify areplSetName.Note
Setting
sharding.clusterRolerequires themongodinstance to be running with replication. To deploy the instance as a replica set member, use thereplSetNamesetting and specify the name of the replica set.The
sharding.clusterRolesetting is available only formongod.
sharding.archiveMovedChunksType: boolean类型:布尔值Default:默认值:false.During chunk migration, a shard does not save documents migrated from the shard.
auditLog Options选项
Note
Available only in MongoDB Enterprise and MongoDB Atlas.
auditLog:
destination: <string>
format: <string>
path: <string>
filter: <string>
schema: <string>
auditLog.auditEncryptionKeyIdentifierType: string类型:字符串New in version 6.0.在版本6.0中新增。Specifies the unique identifier of the Key Management Interoperability Protocol (KMIP) key for audit log encryption.
You cannot use
auditLog.auditEncryptionKeyIdentifierandauditLog.localAuditKeyFiletogether.Note
Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.
auditLog.compressionModeType: string类型:字符串New in version 5.3.在版本5.3中新增。Specifies the compression mode for audit log encryption. You must also enable audit log encryption using either
auditLog.auditEncryptionKeyIdentifierorauditLog.localAuditKeyFile.auditLog.compressionModecan be set to one of these values:Value Description描述zstdUse the zstd algorithm to compress the audit log. none(default)Do not compress the audit log. Note
Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.
auditLog.destinationType: string类型:字符串When set,
auditLog.destinationenables auditing and specifies wheremongosormongodsends all audit events.auditLog.destinationcan have one of the following values:Value Description描述syslogOutput the audit events to syslog in JSON format. Not available on Windows. Audit messages have a syslog severity level of
infoand a facility level ofuser.The syslog message limit can result in the truncation of audit messages. The auditing system neither detects the truncation nor errors upon its occurrence.
consoleOutput the audit events to stdoutin JSON format.fileOutput the audit events to the file specified in auditLog.pathin the format specified inauditLog.format.Note
Available only in MongoDB Enterprise and MongoDB Atlas.
auditLog.filterType: string representation of a document
The filter to limit the types of operations the audit system records. The option takes a string representation of a query document of the form:
{ <field1>: <expression1>, ... }The
<field>can be any field in the audit message, including fields returned in the param document. The<expression>is a query condition expression.To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
Note
Available only in MongoDB Enterprise and MongoDB Atlas.
auditLog.formatType: string类型:字符串The format of the output file for auditing if
destinationisfile. TheauditLog.formatoption can have one of the following values:Value Description描述JSONOutput the audit events in JSON format to the file specified in auditLog.path.BSONOutput the audit events in BSON binary format to the file specified in auditLog.path.Printing audit events to a file in JSON format degrades server performance more than printing to a file in BSON format.
Note
Available only in MongoDB Enterprise and MongoDB Atlas.
auditLog.localAuditKeyFileType: string类型:字符串New in version 5.3.在版本5.3中新增。Specifies the path and file name for a local audit key file for audit log encryption.
Note
Only use
auditLog.localAuditKeyFilefor testing because the key is not secured. To secure the key, useauditLog.auditEncryptionKeyIdentifierand an external Key Management Interoperability Protocol (KMIP) server.You cannot use
auditLog.localAuditKeyFileandauditLog.auditEncryptionKeyIdentifiertogether.Note
Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.
auditLog.pathType: string类型:字符串The output file for auditing if
destinationhas value offile. TheauditLog.pathoption can take either a full path name or a relative path name.
auditLog.runtimeConfigurationType: boolean类型:布尔值Specifies if a node allows runtime configuration of audit filters and the auditAuthorizationSuccess variable. If
truethe node can take part in Online Audit Filter Management.
auditLog.schemaType: string类型:字符串Default:默认值:mongoNew in version 8.0.在版本8.0中新增。Specifies the format used for audit logs. You can specify one of the following values for
auditLog.schema:Value Description描述mongoLogs are written in a format designed by MongoDB.
For example log messages, see mongo Schema Audit Messages.
OCSFLogs are written in OCSF format. This option provides logs in a standardized format compatible with log processors.
For example log messages, see OCSF Schema Audit Messages.
mongot Options选项
Use the following options to configure mongot with mongod in Public Preview.
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.replicaSetType: Object
Necessity: Required
Replication connections to
mongodformongot.
syncSource.replicaSet.hostAndPortType: String or Array of Strings
Necessity: Required
One or more host and port specifiers to use to construct the seed list in
mongodconnection string. Regardless of the number of host and port specifiers, the connection string is in the replica set mode, not the standalone mode.
syncSource.replicaSet.usernameType: String
Necessity: Required
Username to use to authenticate
mongotwithmongod. The specified user must have thesearchCoordinatorrole.
syncSource.replicaSet.passwordFileType: String
Necessity: Required
Path to the file that contains the password that
mongotmust use to authenticate withmongod.
syncSource.replicaSet.authSourceType: String
Necessity: Optional
Name of the database associated with the
mongotauthentication credentials. If unspecified,authSourcedefaults toadmin.
syncSource.replicaSet.tlsType: Boolean
Necessity: Optional
Default:默认值:falseDirect passthrough to the TLS connection string option. If omitted, defaults to
false.To use
mongotwith TLS, themongodnet.tls.allowConnectionsWithoutCertificatessetting must betrue.mongodmust be configured to allow TLS connections and to allow connections without certificates. Clients can connect with mTLS, though this cannot be required.mongotuses a Java MongoClient to connect. TheMongoClientuses a username and password combination to authenticate. It can connect using TLS, but it will not send a certificate, meaning it won’t use mTLS.
syncSource.replicaSet.readPreferenceType: String
Necessity: Optional
Default:默认值:secondaryPreferredDirect passthrough to the readPreference connection string option. If omitted, defaults to
secondaryPreferredfor replica set.
syncSource.routerType: Object
Necessity: Conditional
Replication connections to
mongosformongot. If omitted,mongotassumes that it is running in a non-sharded environment. Ifmongotis running in a sharded environment and you don't define this setting, the resulting behavior will be undefined. Therefore, this is required for sharded clusters.
syncSource.router.hostAndPortType: String or Array of Strings
Necessity: Required
One or more host and port specifiers to use to construct the seed list in
mongosconnection string. Regardless of the number of host and port specifiers, the connection string is in the replica set mode, not the standalone mode.
syncSource.router.usernameType: String
Necessity: Required
Username to use to authenticate
mongotwithmongos. The specified user must have thesearchCoordinatorrole.
syncSource.router.passwordFileType: String
Necessity: Required
Path to the file that contains the password that
mongotmust use to authenticate withmongos.
syncSource.router.tlsType: Boolean
Necessity: Optional
Default:默认值:falseDirect passthrough to the TLS connection string option. If omitted, defaults to
false.
syncSource.router.readPreferenceType: String
Necessity: Optional
Direct passthrough to the readPreference connection string option.
syncSource.caFileType: String
Necessity: Optional
Specifies the Certificate Authority (CA) file that contains trusted certificates for verifying the certificate presented to the endpoint from
mongod. The file must contain an X.509 certificate collection in PEM format. If you specify this option,mongotuses this file instead of the system keystore.
serverType: Object
Necessity: Required
Settings for the
mongotquery servers.
server.grpcType: Object
Necessity: Optional
Listen server settings for gRPC communication between the
mongotandmongodprocesses. If omitted, MongoDB doesn't start the gRPC listen server.
server.grpc.addressType: String
Necessity: Required
Address on which the gRPC listen server will listen. Address must be in the following format:
<host>:<port>Warning
Depending on your system topology, it may be necessary to bind the
mongotquery server to an interface accessible from your MongoDb Cluster. While binding to the0.0.0.0IP address is permitted, it exposes the server to all public networks and carries the risk of unauthorized access.To enhance security, consider restricting
server.grpc.addressto specific interfaces that are controlled and protected at the network layer such aslocalhostor other trusted internal addresses.
server.grpc.tlsType: Object
Necessity: Optional
TLS configuration options for the gRPC listen server.
Note
For more information on
tlsconfiguration limitations, see mongot TLS limitations.
server.grpc.tls.modeType: String
Necessity: Required
The TLS mode for the gRPC server. Must be either
"TLS","mTLS", or"disabled".
server.grpc.tls.certificateKeyFileType: String
Necessity: Conditional
Required when
tls.modeis"TLS"or"mTLS". Specifies the PEM file that contains a valid X.509 certificate formongotusing a PKCS#8 private key.mongodvalidates this certificate using a Certificate Authority (CA) file that you specify with themongod--tlsCAFileoption.
server.grpc.tls.caFileType: String
Necessity: Conditional
Required when
tls.modeis"mTLS". Specifies the Certificate Authority (CA) file that contains trusted certificates for verifying the certificate presented to the endpoint frommongod. The file must contain an X.509 certificate collection in PEM format.
storage.dataPathType: String
Necessity: Required
Path that
mongotmust use as a base path for storing index data, and the local index catalog.
metricsType: Object
Necessity: Optional
Settings for the
mongotPrometheus metrics endpoint listener.
metrics.enabledType: Boolean
Necessity: Required
Flag that enables the Prometheus metric endpoint. If
false, MongoDB parses and validates the syntax of the other configuration options in the metrics block, but doesn't start metrics listener.
metrics.addressType: String
Necessity: Optional
Socket address (IPv4/6) on which the Prometheus
/metricsendpoint is exposed. Address must be in the following format:<host>:<port>If omitted, defaults to the following address:
localhost:9946
healthCheckType: Object
Necessity: Optional
Setting for the
mongothealth check endpoint. You can't disable the health check endpoint, but you can configure its listen address.
healthCheck.addressType: String
Necessity: Optional
Address on which the health check listen server listens. Address must be in the following format:
<host>:<port>If omitted, defaults to the following address:
localhost:8080
loggingType: Object
Necessity: Optional
Options for logging.
logging.verbosityType: String
Necessity: Optional
Verbosity of logging. Value must be a valid Logback log level. If omitted, defaults to
INFO.
logging.logPathType: String
Necessity: Optional
Path to a file where logs must be written using a Logback file appender. If omitted, MongoDB doesn't create or configure log file appender.
mongos -only Options
replication:
localPingThresholdMs: <int>
sharding:
configDB: <string>
replication.localPingThresholdMsType: integer类型:整数Default:默认值:15The ping time, in milliseconds, that
mongosuses to determine which secondary replica set members to pass read operations from clients. The default value of15corresponds to the default value in all of the client drivers.When
mongosreceives a request that permits reads to secondary members, themongos:- Finds the member of the set with the lowest ping time.
Constructs a list of replica set members that is within a ping time of 15 milliseconds of the nearest suitable member of the set.
If you specify a value for the
replication.localPingThresholdMsoption,mongosconstruct the list of replica members that are within the latency allowed by this value.- Selects a member to read from at random from this list.
The ping time used for a member compared by the
replication.localPingThresholdMssetting is a moving average of recent ping times, calculated at most every 10 seconds. As a result, some queries may reach members above the threshold until themongosrecalculates the average.See the Read Preference for Replica Sets section of the read preference documentation for more information.
sharding.configDBType: string类型:字符串The configuration servers for the sharded cluster.
Config servers for sharded clusters are deployed as a replica set. The replica set config servers must run the WiredTiger storage engine.
Specify the config server replica set name and the hostname and port of at least one of the members of the config server replica set.
sharding:
configDB: <configReplSetName>/cfg1.example.net:27019, cfg2.example.net:27019,...The
mongosinstances for the sharded cluster must specify the same config server replica set name but can specify hostname and port of different members of the replica set.
Windows Service Options
processManagement:
windowsService:
serviceName: <string>
displayName: <string>
description: <string>
serviceUser: <string>
servicePassword: <string>
processManagement.windowsService.serviceNameType: string类型:字符串Default:默认值:MongoDBThe service name of
mongosormongodwhen running as a Windows Service. Use this name with thenet start <name>andnet stop <name>operations.You must use
processManagement.windowsService.serviceNamein conjunction with either the--installor--removeoption.
processManagement.windowsService.displayNameType: string类型:字符串Default:默认值:MongoDBThe name listed for MongoDB on the Services administrative application.
processManagement.windowsService.descriptionType: string类型:字符串Default:默认值:MongoDB ServerRun
mongosormongodservice description.You must use
processManagement.windowsService.descriptionin conjunction with the--installoption.For descriptions that contain spaces, you must enclose the description in quotes.
processManagement.windowsService.serviceUserType: string类型:字符串The
mongosormongodservice in the context of a certain user. This user must have "Log on as a service" privileges.You must use
processManagement.windowsService.serviceUserin conjunction with the--installoption.
processManagement.windowsService.servicePasswordType: string类型:字符串The password for
<user>formongosormongodwhen running with theprocessManagement.windowsService.serviceUseroption.You must use
processManagement.windowsService.servicePasswordin conjunction with the--installoption.
Removed MMAPv1 Options
MongoDB removed the deprecated MMAPv1 storage engine and the MMAPv1-specific configuration options:
| Removed Configuration File Setting | Removed Command-line Option |
|---|---|
storage.mmapv1.journal.commitIntervalMs | |
storage.mmapv1.journal.debugFlags | mongod --journalOptions |
storage.mmapv1.nsSize | mongod --nssize |
storage.mmapv1.preallocDataFiles | mongod --noprealloc |
storage.mmapv1.quota.enforced | mongod --quota |
storage.mmapv1.quota.maxFilesPerDB | mongod --quotaFiles |
storage.mmapv1.smallFiles | mongod --smallfiles |
storage.repairPath | mongod --repairpath |
replication.secondaryIndexPrefetch | mongod --replIndexPrefetch |
For earlier versions of MongoDB, refer to the legacy documentation.