mongo配置文件

MongoDB的配置文件为mongod.conf,默认情况下,MongoDB将在以下位置寻找配置文件:

1
2
3
/etc/mongod.conf
/usr/local/etc/mongod.conf
~/mongod.conf

如果没有在启动mongod时指定config 选项,则MongoDB将在上述位置寻找配置文件。

以下是MongoDB配置文件的主要内容:

  • network interfaces

    1
    2
    3
    4
    net:
    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
    11
    storage:
    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
    6
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/mongod.log
    logRotate: reopen
    verbosity: 0

    此部分指定MongoDB的日志记录选项。在此示例中,MongoDB将日志记录到文件中,并追加到文件末尾。此外,MongoDB将重新打开日志文件以进行日志轮换,并设置日志记录详细级别为0。

  • processManagement

    1
    2
    3
    processManagement:
    fork: true
    pidFilePath: /var/run/mongodb/mongod.pid

    此部分指定MongoDB进程管理选项。在此示例中,MongoDB将在后台运行,并将进程ID写入/var/run/mongodb/mongod.pid文件中。

  • replication

    1
    2
    replication:
    replSetName: rs0

    此部分配置MongoDB副本集的名称。在此示例中,MongoDB副本集的名称为rs0

  • security

    1
    2
    security:
    authorization: enabled

    此部分启用MongoDB的安全认证功能。在此示例中,MongoDB启用了安全认证。

  • operationProfiling

    1
    2
    3
    4
    operationProfiling:
    slowOpThresholdMs: 100
    mode: "slowOp"
    slowOpSampleRate: 0.5

    此部分配置MongoDB的操作分析选项。在此示例中,MongoDB将记录执行时间超过100毫秒的操作,并将操作分析模式设置为“慢操作”模式。此外,MongoDB将以50%的速率记录慢操作。

  • sharding

    1
    2
    sharding:
    clusterRole: configsvr

    此部分配置MongoDB分片集群的选项。在此示例中,MongoDB配置服务器被定义为集群角色。

  • mongos

    1
    2
    mongos:
    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
    5
    auditLog:
    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
    3
    backup:
    directoryPerDB: true
    oplogCompression: snappy

    此部分配置MongoDB的备份选项。在此示例中,MongoDB将为每个数据库创建单独的目录,并使用Snappy压缩算法压缩操作日志(Oplog)。

  • mmapv1

    1
    2
    3
    4
    storage:
    mmapv1:
    preallocDataFiles: true
    smallFiles: true

    此部分配置MongoDB的存储引擎选项。在此示例中,MongoDB将使用MMapv1存储引擎,并预先分配数据文件以优化性能。此外,MongoDB将使用小文件。

  • wiredTiger

    1
    2
    3
    4
    5
    storage:
    wiredTiger:
    engineConfig:
    cacheSizeGB: 2
    journalCompressor: snappy

    此部分配置MongoDB的WiredTiger存储引擎选项。在此示例中,MongoDB将使用WiredTiger存储引擎,并为缓存分配2GB内存。此外,MongoDB将使用Snappy压缩算法压缩日志记录。

  • cloud

    1
    2
    3
    4
    cloud:
    monitoring:
    free:
    state: "on"

    此部分配置MongoDB云监控选项。在此示例中,MongoDB将启用免费的云监控服务。

  • ftdc

    1
    2
    3
    ftdc:
    directoryPerDB: true
    enabled: true

    此部分配置MongoDB的诊断数据捕获(FTDC)选项。在此示例中,MongoDB将为每个数据库创建单独的目录,并启用FTDC功能。

  • snmp

    1
    2
    3
    snmp:
    subagent: true
    master: "127.0.0.1"

    此部分配置MongoDB的简单网络管理协议(SNMP)选项。在此示例中,MongoDB将作为子代理运行,并将主代理设置为“127.0.0.1”。

  • tls

    1
    2
    3
    4
    tls:
    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)文件进行验证。