MongoDB认识与生产环境配置

本文详述了MongoDB在生产环境中的配置,包括systemLog、processManagement、cloud、net、security等选项,强调了配置文件的YAML格式、端口设置、SSL/TLS安全及监控设置等关键点,旨在帮助读者理解并优化MongoDB部署。
摘要由CSDN通过智能技术生成

MongoDB作为NoSql数据库中最关系型的,是解决传统关系型数据库在业务不断复杂,数据量逐渐变大的大数据解决方案之一。

本文主要以官网为参考主题,介绍在搭建生产环境时,可能有用的配置,接下来的一段时间可能会频繁更改,一遍阅读官网,一遍记录。

写在前面:Mongod(分片存储数据),Mongos(路由处理)

参考:https://docs.mongodb.com/manual/reference/configuration-options/#processmanagement-options

1.配置文件配置之前的准备知识

配置文件的格式以YAML的的形式为基础,在此模式下,不可使用Tab,只能使用空格。

配置文件的作用是为了代替在进入MongoDB后使用命令行对环境配置,官方有这种配置与命令想对应的匹配文档。

mongod --config /etc/mongod.conf

mongos --config /etc/mongos.conf


mongod -f /etc/mongod.conf

mongos -f /etc/mongos.conf

与Hive等相同,使用 -f 来直接指定config文件

2.生产环境所选配置

2.1 systemLog

systemLog:
   verbosity: <int>
   quiet: <boolean>
   traceAllExceptions: <boolean>
   syslogFacility: <string>
   path: <string>
   logAppend: <boolean>
   logRotate: <string>
   destination: <string>
   timeStampFormat: <string>
   component:
      accessControl:
         verbosity: <int>
      command:
         verbosity: <int>

systemLog.verbosity:[0-5],是控制输出级别的控制项,0是默认级别,是存储信息的,1-5是Debug的级别。分别为Debug, Info,Warn,Error,Fatal

systemLog.quiet:boolean,限制输出的数量,不建议再生产环境中设置为此模式。

systemLog.traceAllExceptions,boolean,打印详细的调试信息。用于支持相关故障排除的其他日志记录。

systemLog.syslogFacility,String,默认为user,用于将日志信息存放在系统的sysLog中,但是需要将systemLog.destination属性设置为syslog,再生产环境中官网并不建议这么做,具体在下面说明。

systemLog.path,用于指定log文件的输出位置。对于linux用户,init脚本并不希望systemlog.path从默认值更改。如果使用Linux包并更改systemlog.path,则必须使用自己的init脚本并禁用内置脚本。

systemLog.logAppend,,默认为False。如果为true,则当mongos或mongod实例重新启动时,mongos或mongod会在现有日志文件的结尾追加新条目。如果没有这个选项,mongod将备份现有日志并创建一个新文件。

systemLog.logRotate,[rename,reopen],默认为rename。但是按照linux的思想,建议设置为reopen,可减少损失log的情况,但是需要将systemLog.logAppend设置为true。

systemLog.destination,[file,syslog],如果不设置此项,则会在标准输出中打印信息和Debug信息,设置为file时,也需要对systemLog.path进行设置。

systemLog.timeStampFormat,[ctime,iso8601-utc,iso8601-local],用于表示log日志中的时间的表示。

systemLog.component.accessControl.verbosity:与systemLog.verbosity作用类似。

systemLog.component.command.verbosity:与systemLog.verbosity作用类似。

systemLog.component.control.verbosity,等等,都是设置存储日志级别的。

2.2 processManagement Options

processManagement:
   fork: <boolean>
   pidFilePath: <string>
   timeZoneInfo: <string>

processManagement.fork:boolean,默认为false。可将mogos和mogod设为守护进程。在linux环境下如果将mongo设为守护进程,则需要使用自己的init脚本,并取消built-in脚本。(与systemLog.path相似)。

processManagement.pidFilePath。指定一个文件位置,用于保存Mongos或Mongod进程的进程ID,Mongos或Mongod将在其中写入其PID。这对于结合processManagement.fork设置跟踪mongos或mongod进程很有用。如果没有指定的processmanagement.pidfilepath选项,进程将不创建PID文件。

processManagement.timeZoneInfo。从中加载时区数据库的完整路径。如果不提供此选项,MongoDB将使用其内置的时区数据库。Linux和MacOS包中包含的配置文件默认情况下将时区数据库路径设置为/usr/share/zoneinfo。内置时区数据库是Olson/IANA时区数据库的副本。随着MongoDB的发布而更新,但时区数据库的发布周期不同于MongoDB的发布周期。可以从https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip下载最新版本的时区数据库的副本。

2.3 cloud Options

cloud:
   monitoring:
      free:
         state: <string>
         tags: <string>

Free monitoring provides information about your deployment, including:

  • Operation Execution Times
  • Memory Usage
  • CPU Usage
  • Operation Counts

监控提供之前24小时上传的数据,这中间如果进行了取消free-Monitor,开启监控,则也是提供上24小时的数据。

使用访问控制运行时,用户必须具有以下权限才能启用自由监视并获取状态:

{ resource: { cluster : true }, actions: [ "setFreeMonitoring", "checkFreeMonitoringStatus" ] }

The built-in clusterMonitor角色提供了这个权限。

cloud.monitoring.free.state:[runtime(default),on,off]。一旦启用,自由监控状态将保持启用状态,直到显式禁用。也就是说,每次启动服务器时不需要重新启用。

  runtime:您可以在运行时启用或禁用免费监视。

  on  :在启动时启用免费监控;即注册以进行免费监控。如果在启动时启用,则不能在运行时禁用自由监视。

  off  :在启动时禁用免费监视,无论您以前是否注册了免费监视。如果在启动时禁用,则无法在运行时启用自由监视。

cloud.monitoring.free.tags:用于描述环境上下文的可选标记。标签可以作为启动时free-MongoDB云监控注册的一部分发送。

2.4 net Options

net:
   port: <int>
   bindIp: <string>
   bindIpAll: <boolean>
   maxIncomingConnections: <int>
   wireObjectCheck: <boolean>
   ipv6: <boolean>
   unixDomainSocket:
      enabled: <boolean>
      pathPrefix: <string>
      filePermissions: <int>
   ssl:
      sslOnNormalPorts: <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值