本文主要记录在使用配置文件时的一些可选配置:
一、核心配置选项
1. 系统日志(systemLog)
日志输出目标
destination
:支持file
(需指定path
)、syslog
(系统日志)或默认stdout
。path
:日志文件路径(如/var/log/mongodb/mongod.log
)。logAppend
:true
表示追加日志,false
表示覆盖(默认)。
日志格式与级别
verbosity
:日志详细级别(0-5 级,0 为默认信息级别,1-5 为调试级别)。timeStampFormat
:时间戳格式,支持iso8601-utc
(UTC 时间)或iso8601-local
(本地时间)。
组件日志
可针对accessControl
、command
、replication
等组件单独设置日志级别,如:systemLog: component: accessControl: verbosity: 2
2. 进程管理(processManagement)
守护进程模式
fork: true
:启用后台运行(Windows 不支持)。pidFilePath
:指定 PID 文件路径(通常与fork
配合使用)。
时区配置
timeZoneInfo
:指定时区数据库路径(默认使用内置时区库)。
3. 网络配置(net)
端口与绑定地址
port
:默认 27017(分片配置服务器为 27019,分片节点为 27018)。bindIp
:绑定 IP 地址(如127.0.0.1
),支持多地址逗号分隔;bindIpAll: true
表示绑定所有 IP。
TLS/SSL 配置
net: tls: mode: requireTLS # 强制使用 TLS certificateKeyFile: /path/to/cert.pem # 证书文件路径 CAFile: /path/to/ca.pem # 根证书路径 allowInvalidCertificates: false # 是否允许无效证书
压缩配置
compression.compressors
:指定网络传输压缩算法(snappy
/zlib
/zstd
,默认snappy,zstd,zlib
)。
4. 存储配置(storage)
数据路径
dbPath
:数据存储目录(默认/data/db
或系统特定路径)。存储引擎
engine
:默认wiredTiger
,可选inMemory
(仅 Enterprise 版支持内存存储)。WiredTiger 配置:
storage: wiredTiger: engineConfig: cacheSizeGB: 8 # 缓存大小(建议为物理内存的 50% - 1GB) journalCompressor: snappy # 日志压缩算法 collectionConfig: blockCompressor: zstd # 数据块压缩算法
展开过程
Oplog 配置
replication.oplogSizeMB
:指定 oplog 大小(MB),默认占磁盘空间的 5%(64 位系统)。
5. 安全配置(security)
访问控制
authorization: enabled
:启用基于角色的访问控制(RBAC)。内部身份验证
keyFile
:副本集 / 分片集群成员共享的密钥文件路径。clusterAuthMode
:身份验证模式(keyFile
/x509
等)。
外部身份验证
支持 LDAP、Kerberos、KMIP 等,如 LDAP 配置:security: ldap: servers: "ldap.example.com:389" bind: method: sasl saslMechanisms: GSSAPI
6. 复制与分片(replication/sharding)
副本集配置
replication: replSetName: "rs0" # 副本集名称 enableMajorityReadConcern: true # 启用多数读关注
分片配置
sharding: clusterRole: shardsvr # 节点角色(shardsvr/configsvr) configDB: "configReplSet/conf1:27019,conf2:27019" # 配置服务器地址
7. 审计日志(auditLog,仅 Enterprise/Atlas)
auditLog:
destination: file # 输出目标(file/syslog/console)
path: /var/log/mongodb/audit.log # 日志路径
format: JSON # 日志格式(JSON/BSON)
filter: '{"operation": "insert", "ns": "admin.*"}' # 过滤规则
二、其他配置
1. 操作分析(operationProfiling)
operationProfiling:
mode: slowOp # 分析模式(off/slowOp/all)
slowOpThresholdMs: 500 # 慢操作阈值(毫秒)
slowOpSampleRate: 1.0 # 慢操作采样率(0-1)
2. Windows 服务配置
processManagement:
windowsService:
serviceName: "MongoDB" # 服务名称
serviceUser: "domain\user" # 运行服务的用户
servicePassword: "password"
3. 已弃用配置
MMAPv1 存储引擎相关配置(如
storage.mmapv1.*
)已移除,需迁移至 WiredTiger。LDAP 身份验证在 MongoDB 8.0 中已弃用,建议改用 X.509 或 SASL。
三、配置最佳实践
生产环境建议
启用 TLS/SSL(
net.tls.mode: requireTLS
)和访问控制(security.authorization: enabled
)。限制绑定地址(
bindIp
),避免公开暴露服务。使用副本集(Replica Sets)实现高可用,分片(Sharding)处理海量数据。
性能优化
合理设置
wiredTiger.engineConfig.cacheSizeGB
(建议不超过物理内存的 50%)。启用压缩(
storage.wiredTiger.collectionConfig.blockCompressor
)减少存储占用。
日志与监控
配置审计日志(
auditLog
)记录敏感操作。使用慢查询分析(
operationProfiling
)定位性能瓶颈