Docs 菜单
Docs 主页
/ /
MongoDB 命令行界面
/

集群配置文件

在此页面上

  • Overview
  • 配置属性
  • 示例配置文件

mongocli命令需要集群配置设置来创建或更新MongoDB Cloud ManagerMongoDB Ops Manager集群。 配置属性可以通过.yaml.json文件提供。 以下部分描述了创建或更新集群所需的配置属性,并提供了可以复制和修改的示例配置文件

以下各节包含:

  • 集群范围的配置属性

  • 副本集成员配置属性

  • 分片集群配置属性

用于创建或更新MongoDB Cloud ManagerMongoDB Ops Manager集群的配置文件必须包含以下集群范围的设置:

字段
类型
说明
name
字符串
集群名称。
version
字符串
要部署的mongod进程的版本。
featureCompatibilityVersion
字符串
processes
对象数组
对于副本集是必需的。 包含每个mongod进程设置的对象数组。 每个mongod都有副本集节点设置。
shards
对象数组
对于分片集群是必需的。 包含每个分片设置的对象数组。
config
对象
对于分片集群是必需的。 包含配置服务器副本集的对象。
mongos
对象数组
对于分片的集群是必需的。 包含每个mongos实例设置的对象大量。

用于创建或更新MongoDB Cloud ManagerMongoDB Ops Manager集群的配置文件可以包含每个副本集节点的以下设置:

字段
类型
说明
必需?
auditLogDestination
字符串

用于启用审核并指定所有审核事件的发送目标的设置。 MongoDB CLI 接受以下值:

  • syslog

    将审核事件以 JSON 格式输出到 syslog

  • console

    将审核事件以 JSON 格式输出到 stdout

  • file

    按照auditLogFormat设置中指定的格式,将审核事件输出到auditLogPath设置中指定的文件。

此设置对应auditLog.destination配置文件选项。

no
auditLogFormat
字符串

如果auditLogDestination设置为file ,则用于审核的输出文件的格式。

MongoDB CLI 接受以下值:

  • JSON

    将审核事件以 JSON 格式输出到auditLogPath设置中指定的文件。

  • BSON

    将 BSON 二进制格式的审核事件输出到auditLogPath设置中指定的文件。

此设置对应auditLog.format配置文件选项。

no
auditLogPath
字符串

如果auditLogDestination的值为file ,则用于审核的输出文件。 auditLogPath选项可以使用绝对路径名或相对路径名。

此设置对应auditLog.path配置文件选项。

no
bindIp
字符串

mongosmongod应侦听客户端连接的主机名和/或IP地址和/或完整 Unix 域套接字路径。 您可以将mongosmongod连接到任何接口。 要绑定到多个地址,请输入以逗号分隔的值的列表。

此设置对应于net.bindIp配置文件选项。

no
bindIpAll
布尔

指示mongosmongod实例是否绑定到所有 IPv 4地址的标志(例如, 0.0.0.0 )。 如果将ipv6设置为true ,则bindIpAll还会绑定到 IPv 6地址(例如:: )。 MongoDB CLI 接受以下值: truefalse

此设置对应于net.bindIpAll配置文件选项。

no
buildIndexes
布尔

指示是否指示mongod构建索引的标志。 MongoDB CLI接受以下值: truefalse

此设置对应于buildIndexes副本集配置选项。

no
dbPath
字符串
mongod实例存储数据的目录。 部署后无法修改。
delay
int

该节点应滞后于主节点的秒数。

此设置对应于SlaveDelay副本集配置选项。

no
directoryPerDB
布尔

指示 MongoDB 是否应使用单独的目录来存储每个数据库数据的标志。 这些目录位于storage.dbPath目录下,每个子目录名称都与数据库名称相对应。

默认情况下,directoryPerDBfalse

此设置对应于storage.directoryPerDB mongod副本集配置选项。

no
enableMajorityReadConcern
布尔

指示是否启用读关注"majority"的标志。 如果启用,读关注"majority"可保证与多文档事务无关的读操作的大多数副本集成员确认数据读取。

默认情况下,enableMajorityReadConcerntrue

此设置对应replication.enableMajorityReadConcern 副本集配置选项。

no
hostname
字符串
要添加到副本集的主机名称。 这是Ops Manager部署mongod进程的主机。
inMemory.engineConfig.inMemorySizeGB
float

内存存储引擎数据分配的最大内存量,包括索引、 oplog (如果mongod是副本集的一部分)、副本集或分片集群元数据等。

