系统日志相关配置
systemLog:
# 默认的日志信息 冗长级别的组件。详细程度决定了MongoDB输出的Informational和Debug消息的数量
verbosity: <int>
#以尝试限制输出量的方式运行mongos或mongod在安静模式下运行
quiet: <boolean>
#打印详细信息以进行调试
traceAllExceptions: <boolean>
#将消息记录到syslog时使用的工具级别
syslogFacility: <string>
#将所有诊断日志记录信息发送到的日志文件的路径
path: <string>
#将新条目追加到现有日志文件的末尾。如果没有此选项,将备份现有日志并创建一个新文件
logAppend: <boolean>
# logRotate命令的行为。指定rename或reopen。 rename:重命名日志文件 reopen:按照典型的Linux / Unix日志轮换行为,关闭并重新打开日志文件
logRotate: <string>
#MongoDB将所有日志输出发送到的目标。指定 file或syslog
destination: <string>
# 日志消息中时间戳的时间格式。 iso8601-utc:以世界标准时间(UTC)以ISO-8601格式显示时间戳 iso8601-local:以ISO-8601格式显示本地时间的时间戳
timeStampFormat: <string>
component:
accessControl:
#与访问控制有关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
command:
#与命令相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
control:
#与控制操作相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
ftdc:
#与诊断数据收集操作相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
geo:
#与地理空间解析操作有关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
index:
#与索引操作相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
network:
#与联网操作相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
query:
#与查询操作相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
replication:
#与复制相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
election:
#与选举相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
heartbeats:
#与心跳相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
initialSync:
#与initialSync相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
rollback:
#与回滚相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
sharding:
#与分片相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
storage:
#与存储相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
journal:
#与日记相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
recovery:
#与恢复相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
transaction:
#与事务相关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
write:
#与写操作有关的组件的日志消息详细级别 范围从0到5:0是MongoDB的默认日志级别
verbosity: <int>
进程相关配置
processManagement:
# 启用在后台运行mongos或mongod进程的守护程序模式
fork: <boolean>
# 指定用于存储mongos或mongod 进程的进程ID(PID)的文件位置
pidFilePath: <string>
# 加载时区数据库的完整路径。如果未提供此选项,则MongoDB将使用其内置的时区数据库
timeZoneInfo: <string>
MongoDB Cloud 相关配置
cloud:
monitoring:
free:
#启用或禁用免费的MongoDB Cloud监视 runtime:默认。您可以在运行时启用或禁用免费监视 on: 在启动时启用免费监视;即注册免费监视 off:不管您先前是否注册了免费监视,都在启动时禁用免费监视
state: <string>
#用于描述环境上下文的可选标记。该标签可以在启动时作为免费的MongoDB Cloud监视注册的一部分发送
tags: <string>
网络相关配置
net:
#MongoDB实例在其上侦听客户端连接的TCP端口 默认值:27017 (如果不是分片成员或配置服务器成员)或mongos实例 27018:如果mongod是分片成员 27019:如果mongod是配置服务器成员
port: <int>
#该主机名和/或IP地址和/或完整的Unix域套接字的路径上mongos还是mongod应该监听客户端连接
bindIp: <string>
#如果为true,则mongosormongod实例绑定到所有IPv4地址(即0.0.0.0)。如果mongos或mongod以开头 net.ipv6 : true,则net.bindIpAll还绑定到所有IPv6地址(即::)
bindIpAll: <boolean>
#mongos或mongod将接受的最大同时连接数。如果此设置高于操作系统的配置的最大连接跟踪阈值,则该设置无效 默认值:65536
maxIncomingConnections: <int>
#如果为true,则mongod或mongos实例会在收到客户端后验证来自客户端的所有请求,以防止客户端将格式错误或无效的BSON插入MongoDB数据库中
wireObjectCheck: <boolean>
#设置net.ipv6为true启用IPv6支持
ipv6: <boolean>
unixDomainSocket:
#在UNIX域套接字上启用或禁用侦听
enabled: <boolean>
#UNIX套接字的路径
pathPrefix: <string>
#设置UNIX域套接字文件的权限 默认值:0700
filePermissions: <int>
tls:
# 指定证书属性,以便从操作系统的证书存储中选择匹配的证书以用于TLS/SSL
certificateSelector: <string>
# 指定一个证书属性,以从操作系统的安全证书存储区中选择一个匹配的证书,以用于 内部x.509成员身份验证
clusterCertificateSelector: <string>
# 启用用于所有网络连接的TLS disabled:服务器不使用TLS allowTLS:服务器之间的连接不使用TLS。对于传入连接,服务器同时接受TLS和非TLS preferTLS:服务器之间的连接使用TLS。对于传入连接,服务器同时接受TLS和非TLS。 requireTLS:服务器仅使用并接受TLS加密的连接。
mode: <string>
#从macOS或Windows上的MongoDB 4.0开始,您可以使用该 net.tls.certificateSelector设置从操作系统的安全证书存储而不是PEM密钥文件中指定证书。certificateKeyFile并且 net.tls.certificateSelector是互斥的。您只能指定一个
certificateKeyFile: <string>
#用于解密证书密钥文件(即certificateKeyFile)的密码
certificateKeyFilePassword: <string>
# 从macOS或Windows上的MongoDB 4.0开始,您可以使用该 net.tls.clusterCertificateSelector选项从操作系统的安全证书存储而不是PEM密钥文件中指定证书。net.tls.clusterFile和 net.tls.clusterCertificateSelector选项是互斥的
clusterFile: <string>
# 用于解密用指定的x.509证书密钥文件的密码--sslClusterFile
clusterPassword: <string>
#包含来自证书颁发机构的根证书链的.pem文件。.pem使用相对或绝对路径指定文件的文件名
CAFile: <string>
# 包含来自证书颁发机构的根证书链的.pem文件,该证书用于验证建立连接的客户端提供的证书。.pem使用相对或绝对路径指定文件的文件名
clusterCAFile: <string>
#.pem包含证书吊销列表的文件。.pem使用相对或绝对路径指定文件的文件名
CRLFile: <string>
#对于不显示证书mongos或mongod在建立连接时绕过TLS / SSL证书验证的客户端
allowConnectionsWithoutCertificates: <boolean>
#对群集中其他服务器上的TLS证书启用或禁用验证检查,并允许使用无效证书进行连接
allowInvalidCertificates: <boolean>
#如果net.tls.allowInvalidHostnames为true,则MongoDB禁用TLS证书中的主机名验证,mongod如果其证书的主机名与指定的主机名不匹配,则允许连接到MongoDB实例
allowInvalidHostnames: <boolean>
# 防止运行TLS的MongoDB服务器接受使用一个或多个特定协议的传入连接。要指定多个协议,请使用逗号分隔的协议列表
disabledProtocols: <string>
# 启用或禁用使用TLS库为的FIPS模式mongos或mongod
FIPSMode: <boolean>
compression:
#指定用于此实例mongod或mongos实例与以下对象之间的通信的默认压缩器
compressors: <string>
# 确定线程和执行模型mongos或mongod用于执行客户端请求 synchronous: 该mongos或mongod使用同步网络和管理上的每个连接其网络的线程池。 adaptive:mongos或mongod用途,新实验性异步组网方式与管理关于每个请求基础的线程的自适应线程池
serviceExecutor: <string>
# deprecated since 4.2
ssl:
# 从2.6版开始不推荐使用:改为使用net.tls.mode: requireTLS。 为mongos或启用或禁用TLS / SSL mongod
sslOnNormalPorts: <boolean>
# 启用用于所有网络连接的TLS / SSL或混合TLS / SSL
mode: <string>
# 从4.2版起不推荐使用:改为使用net.tls.certificateKeyFile。在.pem同时包含TLS / SSL证书和密钥文件
PEMKeyFile: <string>
# 从4.2版起不推荐使用:改为使用net.tls.certificateKeyFilePassword。 用于解密证书密钥文件的密码(即 PEMKeyFile)
PEMKeyPassword: <string>
# 从4.2版起不推荐使用:改为使用net.tls.certificateSelector。 4.0版中的新功能:Windows和macOS上可以替代 net.ssl.PEMKeyFile。指定证书属性,以便从操作系统的证书存储中选择匹配的证书以用于TLS / SSL
certificateSelector: <string>
# 从4.2版起不推荐使用:改为使用net.tls.clusterCertificateSelector。 4.0版中的新功能:Windows和macOS上可以替代 net.ssl.clusterFile。指定一个证书属性,以从操作系统的安全证书存储区中选择一个匹配的证书,以用于 内部x.509成员身份验证
clusterCertificateSelector: <string>
# 从4.2版起不推荐使用:改为使用net.tls.clusterFile。在.pem包含了X.509证书,密钥文件的文件会员认证 的集群或副本集
clusterFile: <string>
# 从4.2版起不推荐使用:改为使用net.tls.clusterPassword。用于解密用指定的x.509证书密钥文件的密码--sslClusterFile
clusterPassword: <string>
# 从4.2版起不推荐使用:改为使用net.tls.CAFile。 .pem包含来自证书颁发机构的根证书链的文件。.pem使用相对或绝对路径指定文件的文件名
CAFile: <string>
# 从4.2版起不推荐使用:改为使用net.tls.clusterCAFile。 .pem包含来自证书颁发机构的根证书链的文件,用于验证建立连接的客户端提供的证书。.pem使用相对或绝对路径指定文件的文件名
clusterCAFile: <string>
# 从4.2版起不推荐使用:改为使用net.tls.CRLFile。 .pem包含证书吊销列表的文件。.pem使用相对或绝对路径指定文件的文件名
CRLFile: <string>
# 从4.2版起不推荐使用: 改为使用net.tls.allowConnectionsWithoutCertificates。 对于不显示证书mongos或mongod在建立连接时绕过TLS / SSL证书验证的客户端
allowConnectionsWithoutCertificates: <boolean>
# 从4.2版起不推荐使用:改为使用net.tls.allowInvalidCertificates。 对群集中其他服务器上的TLS / SSL证书启用或禁用验证检查,并允许使用无效证书进行连接
allowInvalidCertificates: <boolean>
# 从4.2版起不推荐使用。使用net.tls.allowInvalidHostnames代替
allowInvalidHostnames: <boolean>
# 从4.2版起不推荐使用:改为使用net.tls.disabledProtocols。 防止运行TLS / SSL的MongoDB服务器接受使用一个或多个特定协议的传入连接
disabledProtocols: <string>
# 从4.2版起不推荐使用:改为使用net.tls.FIPSMode。启用或禁用使用TLS / SSL库中的FIPS模式mongos或mongod
FIPSMode: <boolean>
安全相关配置
security:
# 密钥文件的路径,该密钥文件用于存储MongoDB实例用于在分片群集或副本集中相互进行身份验证的共享密钥
keyFile: <string>
# 集群认证使用的认证方式 keyFile: 使用密钥文件进行身份验证。仅接受密钥文件。 sendKeyFile: 用于滚动升级。发送密钥文件进行身份验证,但可以接受密钥文件和x.509证书 sendX509:用于滚动升级。发送x.509证书进行身份验证,但可以接受密钥文件和x.509证书 x509:受到推崇的。发送x.509证书进行身份验证,并且仅接受x.509证书
clusterAuthMode: <string>
#启用或禁用基于角色的访问控制(RBAC),以控制每个用户对数据库资源和操作的访问 enabled:用户只能访问已为其授予特权的数据库资源和操作 disabled: 用户可以访问任何数据库并执行任何操作
authorization: <string>
# 新版本3.4:允许mongod或mongos接受并建立认证和非认证连接,并从其他mongod 并mongos在部署实例。用于执行副本集或分片群集从无身份验证配置到内部身份验证的滚动过渡
transitionToAuth: <boolean>
# 启用或禁用服务器端JavaScript执行
javascriptEnabled: <boolean>
# 一个mongod或mongos与运行security.redactClientLogData重新编辑任何消息记录之前伴随一个给定的日志事件。这样可以防止mongod或mongos将存储在数据库中的潜在敏感数据写入诊断日志
redactClientLogData: <boolean>
clusterIpSourceWhitelist:
# IP地址/ CIDR(无类域间路由)的列表范围,mongod验证来自副本集其他成员以及mongos 实例(如果是分片群集的一部分)的身份验证请求的范围
- <string>
sasl:
#用于配置SASL和Kerberos身份验证的标准服务器域名。仅对于SASL和Kerberos的配置,SASL主机名才覆盖该主机名
hostName: <string>
#使用SASL的服务的注册名称。使用此选项,您可以 按实例覆盖Kerberos主体名称的默认Kerberos 服务名称组件。如果未指定,则默认值为。mongodb
serviceName: <string>
#UNIX域套接字文件的路径saslauthd。
saslauthdSocketPath: <string>
# 3.2版的新功能:为WiredTiger存储引擎启用加密。您必须设置为true传递加密密钥和配置
enableEncryption: <boolean>
#用于静态加密的密码模式 AES256-CBC: 密码块链接模式下的256位高级加密标准 AES256-GCM:Galois /计数器模式下的256位高级加密标准 仅在Linux上可用
encryptionCipherMode: <string>
#通过除KMIP以外的其他过程管理密钥时,本地密钥文件的路径。仅在通过除KMIP以外的其他过程管理密钥时设置。如果数据已经使用KMIP加密,则MongoDB将引发错误
encryptionKeyFile: <string>
kmip:
# KMIP服务器中现有密钥的唯一KMIP标识符。包括将与标识符关联的密钥用作系统密钥。您只能在首次为mongod实例启用加密时使用该设置
keyIdentifier: <string>
#如果为true,请旋转主密钥并重新加密内部密钥库
rotateMasterKey: <boolean>
#要连接的KMIP服务器的主机名或IP地址
serverName: <string>
#用于与KMIP服务器通信的端口号 默认值:5696
port: <string>
# 字符串,包含用于向MongoDB验证KMIP服务器的客户端证书的路径
clientCertificateFile: <string>
#用来解密客户端证书(即security.kmip.clientCertificateFile)的密码 ,用于向KMIP服务器认证MongoDB。仅当证书已加密时才使用该选项
clientCertificatePassword: <string>
#指定证书属性,以便从操作系统的证书存储区选择匹配的证书,以向KMIP服务器认证MongoDB subject:ASCII字符串 thumbprint: 十六进制字符串
clientCertificateSelector: <string>
# CA文件的路径。用于验证与KMIP服务器的安全客户端连接
serverCAFile: <string>
#重试与KMIP服务器的初始连接的次数。与一起使用connectTimeoutMS可控制mongod每次重试之间等待响应的时间
connectRetries: <int>
#等待KMIP服务器响应的超时时间(以毫秒为单位)。如果connectRetries指定了设置,则每次重试mongod将等待直到指定的值 connectTimeoutMS 值必须1000大于或等于
connectTimeoutMS: <int>
ldap:
#mongod或mongos验证用户身份的LDAP服务器,或确定授权用户在给定数据库上执行哪些操作的LDAP服务器
servers: <string>
bind:
# 用于验证LDAP服务器的方法mongod或mongos使用的方法。与queryUser和 queryPassword一起使用以连接到LDAP服务器
method: <string>
# 以逗号分隔的SASL机制列表,mongod或mongos在对LDAP服务器进行身份验证时可以使用
saslMechanisms: <string>
#当连接到LDAP服务器或在LDAP服务器上执行查询时,以mongod或mongos绑定为的身份
queryUser: <string>
# 使用时用于绑定到LDAP服务器的密码 queryUser。您必须queryPassword与一起 使用queryUser
queryPassword: <string>
# 连接到LDAP服务器时,允许mongod或mongos使用Windows登录凭据进行身份验证或绑定
useOSDefaults: <boolean>
# 默认情况下,mongod或mongos创建到LDAP服务器的TLS / SSL安全连接。对于Linux部署,必须在/etc/openldap/ldap.conf文件中配置适当的TLS选项
transportSecurity: <string>
# 以毫秒为单位的时间,mongod或者mongos应该等待LDAP服务器响应请求的时间
timeoutMS: <int>
# 将提供给mongod或mongos用于身份验证的用户名映射到LDAP专有名称(DN)
userToDNMapping: <string>
authz:
# 遵循RFC4515和RFC4516格式的相对LDAP查询URL ,其mongod执行以获取已认证用户所属的LDAP组。该查询相对于中指定的一个或多个主机security.ldap.servers
queryTemplate: <string>
#一个标志,用于确定mongodor mongos实例在LDAP server(s)启动时是否检查的可用性
validateLDAPServerConfig: <boolean>
存储 相关配置
storage:
# mongod实例存储其数据的目录。 该storage.dbPath设置仅适用于 mongod
dbPath: <string>
journal:
# 启用或禁用耐久性日志,以确保数据文件保持有效和可恢复。仅当您指定storage.dbPath设置时,此选项才适用 。mongod默认情况下启用日记功能
enabled: <boolean>
# 该mongod进程在两次日记操作之间允许的最长时间(以毫秒为单位)。取值范围是1到500毫秒。较低的值会增加日志的持久性,但会降低磁盘性能
commitIntervalMs: <num>
# 如果为true,则MongoDB使用单独的目录存储每个数据库的数据。目录位于storage.dbPath目录下,并且每个子目录名称都与数据库名称相对应
directoryPerDB: <boolean>
# MongoDB通过fsync操作将数据刷新到数据文件之前可以经过的时间 默认值:60
syncPeriodSecs: <int>
#从4.2版开始,MongoDB删除不推荐使用的MMAPv1存储引擎 。mongod数据库的存储引擎 wiredTiger :指定WiredTiger存储引擎。 inMemory:指定内存中存储引擎
engine: <string>
wiredTiger:
engineConfig:
# 定义WiredTiger将用于所有数据的内部缓存的最大大小。索引构建(请参阅maxIndexBuildMemoryUsageMegabytes参考资料)消耗的内存 与WiredTiger缓存内存是分开的 值的范围可以从0.25GB到10000GB
cacheSizeGB: <number>
# 指定用于压缩WiredTiger日记数据的压缩类型
journalCompressor: <string>
#通过使用符号链接,可以为索引指定其他位置。
directoryForIndexes: <boolean>
# deprecated in MongoDB 4.4 #指定WiredTigerLAS.wtMongoDB 4.2.1-4.2.x和4.0.12-4.0.x的“后备(或缓存溢出)表”文件的最大大小(以GB为单位
maxCacheOverflowFileSizeGB: <number>
collectionConfig:
#指定收集数据的默认压缩。创建集合时,您可以在每个集合的基础上覆盖此设置
blockCompressor: <string>
indexConfig:
#启用或禁用索引数据的前缀压缩
prefixCompression: <boolean>
inMemory:
engineConfig:
#分配给内存存储引擎数据的最大内存量,包括索引,oplog(如果 mongod副本集的一部分),副本集或分片群集元数据等
inMemorySizeGB: <number>
# 版本4.4中的新增功能:指定保留操作日志条目的最小小时数,其中十进制值表示小时的分数。例如,值1.5代表一小时三十分钟
oplogMinRetentionHours: <double>
操作分析 相关配置
operationProfiling:
# 指定应该分析哪些操作。可以使用以下探查器级别 off: 探查器已关闭,并且不收集任何数据。这是默认的探查器级别 slowOp:剖析器收集的数据花费的时间超过的值slowms。 all:探查器收集所有操作的数据
mode: <string>
# 该慢的操作时间阈值,单位为毫秒。运行时间超过此阈值的操作被认为是缓慢的 默认值:100
slowOpThresholdMs: <int>
#应当分析或记录的慢速操作的一部分。 operationProfiling.slowOpSampleRate接受0到1之间的值(包括0和1) 默认值:1.0
slowOpSampleRate: <double>
# 一个过滤器表达式,用于控制对哪些操作进行概要分析和记
filter: <string>
复制 相关配置
replication:
# 复制操作日志(即oplog)的最大大小(以兆字节为单位)
oplogSizeMB: <int>
# 所属的副本集的名称mongod。副本集中的所有主机必须具有相同的集名称
replSetName: <string>
#从MongoDB 3.6开始,"majority"默认情况下,MongoDB启用对读取关注的支持
enableMajorityReadConcern: <boolean>
分片 相关配置
sharding:
#mongod实例在分片群集中的角色。将此设置设置为以下之一 configsvr:作为配置服务器启动此实例。27019默认情况下,实例在端口上启动 shardsvr: 启动此实例为碎片。27018默认情况下,实例在端口上启动
clusterRole: <string>
#在3.2版中进行了更改: 从3.2版开始,MongoDBfalse用作默认值。 在块迁移期间,分片不会保存从该分片迁移的文档
archiveMovedChunks: <boolean>
审核日志 相关配置
auditLog:
# 设置后,将auditLog.destination启用审核并指定所有审核事件的发送位置mongos或位置mongod syslog: 将审核事件以JSON格式输出到syslog console:将审核事件输出为stdoutJSON格式 file:以中指定auditLog.path的格式将审核事件输出到以指定的文件 中 auditLog.format
destination: <string>
# 如果为,则用于审核的输出文件的格式 JSON:将审核事件以JSON格式输出到中指定的文件auditLog.path BSON:将BSON二进制格式的审核事件输出到中指定的文件中auditLog.path
format: <string>
# 输出文件的审核,如果 destination有值file。该auditLog.path 选项可以采用完整路径名或相对路径名
path: <string>
#该过滤器来限制类型的操作的审计系统记录
filter: <string>
简单网络管理 相关配置
snmp:
# 禁用SNMP对的访问mongod。该选项与snmp.subagent和不兼容snmp.master。设置为true禁用SNMP访问 默认值:false
disabled: <boolean>
#如果snmp.subagent为true,则SNMP作为子代理运行。该选项与snmp.disabled设置不兼容true
subagent: <boolean>
#如果snmp.master为true,则SNMP作为主服务器运行。该选项与snmp.disabled设置不兼容true
master: <boolean>