文档菜单
文档首页
/ /
MongoDB 命令行界面
/

集群配置文件

本页内容

  • 概述
  • 配置属性
  • 示例配置文件

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

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

此设置对应于配置文件选项中的auditLog.destination

no
auditLogFilter
字符串

设置,用于过滤哪些事件会被审计。过滤器限制结果以匹配您指定的查询。

有关创建过滤器的更多信息,请参阅配置审计过滤器。

此设置对应于配置文件选项中的auditLog.filter

no
auditLogFormat
字符串

如果将auditLogDestination设置为file,则审计输出文件的格式。

MongoDB CLI接受以下值

  • JSON

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

  • BSON

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

此设置对应于配置文件选项中的auditLog.format

no
auditLogPath
字符串

如果auditLogDestination的值为file,则审计输出文件。The auditLogPath选项可以接受绝对路径或相对路径名。

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

no
bindIp
字符串

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

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

no
bindIpAll
布尔值

标志,表示 mongos 或 mongod 实例是否绑定到所有 IPv4 地址(例如,0.0.0.0)。如果 ipv6 设置为 true,则 bindIpAll 还绑定到 IPv6 地址(例如,::)。MongoDB CLI 接受以下值:true 或 false。

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

no
buildIndexes
布尔值

标志,表示是否指示 mongod 构建索引。MongoDB CLI 接受以下值:true 或 false。

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

no
dbPath
字符串
mongod 实例存储其数据的位置。部署后不能修改。
delay
整型

此成员应落后于主成员的秒数。

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

no
directoryPerDB
布尔值

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

默认情况下,directoryPerDB 为 false。

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

no
enableMajorityReadConcern
布尔值

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

默认情况下,enableMajorityReadConcern设置为true

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

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

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

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

此选项仅适用于MongoDB Enterprise。

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

no
ipv6
布尔值

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

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

no
logDestination
字符串

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

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

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

no
logPath
字符串
主机上 mongod 进程的日志文件位置和名称。
oplogSizeMB
整数

副本集 oplog 的最大大小(兆字节)。

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

no
端口
整数
副本集成员的端口。必须保证 mongod 进程可以独占使用指定的端口。
优先级
整数

优先级 在选举期间。值可以是

  • 0

  • 1

非投票成员必须具有 0 的优先级。优先级为 0 的副本集成员不能成为主节点,也不能触发选举。

tls.CAFile
字符串

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

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

no
tls. certificateKeyFile
字符串

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

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

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

no
tls. certificateKeyFilePassword
字符串

解密证书-私钥文件的密码。

仅当证书-私钥文件被加密时,才使用 tls.certificateKeyFilePassword 选项。在任何情况下,mongosmongod 都将从所有日志和报告输出中删除密码。

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

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
字符串

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

仅当证书密钥文件被加密时才使用 tls.clusterPassword 选项。在任何情况下,mongosmongod 都将从所有日志和报告输出中删除密码。

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

no
tls.CRLFile
字符串

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

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

no
tls.disabledProtocols
字符串

运行 TLS 的 MongoDB 服务器拒绝接受连接的协议或版本。

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

no
tls.FIPSMode
字符串

启用或禁用 TLS 库中 FIPS 模式在 mongosmongod 中的使用。您的系统必须具有符合 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
字符串

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

重要: 此设置已弃用。请使用 tls.certificateKeyFile 代替。

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

no
votes
整数

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

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

  • 1 如果副本集成员可以投票

有关 votes 的更多信息,请参阅 votes。

wiredTiger.engineConfig. cacheSizeGB
浮点数

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

值范围从 0.25 GB 到 10000 GB。默认情况下,WiredTiger 内部缓存大小是以下两者中较大者

  • RAM - 1 GB 的 50%,或

  • 256 MB。

请勿将 WiredTiger 内部缓存大小增加到默认值以上。

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

no
wiredTiger.engineConfig. journalCompressor
字符串

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

可用的压缩器有

  • snappy

  • zlib

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

默认情况下,WiredTiger使用snappy

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

no
wiredTiger.engineConfig. directoryForIndexes
布尔值

标志表示mongod是否在数据(即storage.dbPath)目录下分别使用子目录存储索引和集合。具体来说,mongod将索引存储在名为index的子目录中,将集合数据存储在名为collection的子目录中。

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

默认情况下,wiredTiger.engineConfig. directoryForIndexesfalse

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

no
wiredTiger.engineConfig. maxCacheOverflowFileSizeGB
浮点数

此设置仅支持运行以下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参数。

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

no
wiredTiger.collectionConfig. blockCompressor
字符串

默认的集合数据压缩方式。在创建集合时,您可以根据每个集合覆盖此设置。

可用的压缩器有

  • snappy

  • zlib

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

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

此设置会影响所有新创建的集合。如果您在现有的MongoDB部署上更改此设置的值,所有新集合将使用指定的压缩器。现有集合将继续使用它们创建时指定的压缩器,或当时默认的压缩器。

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

no
wiredTiger.indexConfig. prefixCompression
布尔值

表示是否为索引数据启用或禁用 前缀压缩 的标志。

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

默认情况下,wiredTiger.indexConfig.prefixCompressiontrue

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

此设置对应于 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
}
]
}

返回

参考