该值的范围可以从256 MB 到10 TB。 默认情况下,内存存储引擎使用物理 RAM 大小减去 1 GB 后的 50%。

注意

Enterprise 版功能

仅适用于 MongoDB Enterprise。

此设置对应于storage.inMemory.engineConfig.inMemorySizeGB mongod副本集配置选项。

no
ipv6
布尔

指示部署是否支持 IPv6的标志。 MongoDB CLI 接受以下值: truefalse

此设置对应于net.ipv 6配置文件选项。

no
logDestination
字符串

MongoDB 发送所有日志输出的目标。 MongoDB CLI 接受以下值: filesyslog 。 如果指定file ,则还必须指定logPath

如果不指定logDestination ,MongoDB 会将所有日志输出发送到标准输出。

此设置对应于systemLog.destination配置文件选项。

no
logPath
字符串
托管上mongod进程的日志文件的位置和名称。
oplogSizeMB
整型

复制oplog的最大大小(以 MB 为单位)。

此设置对应于replication.oplogSizeMB副本集配置选项。

no
port
整型
副本集成员的端口。 mongod进程必须具有对指定端口的独占访问权限。
priority
整型

选举期间副本集节点的优先级。 值可以是:

  • 0

  • 1

无投票权成员的优先级必须为0 。 优先级为0的副本集节点无法成为主节点,也无法触发选举。

tls.CAFile
字符串

.pem 包含来自证书颁发机构的根证书链的文件。 使用相对或绝对路径指定.pem文件的文件名。

此设置对应于net.tls.CAFile mongod副本集配置选项。

no
tls.certificateKeyFile
字符串

.pem 包含 TLS 证书和密钥的文件。

tls.certificateKeyFiletls.certificateSelector是互斥的。 您只能指定一个。

此设置对应于net.tls.certificateKeyFile mongod副本集配置选项。

no
tls.certificateKeyFilePassword
字符串

用于解密证书密钥文件的密码。

仅当证书密钥文件已加密时才使用tls.certificateKeyFilePassword选项。 在所有情况下, mongosmongod都会从所有日志记录和报告输出中编辑密码。

此设置对应于net.tls.certificateKeyFilePassword mongod副本集配置选项。

no
tls.certificateSelector
字符串

MongoDB Agent用于从操作系统的证书存储中选择匹配证书以用于TLS/SSL的属性。

MongoDB CLI 接受以下键值映射之一作为tls.certificateSelector的参数:

值类型
说明
subject
ASCII 字符串
证书上的主题名称或通用名称。
thumbprint
十六进制字符串

以十六进制表示的字节序列,用于通过 SHA-1 摘要识别公钥。

thumbprint 有时称为 fingerprint

tls.certificateKeyFiletls.certificateSelector是互斥的。 您只能指定一个。

此设置对应于net.tls.certificateSelector mongod副本集配置选项。

no
tls.clusterCertificateSelector
字符串

MongoDB Agent用于从操作系统的证书存储中选择匹配证书以用于内部 x.509 成员身份验证的证书属性。

MongoDB CLI 接受以下键值映射之一作为tls.clusterCertificateSelector的参数:

值类型
说明
subject
ASCII 字符串
证书上的主题名称或通用名称。
thumbprint
十六进制字符串

以十六进制表示的字节序列,用于通过 SHA-1 摘要识别公钥。

thumbprint 有时称为 fingerprint

tls.clusterCertificateSelectortls.clusterFile是互斥的。 您只能指定一个。

此设置对应于net.tls.clustercertificateSelector mongod副本集配置选项。

no
tls.clusterFile
字符串

.pem 包含 x. 509证书密钥文件,用于集群或副本集的成员身份验证

tls.clusterCertificateSelectortls.clusterFile是互斥的。 您只能指定一个。

此设置对应于net.tls.clusterFile mongod副本集配置选项。

no
tls.clusterPassword
字符串

用于解密 x.509 证书密钥文件(由 tls.clusterFile 指定)的密码。

仅当证书密钥文件已加密时才使用tls.clusterPassword选项。 在所有情况下, mongosmongod都会从所有日志记录和报告输出中编辑密码。

此设置对应于net.tls.clusterPassword mongod副本集配置选项。

no
tls.CRLFile
字符串

包含证书吊销列表的 .pem 文件。使用相对或绝对路径指定 .pem 文件的文件名。

此设置对应于net.tls.CRLFile mongod副本集配置选项。

no
tls.disabledProtocols
字符串

使用 TLS 运行的 MongoDB Server 拒绝传入连接的协议或版本。

