下面描述的配置信息在MongoDB3.4版本中可用。只介绍常用的配置,不常用的以后遇到再添加。
配置文件
在使用mongod和mongos命令启动的时候,你可以使用这个配置文件。这个配置文件包含的内容和mongod和mongos的命令行参数是相同的。使用配置文件来管理mongod和mongos命令更加简单,方便,尤其在大范围部署的时候。你也可以添加注释来解释服务器的配置。
文件格式
MongoDB2.6版本之后,改变为使用YAML格式。下面这个配置包含了几个mongod命令的设置,你可以尝试应用到自己的本地配置中。
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port: 27017
setParameter:
enableLocalhostAuthBypass: false
使用配置文件
在使用mongod和mongos启动的时候,通过–config 或者 -f来指定配置文件。像下面这样:
mongod --config /etc/mongod.conf
mongos --config /etc/mongos.conf
mongod -f /etc/mongod.conf
mongos -f /etc/mongos.conf
核心配置
systemLog选项
实例如下:
systemLog:
verbosity: <int>
quiet: <boolean>
traceAllExceptions: <boolean>
path: <string>
logAppend: <boolean>
logRotate: <string>
destination: <string>
timeStampFormat: <string>
component:
accessControl:
verbosity: <int>
command:
verbosity: <int>
systemLog.verbosity
- 类型:integer
- 默认值:0
此选项表示日志信息的冗余水平。冗余水平决定了mongo日志输出的多少,可设置为0-5。如果要指定不同组件的日志冗余水平,就要分别指定,格式为: systemLog.component.(name).verbosity
systemLog.quiet
- 类型:boolean
quiet模式限制了日志输出的数量。生产环境下不建议使用quiet模式,这会使得跟踪问题变得很困难。
systemLog.traceAllExceptions
- 类型:boolean
为调试打印多余的信息,这些多余的信息有利于我们排除故障。
systemLog.path
- 类型:string
mongod和mongos命令启动后会发送日志,到这个选项指定的文件中。
systemLog.logAppend
- 类型:boolean
如果指定为true,那么重新启动mongo后,日志会在原来的文件中追加。如果指定为false,则会覆盖之前的日志文件。
systemLog.logRotate
- 类型:string
- 默认:rename
为了防止日志文件过大,此选项可指定rename和reopen。
rename使用时间戳重新命名旧的日志文件,新日志发送到新建的日志文件中。
reopen是关闭并重新打开日志文件。是典型的Linux/Unix的日志切换行为.必须手动重命名日志文件。
systemLog.destination
- 类型:string
日志的目标,可指定为file或者syslog。指定为file时也必须指定systemLog.path。如果不指定就是标准输出。
systemLog.timeStampFormat
- 类型:string
- 默认:iso8601-local
时间戳格式,可指定为ctime,iso8601-utc,iso8601-local.
systemLog.component
mongo把日志分为了多个组件,我们可以分别指定这些组件的冗余水平。
组件 | 说明 | 举例 |
---|---|---|
accessControl | 访问控制日志 | 比如验证 |
command | 命令日志 | 比如调用count方法 |
control | 控制日志 | 比如初始化 |
control | 控制日志 | 比如初始化 |
ftd | 统计和状态日志 | |
GEO | JSON结构 | |
index | 索引日志 | 比如创建索引 |
network | 网络日志 | 比如接收到连接 |
query | 查询日志 | 比如find |
replication | 副本日志 | 比如同步心跳 |
sharding | 分片日志 | 比如启动mongos |
storage | 存储日志 | 比如执行fsync命令。有一个子模块journal,如果journal不指定则默认是storage水平。 |
write | 写日志 | 比如update |
processManagement选项
processManagement:
fork: <boolean>
pidFilePath: <string>
processManagement.fork
- 类型:boolean
指定为true是damon模式运行。通常情况下我们都指定为true。
processManagement.pidFilePath
- 类型:string
mongo进程的pid文件
net选项
net选项有很多个,我们只介绍常用的。
net:
port: <int>
bindIp: <string>
maxIncomingConnections: <int>
wireObjectCheck: <boolean>
net.port
- 类型:integer
- 默认:27017
mongo实例监听的TCP端口。
net.bindIp
- 类型:string
- 默认:所有接口
一般指定为127.0.0.1。如果要指定多个地址,需要用逗号分开。
net.maxIncomingConnections
- 类型:integer
- 默认:65536
最大连接数,如果设置的数大于操作系统可接受的连接数,那么不生效。不要设置的值太小,否则在正常操作下也会产生错误。
net.wireObjectCheck
- 类型:boolean
- 默认:True
检测写入mongo数据的格式,如果格式错误则阻止写入。
security 选项
security:
authorization: <string>
javascriptEnabled: <boolean>
security.authorization
- 类型:string
是否需要验证,可以设置为enabled和disabled
security.javascriptEnabled
- 类型:boolean
- 默认:True
是否支持js。
storage选项
storage.dbPath
- 类型:string
指定数据库文件的位置