配置文件选项
在本页面
配置文件
文件格式
使用配置文件
核心选项
systemLog 选件
processManagement 选件
cloud 选件
net 选件
security 选件
setParameter 选项
storage 选件
operationProfiling 选件
replication 选件
sharding 选件
auditLog 选件
snmp 选件
mongos仅选项
Windows服务选项
删除了MMAPv1选项
下一页描述了MongoDB 4.2中可用的配置选项。有关其他版本的MongoDB的配置文件选项,请参阅《 MongoDB手册》的相应版本。
配置文件¶
您可以在启动时使用配置文件进行配置mongod和mongos实例。配置文件包含与mongod和
mongos命令行选项等效的设置。请参阅配置文件设置和命令行选项映射。
使用配置文件使管理mongod和
mongos选项更加容易,尤其是对于大规模部署而言。您还可以在配置文件中添加注释,以解释服务器的设置。
默认配置文件
在Linux上,/etc/mongod.conf使用程序包管理器安装MongoDB时会包含默认配置文件。
在Windows上,
安装过程中包括默认配置文件。
在macOS上,/usr/local/etc/mongod.conf从MongoDB的官方Homebrew分接头安装时会包含一个默认配置文件。
文件格式¶
MongoDB配置文件使用YAML格式
[1]。
以下样本配置文件包含一些mongod
您可以适应本地配置的设置:
注意
YAML不支持使用制表符进行缩进:请使用空格。
复制
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port: 27017
setParameter:
enableLocalhostAuthBypass: false
...
包括在官方的MongoDB包的Linux软件包init脚本依赖于特定的值systemLog.path,storage.dbPath和
processManagement.fork。如果您在默认配置文件中修改这些设置,则mongod可能无法启动。
[1]YAML是JSON的超集。
外部来源的价值¶
4.2版中的新增功能: MongoDB支持在配置文件中使用
扩展指令来加载外部来源的值。扩展指令可以加载特定配置文件选项的 值
或加载整个配置文件。
可以使用以下扩展指令:
扩充指令
描述
__rest
允许用户将REST端点指定为配置文件选项或完整配置文件的外部源。
如果配置文件包含__rest
扩展,则在Linux / macOS上,对配置文件的读取访问权限必须仅限于运行mongod/ mongos
进程的用户。
__exec
允许用户将shell或终端命令指定为配置文件选项或完整配置文件的外部源。
如果配置文件包括__exec
扩展名,则在Linux / macOS上,对配置文件的写访问权限必须仅限于运行mongod/ mongos进程的用户
。
有关完整的文档,请参阅外部源配置文件值。
使用配置文件¶
要配置mongod或mongos使用配置文件,请使用--config或下的
-f选项指定配置文件,如以下示例所示:
例如,以下用途:mongod --config
复制
mongod --config /etc/mongod.conf
mongos --config /etc/mongos.conf
您还可以使用-f别名来指定配置文件,如下所示:
复制
mongod -f /etc/mongod.conf
mongos -f /etc/mongos.conf
如果您是从软件包安装的,并且已经使用系统的init脚本启动了MongoDB ,那么您已经在使用配置文件。
扩展指令和--configExpand¶
如果
在配置文件中使用扩展指令,则--configExpand在启动mongod或时必须包含该
选项mongos。例如:
复制
mongod --config /etc/mongod.conf --configExpand "rest,exec"
mongos --config /etc/mongos.conf --configExpand "rest,exec"
如果配置文件包含扩展指令,而您未在
选项中指定该指令的情况下启动了mongod/ ,则/ 无法启动。mongos--configExpandmongodmongos
有关完整的文档,请参阅外部源配置文件值。
核心选项¶
systemLog选项¶
复制
systemLog:
verbosity:
quiet:
traceAllExceptions:
syslogFacility:
path:
logAppend:
logRotate:
destination:
timeStampFormat:
component:
accessControl:
verbosity:
command:
verbosity:
# COMMENT additional component verbosity settings omitted for brevity
systemLog.verbosity¶
类型:整数
默认值:0
默认的日志信息
冗长级别的组件。详细程度决定了MongoDB输出的Informational和Debug消息的数量。[2]
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
要对命名组件使用不同的详细级别,请使用组件的详细设置。例如,使用
systemLog.component.accessControl.verbosity来专门为ACCESS组件设置详细级别。
请参阅有关systemLog.component.
有关设置日志详细级别的各种方法,请参阅“
配置日志详细级别”。
[2]从4.2版开始,MongoDB在日志消息中包括Debug冗长级别(1-5)。例如,如果详细级别为2,则MongoDB logs D2。在以前的版本中,MongoDB日志消息仅为D调试级别指定。
systemLog.quiet¶
类型:布尔值
以尝试限制输出量的方式运行mongos或mongod在安静模式下运行。
systemLog.quiet是不建议用于生产系统,因为它可以使在特定的连接变得更加困难跟踪问题。
systemLog.traceAllExceptions¶
类型:布尔值
打印详细信息以进行调试。用于与支持相关的故障排除的其他日志记录。
systemLog.syslogFacility¶
类型:字符串
默认值:用户
将消息记录到syslog时使用的工具级别。操作系统的syslog实现必须支持您指定的值。要使用此选项,您必须设置systemLog.destination为syslog。
systemLog.path¶
类型:字符串
mongod或mongos应将所有诊断日志记录信息发送到的日志文件的路径,而不是标准输出或主机的
syslog。MongoDB在指定路径创建日志文件。
Linux软件包的初始化脚本不希望systemLog.path更改默认值。如果您使用Linux软件包并进行更改systemLog.path,则必须使用自己的初始化脚本并禁用内置脚本。
systemLog.logAppend¶
类型:布尔值
默认值:false
当true,mongos或mongod追加新的条目到现有的日志文件时,结束mongos或mongod
实例重新启动。如果没有此选项,mongod将备份现有日志并创建一个新文件。
systemLog.logRotate¶
类型:字符串
默认值:重命名
logRotate命令的行为。指定rename或reopen:
rename 重命名日志文件。
reopen按照典型的Linux / Unix日志轮换行为,关闭并重新打开日志文件。使用reopen使用的Linux / Unix logrotate的工具,以避免日志丢失时。
如果指定reopen,则还必须设置systemLog.logAppend为true。
systemLog.destination¶
类型:字符串
MongoDB将所有日志输出发送到的目标。指定
file或syslog。如果指定file,则还必须指定
systemLog.path。
如果未指定systemLog.destination,则MongoDB将所有日志输出发送到标准输出。
警告
在syslog当它将消息记录,还不时的MongoDB发出消息后台生成时间戳。这会导致误导日志条目的时间戳,尤其是在系统负载沉重的情况下。我们建议file对生产系统使用该选件,以确保准确的时间戳。
systemLog.timeStampFormat¶
类型:字符串
缺省值:iso8601-local
日志消息中时间戳的时间格式。指定以下值之一:
值
描述
ctime
将时间戳显示为。Wed Dec 31
18:17:54.811
iso8601-utc
以国际标准时间(UTC)以ISO-8601格式显示时间戳。例如,对于时代开始时的纽约:1970-01-01T00:00:00.000Z
iso8601-local
以ISO-8601格式显示本地时间的时间戳。例如,对于时代开始时的纽约:
1969-12-31T19:00:00.000-0500
systemLog.component选项¶
复制
systemLog:
component:
accessControl:
verbosity:
command:
verbosity:
# COMMENT some component verbosity settings omitted for brevity
replication:
verbosity:
election:
verbosity:
heartbeats:
verbosity:
initialSync:
verbosity:
rollback:
verbosity:
storage:
verbosity:
journal:
verbosity:
recovery:
verbosity:
write:
verbosity:
注意
从4.2版开始,MongoDB在日志消息中包括Debug冗长级别(1-5)。例如,如果详细级别为2,则MongoDB logs D2。在以前的版本中,MongoDB日志消息仅为D调试级别指定。
systemLog.component.accessControl.verbosity¶
类型:整数
默认值:0
与访问控制相关的组件的日志消息详细级别。查看ACCESS组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.command.verbosity¶
类型:整数
默认值:0
与命令相关的组件的日志消息详细级别。查看COMMAND组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.control.verbosity¶
类型:整数
默认值:0
与控制操作有关的组件的日志消息详细级别。查看CONTROL组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.ftdc.verbosity¶
类型:整数
默认值:0
3.2版中的新功能。
与诊断数据收集操作相关的组件的日志消息详细级别。查看FTDC组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.geo.verbosity¶
类型:整数
默认值:0
与地理空间解析操作有关的组件的日志消息详细级别。查看GEO组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.index.verbosity¶
类型:整数
默认值:0
与索引操作相关的组件的日志消息详细级别。查看INDEX组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.network.verbosity¶
类型:整数
默认值:0
与联网操作相关的组件的日志消息详细级别。查看NETWORK组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.query.verbosity¶
类型:整数
默认值:0
与查询操作相关的组件的日志消息详细级别。查看QUERY组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.replication.verbosity¶
类型:整数
默认值:0
与复制相关的组件的日志消息详细级别。查看REPL组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.replication.election.verbosity¶
类型:整数
默认值:0
4.2版中的新功能。
与选举相关的组件的日志消息详细级别。查看ELECTION组件。
如果systemLog.component.replication.election.verbosity未设置,则
systemLog.component.replication.verbosity级别也适用于选择组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.replication.heartbeats.verbosity¶
类型:整数
默认值:0
3.6版的新功能。
与心跳相关的组件的日志消息详细级别。查看REPL_HB组件。
如果systemLog.component.replication.heartbeats.verbosity未设置,则
systemLog.component.replication.verbosity级别也适用于心跳组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.replication.initialSync.verbosity¶
类型:整数
默认值:0
4.2版中的新功能。
与initialSync相关的组件的日志消息详细级别。查看INITSYNC组件。
如果systemLog.component.replication.initialSync.verbosity未设置,则
systemLog.component.replication.verbosity级别也适用于initialSync组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.replication.rollback.verbosity¶
类型:整数
默认值:0
3.6版的新功能。
与回滚相关的组件的日志消息详细级别。查看ROLLBACK组件。
如果systemLog.component.replication.rollback.verbosity未设置,则
systemLog.component.replication.verbosity级别也适用于回滚组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.sharding.verbosity¶
类型:整数
默认值:0
与分片相关的组件的日志消息详细级别。查看SHARDING组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.storage.verbosity¶
类型:整数
默认值:0
与存储相关的组件的日志消息详细级别。查看STORAGE组件。
如果systemLog.component.storage.journal.verbosity未设置,则
systemLog.component.storage.verbosity级别也适用于日记组件。
详细程度的范围为0到5:
0是MongoDB的默认日志级别,包括
信息性消息。
1到5增加详细级别,以包括
调试消息。
systemLog.component.storage.journal.verbosity¶
类型:整数
默认值:0
与日记相关的组件的日志消息详细级别。查看JOURNAL组件。
如果systemLog.component.storage.journal.verbosity未设置,则日记组件与父存储组件具有相同的详细级别:即,
systemLog.component.storage.verbosity如果已设置,则为默认级别。
详细程度的范围为0到5:
0是MongoDB的默认日志详细级别,包括
Informational messag