此设置对应于net.tls.disabledProtocols mongod副本集配置选项。

no
tls.FIPSMode
字符串

mongosmongod启用或禁用 TLS 库的 FIPS模式。 系统必须有符合 FIPS 标准的库才能使用此选项。

此设置对应于net.tls.FIPSMode mongod副本集配置选项。

no
tls.mode
字符串

为所有网络连接启用 TLS。 MongoDB CLI 接受以下参数用于此设置:

说明
disabled
该服务器不使用 TLS。
allowTLS
服务器之间的连接不使用 TLS。对于传入连接,服务器既接受 TLS,也接受非 TLS。
preferTLS
服务器之间的连接使用 TLS。对于传入连接,服务器既接受 TLS,也接受 TLS。
requireTLS
服务器仅使用并接受 TLS 加密连接。

此设置对应于net.tls.mode mongod副本集配置选项。

no
tls.PEMKeyFile
字符串

.pem 包含 TLS 证书和密钥的文件。

重要

此设置已弃用。 请改用tls.certificateKeyFile

此设置对应于net.ssl.PEMKeyFile mongod副本集配置选项。

no
votes
整型

指示副本集成员是否在选举中投票的数字。 MongoDB CLI 接受以下值:

  • 0 如果副本集成员无法投票

  • 1 副本集节点是否可以投票

要了解有关votes的更多信息,请参阅投票。

wiredTiger.engineConfig.cacheSizeGB
float

WiredTiger 用于所有数据的内部缓存的最大大小。

该值的范围可以从0.25 GB 到10000 GB 不等。 默认情况下,WiredTiger 内部缓存大小为以下两者中的较大者:

  • (RAM 大小 - 1 GB)的 50%,或

  • 256 MB.

避免将 WiredTiger 内部缓存大小增加到超过其默认值。

此设置对应于storage.wiredTiger.engineConfig.journalCompressor mongod副本集配置选项。

no
wiredTiger.engineConfig.journalCompressor
字符串

用于压缩 WiredTiger 日志数据的压缩类型。

可用的压缩类型有:

  • none

  • snappy

  • zlib

  • zstd (适用于运行 MongoDB 4.2及更高版本的集群)

默认, WiredTiger使用 snappy

此设置对应于storage.wiredTiger.engineConfig.journalCompressor mongod副本集配置选项。

no
wiredTiger.engineConfig.directoryForIndexes
布尔

指示mongod是否将索引和集合存储在数据(即 storage.dbPath )目录。 具体来说, mongod将索引存储在名为index的子目录中,并将集合数据存储在名为collection的子目录中。

通过使用符号链接,可以为索引指定不同的位置。 具体来说,当mongod实例运行时,将index子目录移动到新目标,并在数据目录下创建一个名为index的符号链接,指向新目标。

默认情况下, wiredTiger.engineConfig.directoryForIndexesfalse

此设置对应于storage.wiredTiger.engineConfig.directoryForIndexes mongod副本集配置选项。

no
wiredTiger.engineConfig.maxCacheOverflowFileSizeGB
float

注意

有限版本支持

仅运行 MongoDB 版本的集群支持此设置:

  • 4.0.12 到 4.0.x,以及

  • 4.2.1 到 4.2.x。

名为WiredTigerLAS.wt的“后备(或缓存溢出)表”文件的最大大小(以 GB 为单位)。 从 MongoDB 版本 4.4 开始,该文件不再存在。

该设置可接受以下各值:

说明
0
默认值。如果设置为 0,则文件大小不受限制。
数值 >= 0.1
最大大小(以 GB 为单位)。 如果WiredTigerLAS.wt文件超过此大小, mongod将以致命断言退出。 您可以清除WiredTigerLAS.wt文件并重新启动mongod

要在运行时更改最大大小,请使用wiredTigerMaxCacheOverflowSizeGB参数。

此设置对应于storage.wiredTiger.engineConfig.maxCacheOverflowFileSizeGB mongod副本集配置选项。

no
wiredTiger.collectionConfig.blockCompressor
字符串

集合数据的默认压缩。 创建collection时,您可以在每个collection的基础上覆盖此设置。

可用的压缩类型有:

  • none

  • snappy

  • zlib

  • zstd (适用于运行 MongoDB 4.2及更高版本的集群)

默认情况下,压缩器为snappy。

此设置会影响所有新创建的collection。如果在现有 MongoDB 部署上更改此设置的值,则所有新 collection 都将使用指定的压缩程序。现有的collection继续使用创建时指定的压缩程序,或当时的默认压缩程序。

