MongoDB的配置文件为mongod.conf,默认情况下,MongoDB将在以下位置寻找配置文件:
1 | /etc/mongod.conf |
如果没有在启动mongod时指定config 选项,则MongoDB将在上述位置寻找配置文件。
以下是MongoDB配置文件的主要内容:
network interfaces
1
2
3
4net:
port: 27017
bindIp: 127.0.0.1,192.168.1.100
maxIncomingConnections: 100此部分配置MongoDB的网络选项。在此示例中,MongoDB将在端口27017上监听连接,并绑定IP地址为“127.0.0.1”和“192.168.1.100”。此外,MongoDB将限制最大传入连接数为100个。
storage
1
2
3
4
5
6
7
8
9
10
11storage:
dbPath: /var/lib/mongodb
directoryPerDB: true
journal:
enabled: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 2
collectionConfig:
blockCompressor: zlib此部分配置MongoDB的存储选项。在此示例中,MongoDB将数据库文件存储在
/var/lib/mongodb
目录下,并为每个数据库创建单独的目录。此外,MongoDB将启用日志文件和WiredTiger存储引擎,并为WiredTiger配置了2GB的缓存大小和使用Zlib压缩算法的集合配置。systemLog
1
2
3
4
5
6systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
logRotate: reopen
verbosity: 0此部分指定MongoDB的日志记录选项。在此示例中,MongoDB将日志记录到文件中,并追加到文件末尾。此外,MongoDB将重新打开日志文件以进行日志轮换,并设置日志记录详细级别为0。
processManagement
1
2
3processManagement:
fork: true
pidFilePath: /var/run/mongodb/mongod.pid此部分指定MongoDB进程管理选项。在此示例中,MongoDB将在后台运行,并将进程ID写入
/var/run/mongodb/mongod.pid
文件中。replication
1
2replication:
replSetName: rs0此部分配置MongoDB副本集的名称。在此示例中,MongoDB副本集的名称为
rs0
。security
1
2security:
authorization: enabled此部分启用MongoDB的安全认证功能。在此示例中,MongoDB启用了安全认证。
operationProfiling
1
2
3
4operationProfiling:
slowOpThresholdMs: 100
mode: "slowOp"
slowOpSampleRate: 0.5此部分配置MongoDB的操作分析选项。在此示例中,MongoDB将记录执行时间超过100毫秒的操作,并将操作分析模式设置为“慢操作”模式。此外,MongoDB将以50%的速率记录慢操作。
sharding
1
2sharding:
clusterRole: configsvr此部分配置MongoDB分片集群的选项。在此示例中,MongoDB配置服务器被定义为集群角色。
mongos
1
2mongos:
configDB: configrs/192.168.1.101:27017,192.168.1.102:27017,192.168.1.103:27017此部分配置MongoDB路由器的选项。在此示例中,MongoDB路由器将连接到三个配置服务器,分别为192.168.1.101、192.168.1.102和192.168.1.103,并使用默认端口27017。
auditLog
1
2
3
4
5auditLog:
destination: file
path: /var/log/mongodb/audit.log
format: JSON
filter: '{user: "john"}'此部分配置MongoDB的审计日志选项。在此示例中,MongoDB将审计日志记录到
/var/log/mongodb/audit.log
文件中,并使用JSON格式记录日志。此外,MongoDB将仅记录由用户“john”执行的操作。backup
1
2
3backup:
directoryPerDB: true
oplogCompression: snappy此部分配置MongoDB的备份选项。在此示例中,MongoDB将为每个数据库创建单独的目录,并使用Snappy压缩算法压缩操作日志(Oplog)。
mmapv1
1
2
3
4storage:
mmapv1:
preallocDataFiles: true
smallFiles: true此部分配置MongoDB的存储引擎选项。在此示例中,MongoDB将使用MMapv1存储引擎,并预先分配数据文件以优化性能。此外,MongoDB将使用小文件。
wiredTiger
1
2
3
4
5storage:
wiredTiger:
engineConfig:
cacheSizeGB: 2
journalCompressor: snappy此部分配置MongoDB的WiredTiger存储引擎选项。在此示例中,MongoDB将使用WiredTiger存储引擎,并为缓存分配2GB内存。此外,MongoDB将使用Snappy压缩算法压缩日志记录。
cloud
1
2
3
4cloud:
monitoring:
free:
state: "on"此部分配置MongoDB云监控选项。在此示例中,MongoDB将启用免费的云监控服务。
ftdc
1
2
3ftdc:
directoryPerDB: true
enabled: true此部分配置MongoDB的诊断数据捕获(FTDC)选项。在此示例中,MongoDB将为每个数据库创建单独的目录,并启用FTDC功能。
snmp
1
2
3snmp:
subagent: true
master: "127.0.0.1"此部分配置MongoDB的简单网络管理协议(SNMP)选项。在此示例中,MongoDB将作为子代理运行,并将主代理设置为“127.0.0.1”。
tls
1
2
3
4tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/mongodb-ca.pem此部分配置MongoDB的传输层安全(TLS)选项。在此示例中,MongoDB将要求客户端使用TLS连接,并使用位于“/etc/ssl/mongodb.pem”路径下的证书和密钥文件。此外,MongoDB将使用位于“/etc/ssl/mongodb-ca.pem”路径下的证书颁发机构(CA)文件进行验证。