此设置对应于storage.wiredTiger.collectionConfig.blockCompressor mongod副本集配置选项。

no
wiredTiger.indexConfig.prefixCompression
布尔

指示是启用还是禁用索引数据的前缀压缩的标志。

如果为true ,则对索引数据启用前缀压缩。 如果为false ,则禁用前缀压缩。

默认情况下, wiredTiger.indexConfig.prefixCompressiontrue

此设置会影响创建的所有索引。 如果在现有 MongoDB 部署上更改此设置的值,则所有新索引都将使用前缀压缩。 现有索引不受影响。

此设置对应于storage.wiredTiger.indexConfig.prefixCompression mongod副本集配置选项。

no

用于创建或更新MongoDB Cloud ManagerMongoDB Ops Manager集群的配置文件可以包含每个分片的以下设置:

字段
类型
说明
必需?
name
字符串
分片的名称。
processes
对象数组
包含每个mongod进程设置的对象数组。 每个mongod都有副本集节点设置。
name: "myCluster"
version: 4.2.2
featureCompatibilityVersion: 4.2
processes:
- hostname: host0
dbPath: /data/cluster_2/rs1
logPath: /data/cluster_2/rs1/mongodb.log
priority: 1
votes: 1
port: 29010
- hostname: host1
dbPath: /data/cluster_2/rs2
logPath: /data/cluster_2/rs2/mongodb.log
priority: 1
votes: 1
port: 29020
- hostname: host2
dbPath: /data/cluster_2/rs3
logPath: /data/cluster_2/rs3/mongodb.log
priority: 1
votes: 1
port: 29030
{
"name": "myCluster",
"version": "4.2.2",
"featureCompatibilityVersion": "4.2",
"processes": [
{
"hostname": "host0",
"dbPath": "/data/cluster_3/rs1",
"logPath": "/data/cluster_3/rs1/mongodb.log",
"priority": 1,
"votes": 1,
"port": 30010
},
{
"hostname": "host1",
"dbPath": "/data/cluster_3/rs2",
"logPath": "/data/cluster_3/rs2/mongodb.log",
"priority": 1,
"votes": 1,
"port": 30020
},
{
"hostname": "host2",
"dbPath": "/data/cluster_3/rs3",
"logPath": "/data/cluster_3/rs3/mongodb.log",
"priority": 1,
"votes": 1,
"port": 30030
}
]
}
{
"name": "myShardedCluster",
"version": "4.2.2",
"featureCompatibilityVersion": "4.2",
"shards": [
{
"name": "myShard_0",
"processes": [
{
"dbPath": "/data/myCluster/myShard_0/27000",
"hostname": "host0.example",
"logPath": "/data/myCluster/myShard_0/27000/mongodb.log",
"port": 27000,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_0/27001",
"hostname": "host1.example",
"logPath": "/data/myCluster/myShard_0/27001/mongodb.log",
"port": 27001,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_0/27002",
"hostname": "host2.example",
"logPath": "/data/myCluster/myShard_0/27002/mongodb.log",
"port": 27002,
"version": "4.2.8-ent",
"votes": 1
}
]
},
{
"name": "myShard_1",
"processes": [
{
"dbPath": "/data/myCluster/myShard_1/28000",
"hostname": "host3.example",
"logPath": "/data/myCluster/myShard_1/28000/mongodb.log",
"port": 28000,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_1/28001",
"hostname": "host4.example",
"logPath": "/data/myCluster/myShard_1/28001/mongodb.log",
"port": 28001,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_1/28002",
"hostname": "host5.example",
"logPath": "/data/myCluster/myShard_1/28002/mongodb.log",
"port": 28002,
"votes": 1
}
]
}
],
"config": {
"name": "configRS",
"processes": [
{
"dbPath": "/data/myCluster/configRS/29000",
"hostname": "host6.example",
"logPath": "/data/myCluster/configRS/29000/mongodb.log",
"port": 29000,
"votes": 1
},
{
"dbPath": "/data/myCluster/configRS/29001",
"hostname": "host7.example",
"logPath": "/data/myCluster/configRS/29001/mongodb.log",
"port": 29001,
"votes": 1
},
{
"dbPath": "/data/myCluster/configRS/29002",
"hostname": "host8.example",
"logPath": "/data/myCluster/configRS/29002/mongodb.log",
"port": 29002,
"votes": 1
}
]
},
"mongos": [
{
"hostname": "host9.example",
"logPath": "/data/myCluster/mongoses/27015/mongodb.log",
"port": 27015
}
]
}

后退

参考