mongodb的配置文件詳解()

官方地址  https://docs.mongodb.com/manual/reference/configuration-options/#configuration-filejavascript

如下頁面描述了MongoDB 4.0中可用的配置選項。有關其餘版本MongoDB的配置文件選項,請參閱相應版本的MongoDB手冊。html

配置文件

您能夠使用配置文件在啓動時配置mongodmongos實例。配置文件包含mongod與 mongos命令行選項等效的設置請參閱配置文件設置和命令行選項映射java

使用配置文件能夠簡化管理mongod和 mongos選項,尤爲適用於大規模部署。您還能夠向配置文件添加註釋以解釋服務器的設置。web

在Linux上,/etc/mongod.conf使用包管理器安裝MongoDB時會包含默認配置文件。正則表達式

在Windows上, 安裝期間包含默認配置文件。<install directory>/bin/mongod.cfgmongodb

在macOS上,安裝不包含默認配置文件; 相反,要使用配置文件,請建立一個文件。shell

文件格式

在2.6版中更改: MongoDB 2.6引入了基於YAML的配置文件格式。2.4配置文件的格式還是向後兼容性。數據庫

MongoDB配置文件使用YAML格式 [1]express

如下示例配置文件包含mongod 能夠適應本地配置的幾個設置:json

注意

YAML不支持縮進的製表符:使用空格代替。

複製
複製
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 ... 

包括在官方的MongoDB包的Linux軟件包init腳本依賴於特定的值systemLog.pathstorage.dbPathprocessManagement.fork若是在默認配置文件中修改這些設置,則mongod可能沒法啓動。

[1] YAML是JSON的超集

使用配置文件

要配置mongodmongos使用配置文件,請使用--config選項或 -f選項指定配置文件,如如下示例所示:

例如,如下用途mongod --config <configuration file> mongos --config <configurationfile>

複製
複製
mongod --config /etc/mongod.conf

mongos --config /etc/mongos.conf

您還可使用-f別名指定配置文件,以下所示:

複製
複製
mongod -f /etc/mongod.conf

mongos -f /etc/mongos.conf

若是您從軟件包安裝並使用系統的init腳本啓動了MongoDB ,那麼您已經在使用配置文件。

核心選項

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> # COMMENT additional component verbosity settings omitted for brevity 
systemLog. verbosity

類型:整數

默認值:0

在3.0版中更改。

默認的日誌信息 冗長級別的組件詳細級別肯定MongoDB輸出信息和調試消息的數量

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。

要對命名組件使用不一樣的詳細級別,請使用組件的詳細程度設置。例如,使用systemLog.component.accessControl.verbosity專門爲ACCESS組件設置詳細級別

請參閱systemLog.component.<name>.verbosity特定組件詳細程度設置的設置。

有關設置日誌詳細級別的各類方法,請參閱 配置日誌詳細級別

systemLog. quiet

輸入:boolean

運行mongosmongod處於安靜模式,試圖限制輸出量。

systemLog.quiet建議用於生產系統,由於它可使在特定的鏈接變得更加困難跟蹤問題。

systemLog. traceAllExceptions

輸入:boolean

打印詳細信息以進行調試。用於支持相關故障排除的其餘日誌記錄。

systemLog. syslogFacility

輸入:string

默認值:用戶

將消息記錄到syslog時使用的設施級別。您指定的值必須由操做系統的syslog實現支持。要使用此選項,您必須設置systemLog.destinationsyslog

systemLog. path

輸入:string

日誌文件的路徑,mongod或者mongos應該發送全部診斷日誌記錄信息,而不是標準輸出或主機的syslogMongoDB在指定的路徑上建立日誌文件。

Linux軟件包init腳本不但願systemLog.path更改默認值。若是使用Linux軟件包並進行更改systemLog.path,則必須使用本身的init腳本並禁用內置腳本。

systemLog. logAppend

輸入:boolean

默認值:False

 實例從新啓動true將新條目添加到現有日誌文件的末尾mongosmongod將其添加到現有日誌文件的末尾若是沒有此選項,將備份現有日誌並建立新文件。mongosmongodmongod

systemLog. logRotate

輸入:string

默認值:重命名

版本3.0.0中的新功能。

logRotate命令的行爲指定renamereopen

  • rename 重命名日誌文件。

  • reopen按照典型的Linux / Unix日誌輪換行爲關閉並從新打開日誌文件。使用reopen使用的Linux / Unix logrotate的工具時,以免日誌的損失。

    若是指定reopen,則還必須設置systemLog.logAppendtrue

systemLog. destination

輸入:string

MongoDB發送全部日誌輸出的目標。指定 filesyslog若是指定file,則還必須指定systemLog.path

若是未指定systemLog.destination,MongoDB會將全部日誌輸出發送到標準輸出。

警告

syslog當它將消息記錄,還不時的MongoDB發出消息後臺生成時間戳。這可能致使日誌條目的誤導時間戳,尤爲是在系統負載很重的狀況下。咱們建議使用file生產系統選項來確保準確的時間戳。

systemLog. timeStampFormat

輸入:string

默認值:iso8601-local

日誌消息中時間戳的時間格式。指定如下值之一:

描述
ctime 將時間戳顯示爲Wed Dec 31 18:17:54.811
iso8601-utc 以ISO-8601格式顯示協調世界時(UTC)的時間戳。例如,在大紀元開始的紐約:1970-01-01T00:00:00.000Z
iso8601-local 以ISO-8601格式顯示本地時間的時間戳。例如,在大紀元開始的紐約: 1969-12-31T19:00:00.000-0500

systemLog.component選項

複製
複製
systemLog: component: accessControl: verbosity: <int> command: verbosity: <int> # COMMENT some component verbosity settings omitted for brevity replication: verbosity: <int> heartbeats: verbosity: <int> rollback: verbosity: <int> storage: verbosity: <int> journal: verbosity: <int> recovery: verbosity: <int> write: verbosity: <int> 
systemLog.component.accessControl. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與訪問控制相關的組件的日誌消息詳細級別。ACCESS組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.command. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與命令相關的組件的日誌消息詳細級別。COMMAND組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.control. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與控制操做相關的組件的日誌消息詳細級別。CONTROL組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.ftdc. verbosity

類型:整數

默認值:0

版本3.2中的新功能。

與診斷數據收集操做相關的組件的日誌消息詳細級別。FTDC組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.geo. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與地理空間解析操做相關的組件的日誌消息詳細級別。GEO組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.index. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與索引操做相關的組件的日誌消息詳細級別。INDEX組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.network. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與網絡操做相關的組件的日誌消息詳細級別。NETWORK組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.query. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與查詢操做相關的組件的日誌消息詳細級別。QUERY組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.replication. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與複製相關的組件的日誌消息詳細級別。REPL組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.replication.heartbeats. verbosity

類型:整數

默認值:0

版本3.6中的新功能。

與心跳相關的組件的日誌消息詳細級別。REPL_HB組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.replication.rollback. verbosity

類型:整數

默認值:0

版本3.6中的新功能。

與回滾相關的組件的日誌消息詳細級別。ROLLBACK組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.sharding. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與分片相關的組件的日誌消息詳細級別。SHARDING組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.storage. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與存儲相關的組件的日誌消息詳細級別。STORAGE組件。

若是systemLog.component.storage.journal.verbosity未設置,則systemLog.component.storage.verbositylevel也適用於日記組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.storage.journal. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與日記相關的組件的日誌消息詳細級別。JOURNAL組件。

若是systemLog.component.storage.journal.verbosity未設置,則日記記錄組件具備與父存儲組件相同的詳細級別:即systemLog.component.storage.verbosity設置的 級別或默認的詳細級別。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.storage.recovery. verbosity

類型:整數

默認值:0

4.0版中的新功能。

與恢復相關的組件的日誌消息詳細級別。RECOVERY組件。

若是systemLog.component.storage.recovery.verbosity未設置,則systemLog.component.storage.verbositylevel也適用於恢復組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.transaction. verbosity

類型:整數

默認值:0

版本4.0.2中的新功能。

與事務相關的組件的日誌消息詳細級別。TXN組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。
systemLog.component.write. verbosity

類型:整數

默認值:0

版本3.0中的新功能。

與寫入操做相關的組件的日誌消息詳細級別。WRITE組件。

詳細程度能夠05

  • 0是MongoDB的默認日誌詳細級別,包括 信息性消息。
  • 15增長詳細級別,以包括 調試消息。

processManagement選項

複製
複製
processManagement: fork: <boolean> pidFilePath: <string> timeZoneInfo: <string> 
processManagement. fork

輸入:boolean

默認值:False

啓用在後臺運行mongosmongod處理守護程序模式默認狀況下mongosmongod不做爲守護程序運行:一般經過使用或使用處理守護進程的控制進程(例如,運行mongosmongod做爲守護程序 運行processManagement.forkupstartsystemd

Linux軟件包init腳本不但願processManagement.fork更改默認值。若是使用Linux軟件包並進行更改processManagement.fork,則必須使用本身的init腳本並禁用內置腳本。

processManagement. pidFilePath

輸入:string

指定一個文件位置來保存的進程ID mongosmongod 過程,其中mongosmongod將寫入其PID。這對於結合設置跟蹤mongosmongod處理 很是有用processManagement.fork若是沒有指定的processManagement.pidFilePath選項,則該進程不會建立PID文件。

processManagement. timeZoneInfo

輸入:string

加載時區數據庫的完整路徑。若是未提供此選項,則MongoDB將使用其內置時區數據庫。

Linux和macOS包中包含的配置文件/usr/share/zoneinfo默認設置時區數據庫路徑

內置時區數據庫是Olson / IANA時區數據庫的副本它與MongoDB版本一塊兒更新,但時區數據庫的發佈週期與MongoDB的發佈週期不一樣。能夠從https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip下載最新版本的時區數據庫的副本 

cloud選項

4.0版中的新功能。

複製
複製
cloud: monitoring: free: state: <string> tag: <string> 
cloud.monitoring.free. state

輸入:string

4.0版中的新功能:適用於MongoDB Community Edition。

啓用或禁用免費的MongoDB雲監控cloud.monitoring.free.state接受如下值:

runtime

默認。您能夠在運行時啓用或禁用免費監控。

要在運行時啓用或禁用免費監控,請參閱 db.enableFreeMonitoring()db.disableFreeMonitoring()

要在運行時使用訪問控制在運行時啓用或禁用免費監視,用戶必須具備所需的權限。查看db.enableFreeMonitoring()並 db.disableFreeMonitoring()瞭解詳情。

on 啓動時啓用免費監控; 即註冊免費監控。在啓動時啓用時,您沒法在運行時禁用自由監視。
off 不管您以前是否註冊過免費監控,都會在啓動時禁用免費監控。在啓動時禁用時,沒法在運行時啓用免費監視。

啓用後,自由監控狀態將保持啓用狀態,直到明確禁用。也就是說,每次啓動服務器時都不須要從新啓用。

有關相應的命令行選項,請參閱 --enableFreeMonitoring

cloud.monitoring.free. tag

輸入:string

4.0版中的新功能:適用於MongoDB Community Edition。

用於描述環境上下文的可選標記 標籤能夠在啓動時做爲免費MongoDB雲監控註冊的一部分發送

有關相應的命令行選項,請參閱 --enableFreeMonitoringTag

net選項

複製
複製
net: port: <int> bindIp: <string> bindIpAll: <boolean> maxIncomingConnections: <int> wireObjectCheck: <boolean> ipv6: <boolean> unixDomainSocket: enabled: <boolean> pathPrefix: <string> filePermissions: <int> ssl: sslOnNormalPorts: <boolean> # deprecated since 2.6 certificateSelector: <string> clusterCertificateSelector: <string> mode: <string> PEMKeyFile: <string> PEMKeyPassword: <string> clusterFile: <string> clusterPassword: <string> CAFile: <string> clusterCAFile: <string> CRLFile: <string> allowConnectionsWithoutCertificates: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> disabledProtocols: <string> FIPSMode: <boolean> compression: compressors: <string> serviceExecutor: <string> 
net. port

類型:整數

默認值:27017

MongoDB實例偵聽客戶端鏈接的TCP端口。

net. bindIp

輸入:string

默認值:localhost

注意

開始在MongoDB中3.6,mongosmongod綁定默認爲localhost。請參見默認綁定到Localhost

主機名和/或IP地址和/或完整的Unix域套接字路徑,mongos而且mongod應該監聽客戶端鏈接。您能夠附加mongosmongod任何界面。要綁定到多個地址,請輸入逗號分隔值列表。

localhost,/tmp/mongod.sock

小費

若是可能,請使用邏輯DNS主機名而不是IP地址,尤爲是在配置副本集成員或分片集羣成員時。邏輯DNS主機名的使用避免了因爲IP地址更改而致使的配置更改。

警告

在綁定到其餘IP地址以前,請考慮啓用安全檢查表中列出的訪問控制和其餘安全措施,以防止未經受權的訪問。

要綁定到全部IPv4地址,請輸入0.0.0.0

要綁定到全部IPv4和IPv6地址,請輸入::,0.0.0.0 或者使用該net.bindIpAll設置。

注意

net.bindIp而且net.bindIpAll是相互排斥的。也就是說,您能夠指定其中一個,但不能同時指定二者。

net. bindIpAll

輸入:boolean

默認值:False

版本3.6中的新功能。

若是爲true,則mongosmongod實例綁定到全部IP地址。當鏈接mongosmongod到可公開訪問的接口,確保已實施適當的身份驗證和防火牆的限制以保護數據庫的完整性。

警告

在綁定到其餘IP地址以前,請考慮啓用安全檢查表中列出的訪問控制和其餘安全措施,以防止未經受權的訪問。

或者,將net.bindIp設置設置爲 ::,0.0.0.0綁定到全部IP地址。

注意

net.bindIp而且net.bindIpAll是相互排斥的。也就是說,您能夠指定其中一個,但不能同時指定二者。

net. maxIncomingConnections

類型:整數

默認值:65536

要接受mongosmongod將接受的最大同時鏈接數若是此設置高於操做系統配置的最大鏈接跟蹤閾值,則此設置無效。

不要爲此選項分配過低的值,不然在正常的應用程序操做期間會遇到錯誤。

mongos若是您有一個客戶端建立多個鏈接並容許它們超時而不是關閉它們,這對於特別有用

在這種狀況下,請設置maxIncomingConnections爲略高於客戶端建立的最大鏈接數或鏈接池的最大大小的值。

此設置可防止mongos在各個分上引發鏈接尖峯這些尖峯可能會破壞分片羣集的操做和內存分配

net. wireObjectCheck

輸入:boolean

默認值:True

什麼時候truemongod或者mongos實例在收到客戶端時驗證全部請求,以防止客戶端將格式錯誤或無效的BSON插入MongoDB數據庫。

對於具備高度子文檔嵌套的對象,net.wireObjectCheck能夠對性能產生很小的影響。

net. ipv6

輸入:boolean

默認值:False

啓用或禁用IPv6支持。mongos或 mongod默認禁用IPv6支持。

net.unixDomainSocket選項

複製
複製
net: unixDomainSocket: enabled: <boolean> pathPrefix: <string> filePermissions: <int> 
net.unixDomainSocket. enabled

輸入:boolean

默認值:True

啓用或禁用UNIX域套接字上的偵聽。net.unixDomainSocket.enabled僅適用於基於Unix的系統。

若是net.unixDomainSocket.enabledtruemongos或者mongod監聽Unix套接字上。

mongosmongod過程老是Unix套接字上監聽,除非如下狀況之一是真實的:

版本2.6中的新功能:mongosmongod從官方.deb.rpm軟件包安裝的bind_ip配置127.0.0.1默認配置爲

net.unixDomainSocket. pathPrefix

輸入:string

默認值:/ tmp

UNIX套接字的路徑。net.unixDomainSocket.pathPrefix僅適用於基於Unix的系統。

若是此選項沒有值,則 mongosmongod進程會建立一個帶有/tmp前綴的套接字MongoDB在UNIX套接字上建立和偵聽,除非知足如下條件之一:

net.unixDomainSocket. filePermissions

輸入:int

默認值0700

設置UNIX域套接字文件的權限。

net.unixDomainSocket.filePermissions 僅適用於基於Unix的系統。

net.http選項

在版本3.6中更改: MongoDB 3.6刪除了已棄用的net.http選項。自3.2版以來,這些選項已被棄用。

net.ssl選項

複製
複製
net: ssl: sslOnNormalPorts: <boolean> # deprecated since 2.6 mode: <string> PEMKeyFile: <string> PEMKeyPassword: <string> certificateSelector: <string> clusterCertificateSelector: <string> clusterFile: <string> clusterPassword: <string> CAFile: <string> clusterCAFile: <string> CRLFile: <string> allowConnectionsWithoutCertificates: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> disabledProtocols: <string> FIPSMode: <boolean> 
net.ssl. sslOnNormalPorts

輸入:boolean

從2.6版開始不推薦使用:改成使用net.ssl.mode: requireSSL

mongos啓用或禁用TLS / SSL mongod

對於默認MongoDB端口上的全部鏈接或指定的端口net.ssl.sslOnNormalPorts,使用mongosmongod要求TLS / SSL加密 net.port默認狀況下,net.ssl.sslOnNormalPorts已禁用。

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. mode

輸入:string

版本2.6中的新功能。

啓用或禁用用於全部網絡鏈接的TLS / SSL或混合TLS / SSL。net.ssl.mode設置的參數能夠是如下之一:

描述
disabled 服務器不使用TLS / SSL。
allowSSL 服務器之間的鏈接不使用TLS / SSL。對於傳入鏈接,服務器接受TLS / SSL和非TLS /非SSL。
preferSSL 服務器之間的鏈接使用TLS / SSL。對於傳入鏈接,服務器接受TLS / SSL和非TLS /非SSL。
requireSSL 服務器僅使用和接受TLS / SSL加密鏈接。

從版本3.4開始,若是--sslCAFile或未ssl.CAFile指定且未使用x.509身份驗證,則在鏈接到啓用TLS / SSL的服務器時將使用系統範圍的CA證書存儲。

若是使用x.509身份驗證,--sslCAFilessl.CAFile 必須指定,除非使用--sslCertificateSelector

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. PEMKeyFile

輸入:string

注意

從4.0開始,在macOS或Windows上,您可使用操做系統安全存儲中的證書而不是PEM密鑰文件。見 net.ssl.certificateSelector

.pem同時包含TLS / SSL證書和密鑰文件。

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. PEMKeyPassword

輸入:string

用於解密證書密鑰文件的密碼(即 PEMKeyFile)。net.ssl.PEMKeyPassword僅在證書密鑰文件已加密時才使用該選項。在全部狀況下,mongosmongod將從全部日誌記錄和報告輸出中編輯密碼。

從MongoDB 4.0開始:

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. certificateSelector

輸入:string

版本4.0中的新功能:在Windows和macOS上可用做替代版本net.ssl.PEMKeyFile

net.ssl.PEMKeyFilenet.ssl.certificateSelector選項是互斥的。您只能指定一個。

指定證書屬性,以便從操做系統的證書存儲中選擇匹配的證書。

net.ssl.certificateSelector接受格式的參數,<property>=<value> 其中屬性能夠是如下之一:

屬性 值類型 描述
subject ASCII字符串 證書上的主題名稱或通用名稱
thumbprint 十六進制字符

表示爲十六進制的字節序列,用於經過SHA-1摘要標識公鑰。

thumbprint有時被稱爲一個 fingerprint

net.ssl. clusterCertificateSelector

輸入:string

版本4.0中的新功能:在Windows和macOS上可用做替代版本 net.ssl.clusterFile

net.ssl.clusterFilenet.ssl.clusterCertificateSelector選項是互斥的。您只能指定一個。

指定證書屬性,以便從操做系統的證書存儲中選擇用於內部身份驗證的匹配證書。

net.ssl.clusterCertificateSelector接受格式的參數,<property>=<value> 其中屬性能夠是如下之一:

屬性 值類型 描述
subject ASCII字符串 證書上的主題名稱或通用名稱
thumbprint 十六進制字符

表示爲十六進制的字節序列,用於經過SHA-1摘要標識公鑰。

thumbprint有時被稱爲一個 fingerprint

net.ssl. clusterFile

輸入:string

注意

從4.0開始,在macOS或Windows上,您可使用操做系統安全存儲中的證書而不是PEM密鑰文件。net.ssl.clusterCertificateSelector

.pem包含了X.509證書,密鑰文件的文件會員認證 的集羣或副本集。

若是net.ssl.clusterFile未指定.pem內部羣集身份驗證或備用 文件net.ssl.clusterCertificateSelector,則羣集將使用設置中.pem指定的 文件PEMKeyFile或由net.ssl.certificateSelector返回的證書

若是使用x.509身份驗證,--sslCAFilessl.CAFile 必須指定,除非使用--sslCertificateSelector

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. clusterPassword

輸入:string

版本2.6中的新功能。

用於解密指定的x.509證書密鑰文件的密碼--sslClusterFilenet.ssl.clusterPassword僅在證書密鑰文件已加密時才使用該選項。在全部狀況下,mongosmongod 將從全部日誌記錄和報告輸出中編輯密碼。

從MongoDB 4.0開始:

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. CAFile

輸入:string

.pem包含證書頒發機構的根證書鏈文件。.pem使用相對路徑或絕對路徑指定文件的文件名 

從4.0開始,在macOS或Windows上,您可使用操做系統安全存儲中的證書而不是PEM密鑰文件。net.ssl.certificateSelector使用安全存儲時,您不須要,但也能夠指定net.ssl.CAFile

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. clusterCAFile

輸入:string

版本4.0.3中的新增功能

.pem包含證書頒發機構的根證書鏈文件,用於驗證由創建鏈接的客戶端提供的證書。.pem使用相對路徑或絕對路徑指定文件的文件名

若是net.ssl.clusterCAFile未指定.pem用於驗證來自創建鏈接的客戶端的證書的.pem文件,則羣集將使用net.ssl.CAFile選項中指定文件

net.ssl.clusterCAFile 容許您使用單獨的證書頒發機構來驗證客戶端到服務器和服務器到TLS握手的客戶端部分。

從4.0開始,在macOS或Windows上,您可使用操做系統安全存儲中的證書而不是PEM密鑰文件。net.ssl.clusterCertificateSelector使用安全存儲時,您不須要,但也能夠指定net.ssl.clusterCAFile

須要net.ssl.CAFile設置。

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. CRLFile

輸入:string

.pem包含證書吊銷列表文件。.pem使用相對路徑或絕對路徑指定文件的文件名

注意

從MongoDB 4.0開始,您沒法net.ssl.CRLFile在macOS上指定net.ssl.certificateSelector改用。

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. allowConnectionsWithoutCertificates

輸入:boolean

對於未提供證書的客戶端,mongosmongod在創建鏈接時繞過TLS / SSL證書驗證。

可是,對於提供證書的客戶端,mongosmongod使用指定的根證書鏈執行證書驗證, CAFile並拒絕具備無效證書的客戶端。

net.ssl.allowConnectionsWithoutCertificates若是您的混合部署包含不能或不能向mongos提供證書的客戶端,請使用該選項mongod

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. allowInvalidCertificates

輸入:boolean

啓用或禁用羣集中其餘服務器上的TLS / SSL證書的驗證檢查,並容許使用無效證書進行鏈接。

注意

從MongoDB 4.0開始,若是您指定 --sslAllowInvalidCertificates使用x.509身份驗證,則無效證書僅足以創建TLS / SSL鏈接,但 不足以進行身份驗證。ssl.allowInvalidCertificates: true

使用該net.ssl.allowInvalidCertificates設置時,MongoDB會記錄有關使用無效證書的警告。

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. allowInvalidHostnames

輸入:boolean

默認值:False

版本3.0中的新功能。

若是net.ssl.allowInvalidHostnamestrue,MongoDB的禁用TLS / SSL證書的主機名的驗證,容許mongod鏈接到MongoDB的狀況下,若是主機名的證書不指定主機名匹配。

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

net.ssl. disabledProtocols

輸入:string

3.0.7版中的新功能。

阻止使用TLS / SSL運行的MongoDB服務器接受使用特定協議的傳入鏈接。要指定多個協議,請使用逗號分隔的協議列表。

net.ssl.disabledProtocols識別如下協議:TLS1_0TLS1_1, TLS1_2,並開始在版本4.0.4(和3.6.9) TLS1_3

  • 在macOS上,您沒法禁用TLS1_1和保留二者TLS1_0並 TLS1_2啓用。例如,您必須至少禁用其餘兩個中的一個TLS1_0,TLS1_1
  • 要列出多個協議,請指定爲逗號分隔的協議列表。例如TLS1_0,TLS1_1
  • 指定沒法識別的協議將阻止服務器啓動。
  • 指定的禁用協議會覆蓋任何默認禁用的協議。

從版本4.0開始,若是系統上有TLS 1.1+,MongoDB將禁用TLS 1.0。要啓用已禁用TLS 1.0,指定nonenet.ssl.disabledProtocols請參見禁用TLS 1.0

副本集和分片集羣的成員必須至少說一個共同的協議。

也能夠看看

禁止協議

net.ssl. FIPSMode

輸入:boolean

啓用或禁用使用TLS / SSL庫的FIPS模式爲mongosmongod您的系統必須具備符合FIPS的庫才能使用該net.ssl.FIPSMode選項。

注意

FIPS兼容的TLS / SSL僅在MongoDB Enterprise中可用有關更多信息,請參閱 配置MongoDB for FIPS

net.compression選項

複製
複製
net: compression: compressors: <string> 
net.compression. compressors

默認值:snappy

版本3.4中的新功能。

指定用於此實例mongodmongos實例之間通訊的默認壓縮器

  • 若是實例是副本集或分片羣集的一部分,則部署的其餘成員
  • 一個mongo
  • 支持OP_COMPRESSED郵件格式的驅動程序

MongoDB支持如下壓縮器:

  • 瞬間
  • zlib(在MongoDB 3.6或更高版本中可用)

在3.6和4.0版本mongod並 mongos默認啓用網絡壓縮與 snappy做爲壓縮機。

要禁用網絡壓縮,請將值設置爲disabled

重要

當雙方都啓用網絡壓縮時,將壓縮消息。不然,各方之間的消息將被解壓縮。

若是指定多個壓縮器,則列出壓縮器的順序以及通訊啓動器都很重要。例如,若是mongoshell指定了如下網絡壓縮器zlib,snappymongod指定 snappy,zlib,則mongoshell和 mongoduses 之間的消息zlib

若是各方不共享至少一個公共壓縮器,則各方之間的消息是未壓縮的。例如,若是 mongoshell指定網絡壓縮器 zlibmongod指定snappy,則mongoshell和之間的消息mongod不會被壓縮。

net. serviceExecutor

輸入:string

默認值:同步

版本3.6中的新功能。

肯定線程和執行模型mongosmongod用於執行客戶端請求。--serviceExecutor選項接受如下值之一:

描述
synchronous mongosmongod使用同步網絡和管理上的每一個鏈接其網絡的線程池。之前版本的MongoDB以這種方式管理線程。
adaptive mongosmongod與管理關於每一個請求基礎的線程的自適應線程池使用了新的實驗性異步網絡模式。當存在比數據庫請求更多的非活動鏈接時,此模式應具備更一致的性能並使用更少的資源。

security選項

複製
複製
security: keyFile: <string> clusterAuthMode: <string> authorization: <string> transitionToAuth: <boolean> javascriptEnabled: <boolean> redactClientLogData: <boolean> sasl: hostName: <string> serviceName: <string> saslauthdSocketPath: <string> enableEncryption: <boolean> encryptionCipherMode: <string> encryptionKeyFile: <string> kmip: keyIdentifier: <string> rotateMasterKey: <boolean> serverName: <string> port: <string> clientCertificateFile: <string> clientCertificatePassword: <string> clientCertificateSelector: <string> serverCAFile: <string> ldap: servers: <string> bind: method: <string> saslMechanisms: <string> queryUser: <string> queryPassword: <string> useOSDefaults: <boolean> transportSecurity: <string> timeoutMS: <int> userToDNMapping: <string> authz: queryTemplate: <string> 
security. keyFile

輸入:string

密鑰文件的路徑,用於存儲MongoDB實例用於在分片集羣副本集中相互進行身份驗證的共享密鑰 keyFile暗示 security.authorization有關更多信息,請參閱內部驗證

security. clusterAuthMode

輸入:string

默認值:keyFile

版本2.6中的新功能。

用於羣集身份驗證的身份驗證模式。若是使用 內部x.509身份驗證,請在此處指定。此選項能夠具備如下值之一:

描述
keyFile 使用密鑰文件進行身份驗證。只接受密鑰文件。
sendKeyFile 用於滾動升級目的。發送密鑰文件進行身份驗證,但能夠接受密鑰文件和x.509證書。
sendX509 用於滾動升級目的。發送x.509證書進行身份驗證,但能夠接受密鑰文件和x.509證書。
x509 推薦的。發送x.509證書以進行身份​​驗證,並僅接受x.509證書。

從版本3.4開始,若是--sslCAFile或未ssl.CAFile指定且未使用x.509身份驗證,則在鏈接到啓用TLS / SSL的服務器時將使用系統範圍的CA證書存儲。

若是使用x.509身份驗證,--sslCAFilessl.CAFile 必須指定,除非使用--sslCertificateSelector

有關TLS / SSL和MongoDB的詳細信息,請參閱 爲客戶端配置mords和mongos以及TLS / SSL和 TLS / SSL配置

security. authorization

輸入:string

默認值:已禁用

啓用或禁用基於角色的訪問控制(RBAC)以管理每一個用戶對數據庫資源和操做的訪問。

將此選項設置爲如下之一:

描述
enabled 用戶只能訪問已被授予權限的數據庫資源和操做。
disabled 用戶能夠訪問任何數據庫並執行任何操做。

有關更多信息,請參閱基於角色的訪問控制

security.authorization設置僅適用於mongod

security. transitionToAuth

輸入:boolean

默認值:False

在新版本3.4:容許mongodmongos接受和創造,並從其它身份驗證和非認證鏈接mongod ,並mongos在部署實例。用於執行副本集或分片集羣從非身份驗證配置到內部身份驗證的滾動轉換須要指定內部身份驗證機制,例如 security.keyFile

例如,若是使用密鑰文件進行 內部驗證中,mongodmongos建立具備任何經認證的鏈接mongodmongos 在部署使用匹配密鑰文件。若是安全機制不匹配,則使用mongodmongos使用非認證鏈接。

mongodmongos運行security.transitionToAuth不會強制執行用戶訪問控制用戶能夠在沒有任何訪問控制檢查的狀況下鏈接到您的部署,並執行讀取,寫入和管理操做。

注意

mongodmongos運行內部身份驗證無需 security.transitionToAuth客戶端使用用戶訪問控制進行鏈接更新客戶端鏈接到mongodmongos使用適當的用戶 從新啓動以前mongodmongos沒有security.transitionToAuth

security. javascriptEnabled

輸入:boolean

默認值:True

啓用或禁用服務器端JavaScript執行禁用時,不能使用執行JavaScript代碼的服務器端執行的操做,例如$where查詢運算符,mapReduce 命令和db.collection.mapReduce()方法, group命令和db.collection.group() 方法。

security. redactClientLogData

輸入:boolean

3.4版中的新功能:僅適用於MongoDB Enterprise。

一個mongodmongos與運行security.redactClientLogData從新編輯登陸前伴隨一個給定的日誌事件的任何消息。這能夠防止mongodmongos將存儲在數據庫中的潛在敏感數據寫入診斷日誌。日誌中仍會顯示錯誤或操做代碼,行號和源文件名等元數據。

security.redactClientLogData靜態加密和 TLS / SSL(傳輸加密)結合使用, 以幫助符合法規要求。

例如,MongoDB部署可能會在一個或多個集合中存儲我的身份信息(PII)。mongodmongos記錄的事件,如那些涉及CRUD操做,分片的元數據等,這是可能的mongod或者mongos能夠暴露PII由於這些測井操做的一部分。mongodmongosrunning with security.redactClientLogData在輸出到日誌以前刪除伴隨這些事件的任何消息,從而有效地刪除PII。

因爲缺乏與日誌事件相關的數據,所以運行mongodmongos運行的診斷security.redactClientLogData可能更加困難。有關日誌輸出效果的示例,請參閱 進程日誌記錄手冊頁security.redactClientLogData

您能夠在運行mongodmongos 使用setParameterdatabase命令時啓用或禁用日誌編輯

複製
複製
db.adminCommand( { setParameter: 1, redactClientLogData : true | false } ) 

密鑰管理配置選項

複製
複製
security: enableEncryption: <boolean> encryptionCipherMode: <string> encryptionKeyFile: <string> kmip: keyIdentifier: <string> rotateMasterKey: <boolean> serverName: <string> port: <string> clientCertificateFile: <string> clientCertificatePassword: <string> clientCertificateSelector: <string> serverCAFile: <string> 
security. enableEncryption

輸入:boolean

默認值:False

版本3.2中的新功能:爲WiredTiger存儲引擎啓用加密。您必須設置爲true傳遞加密密鑰和配置。

企業特點

僅適用於MongoDB Enterprise。

security. encryptionCipherMode

輸入:string

默認值AES256-CBC

版本3.2中的新功能。

用於靜態加密的密碼模式:

模式 描述
AES256-CBC 密碼塊連接模式下的256位高級加密標準
AES256-GCM

伽羅瓦/計數器模式下的256位高級加密標準

僅在Linux上可用。

在4.0版中更改: Windows上的MongoDB Enterprise再也不支持AES256-GCM此密碼如今僅在Linux上可用。

企業特點

僅適用於MongoDB Enterprise。

security. encryptionKeyFile

輸入:string

版本3.2中的新功能。

經過KMIP 之外的進程管理密鑰時本地密鑰文件的路徑僅在經過KMIP之外的流程管理密鑰時設置。若是數據已使用KMIP加密,MongoDB將拋出錯誤。

須要security.enableEncryptiontrue

企業特點

僅適用於MongoDB Enterprise。

security.kmip. keyIdentifier

輸入:string

版本3.2中的新功能。

KMIP服務器中現有密鑰的惟一KMIP標識符。包括使用與標識符關聯的密鑰做爲系統密鑰。您只能在第一次爲mongod實例啓用加密時使用該設置要求 security.enableEncryption是真的。

若是未指定,MongoDB將請求KMIP服務器建立一個新密鑰以用做系統密鑰。

若是KMIP服務器沒法找到具備指定標識符的密鑰,或者數據已使用密鑰加密,則MongoDB將拋出錯誤。

企業特點

僅適用於MongoDB Enterprise。

security.kmip. rotateMasterKey

輸入:boolean

默認值:False

版本3.2中的新功能。

若是爲true,則旋轉主密鑰並從新加密內部密鑰庫。

企業特點

僅適用於MongoDB Enterprise。

也能夠看看

KMIP主鑰匙旋轉

security.kmip. serverName

輸入:string

版本3.2中的新功能。

運行KMIP服務器的密鑰管理解決方案的主機名或IP地址。要求security.enableEncryption是真的。

企業特點

僅適用於MongoDB Enterprise。

security.kmip. port

輸入:string

默認值:5696

版本3.2中的新功能。

KMIP服務器正在偵聽的端口號。須要 security.kmip.serverName提供。要求security.enableEncryption是真的。

企業特點

僅適用於MongoDB Enterprise。

security.kmip. clientCertificateFile

輸入:string

版本3.2中的新功能。

包含用於向MongipDB驗證KMIP服務器的客戶端證書的路徑的字符串。須要security.kmip.serverName提供。

注意

從4.0開始,在macOS或Windows上,您可使用操做系統安全存儲中的證書而不是PEM密鑰文件。security.kmip.clientCertificateSelector

企業特點

僅適用於MongoDB Enterprise。

security.kmip. clientCertificatePassword

輸入:string

版本3.2中的新功能。

用於解密客戶端證書(即security.kmip.clientCertificateFile的密碼 ,用於向MongipDB驗證KMIP服務器。僅在證書已加密時使用該選項。

企業特點

僅適用於MongoDB Enterprise。

security.kmip. clientCertificateSelector

輸入:string

版本4.0中的新功能:在Windows和macOS上可用做替代版本security.kmip.clientCertificateFile

security.kmip.clientCertificateFilesecurity.kmip.clientCertificateSelector選項是互斥的。您只能指定一個。

指定證書屬性,以便從操做系統的證書存儲中選擇匹配的證書,以將MongoDB驗證到KMIP服務器。

security.kmip.clientCertificateSelector接受格式的參數,<property>=<value> 其中屬性能夠是如下之一:

屬性 值類型 描述
subject ASCII字符串 證書上的主題名稱或通用名稱
thumbprint 十六進制字符

表示爲十六進制的字節序列,用於經過SHA-1摘要標識公鑰。

thumbprint有時被稱爲一個 fingerprint

企業特點

僅適用於MongoDB Enterprise。

security.kmip. serverCAFile

輸入:string

版本3.2中的新功能。

CA文件的路徑。用於驗證與KMIP服務器的安全客戶端鏈接。

注意

從4.0開始,在macOS或Windows上,您可使用操做系統安全存儲中的證書而不是PEM密鑰文件。security.kmip.clientCertificateSelector使用安全存儲時,您不須要,但也能夠指定security.kmip.serverCAFile

企業特點

僅適用於MongoDB Enterprise。

security.sasl選項

複製
複製
security: sasl: hostName: <string> serviceName: <string> saslauthdSocketPath: <string> 
security.sasl. hostName

輸入:string

用於配置SASL和Kerberos身份驗證的徹底限定服務器域名。SASL主機名僅覆蓋SASL和Kerberos配置的主機名。

對於mongo外殼等的MongoDB工具鏈接到新的hostName,看 gssapiHostName在選項mongo殼和其餘工具。

security.sasl. serviceName

輸入:string

使用SASL註冊的服務名稱。此選項容許您 基於每一個實例覆蓋Kerberos主體名稱的默認Kerberos 服務名稱組件若是未指定,則默認值爲mongodb

MongoDB僅容許在啓動時設置此選項。將 setParameter不能更改此設置。

此選項僅在MongoDB Enterprise中可用。

重要

確保您的驅動程序支持備用服務名稱。對於mongo外殼等的MongoDB工具鏈接到新的serviceName,看到的 gssapiServiceName選項。

security.sasl. saslauthdSocketPath

輸入:string

UNIX域套接字文件的路徑saslauthd

security.ldap選項

複製
複製
security: ldap: servers: <string> bind: method: <string> saslMechanisms: <string> queryUser: <string> queryPassword: <string> useOSDefaults: <boolean> transportSecurity: <string> timeoutMS: <int> userToDNMapping: <string> authz: queryTemplate: <string> 
security.ldap. servers

輸入:string

3.4版中的新功能:僅適用於MongoDB Enterprise。

用於對其執行LDAP操做mongod或對其mongos執行身份驗證的LDAP服務器,或肯定用戶有權對給定數據庫執行的操做。若是指定的LDAP服務器具備任何複製的實例,則能夠在逗號分隔的列表中指定每一個複製的服務器的主機和端口。

若是LDAP基礎結構將LDAP目錄分區到多個LDAP服務器上,請將其任何複製實例指定一個 LDAP服務器security.ldap.serversMongoDB支持RFC 4511 4.1.10中定義的如下LDAP引用不要security.ldap.servers 用於列出基礎架構中的每一個LDAP服務器。

能夠在運行mongodmongos使用時 配置此設置setParameter

若是未設置,mongodmongos沒法使用LDAP身份驗證或受權

security.ldap.bind. queryUser

輸入:string

3.4版中的新功能:僅適用於MongoDB Enterprise。

身份與mongodmongos結合如,鏈接到或LDAP服務器上執行查詢時。

僅在知足如下任何條件時才須要:

您必須使用queryUserqueryPassword

若是未設置,mongod或者mongos不會嘗試綁定到LDAP服務器。

能夠在運行mongodmongos使用時 配置此設置setParameter

注意

Windows MongoDB部署可使用bindWithOSDefaults 而不是queryUserqueryPassword你不能同時指定queryUser,並bindWithOSDefaults在同一時間。

security.ldap.bind. queryPassword

輸入:string

3.4版中的新功能:僅適用於MongoDB Enterprise。

用於在使用時綁定到LDAP服務器的密碼 queryUser您必須使用queryPassword與 queryUser

若是未設置,mongod或者mongos不會嘗試綁定到LDAP服務器。

能夠在運行mongodmongos使用時 配置此設置setParameter

注意

Windows MongoDB部署可使用bindWithOSDefaults 而不是queryPasswordqueryPassword你不能同時指定queryPassword,並bindWithOSDefaults在同一時間。

security.ldap.bind. useOSDefaults

輸入:boolean

默認值:False

版本3.4中的新功能:僅適用於Windows平臺的MongoDB Enterprise。

鏈接到LDAP服務器時,容許mongodmongos使用Windows登陸憑據進行身份驗證或綁定。

僅在如下狀況下需

使用useOSDefaults替換queryUser和 queryPassword

security.ldap.bind. method

輸入:string

默認值:簡單

3.4版中的新功能:僅適用於MongoDB Enterprise。

用於向LDAP服務器進行身份驗證的方法mongodmongos用途。使用queryUserqueryPassword鏈接LDAP服務器。

method 支持如下值:

若是指定sasl,則可使用配置可用的SASL機制security.ldap.bind.saslMechanismsmongodmongos默認使用DIGEST-MD5機制。

security.ldap.bind. saslMechanisms

輸入:string

默認值:DIGEST-MD5

3.4版中的新功能:僅適用於MongoDB Enterprise。

逗號分隔的SASL機制列表,mongod或者mongos在對LDAP服務器進行身份驗證時可使用。mongodmongos與LDAP服務器必須贊成在至少一種機制。mongodmongos 動態加載在運行時安裝在主機上的任何SASL機制庫。

安裝和配置適當的庫二者的所選擇的SASL機構(一個或多個)mongodmongos主機和遠程LDAP服務器主機。默認狀況下,您的操做系統可能包含某些SASL庫。請參閱與每一個SASL機制關聯的文檔,以獲取有關安裝和配置的指導。

若是使用的是GSSAPI與使用SASL機制 Kerberos身份驗證,驗證瞭如下 mongodmongos主機:

Linux
Windows
若是鏈接到Active Directory服務器,Windows Kerberos配置會 在用戶登陸系統時自動生成  Ticket-Granting-Ticket 設置 useOSDefaults 爲 在鏈接到Active Directory服務器時 true 容許 mongod mongos 使用生成的憑據並執行查詢。

設置methodsasl使用此選項。

注意

有關SASL機制的完整列表,請參閱 IANA列表請參閱LDAP或Active Directory服務的文檔,以肯定與服務兼容的SASL機制。

MongoDB不是SASL機制庫的來源,MongoDB文檔也不是安裝或配置任何給定SASL機制的權威來源。有關文檔和支持,請遵循SASL機制庫供應商或全部者。

有關SASL的更多信息,請遵循如下資源:

security.ldap. transportSecurity

輸入:string

默認值:tls

3.4版中的新功能:僅適用於MongoDB Enterprise。

默認狀況下,mongodmongos建立與LDAP服務器的TLS / SSL安全鏈接。

對於Linux部署,您必須在/etc/openldap/ldap.conf文件中配置相應的TLS選項 您的操做系統的軟件包管理器經過libldap依賴項建立此文件做爲MongoDB Enterprise安裝的一部分 查看文檔中 的ldap.conf OpenLDAP的文檔 進行更完整的說明。TLS Options

對於Windows部署,必須將LDAP服務器CA證書添加到Windows證書管理工具。該工具的確切名稱和功能可能因操做系統版本而異。有關證書管理的更多信息,請參閱適用於您的Windows版本的文檔。

設置transportSecuritynone禁用TLS / SSL之間mongodmongos和LDAP服務器。

警告

設置transportSecuritynone發送明文信息之間可能憑證mongodmongos和LDAP服務器。

security.ldap. timeoutMS

輸入:int

默認值:10000

3.4版中的新功能:僅適用於MongoDB Enterprise。

以毫秒爲單位mongodmongos應等待LDAP服務器響應請求的時間量。

timeoutMS若是失敗源是鏈接超時,則增長值可能會阻止MongoDB服務器和LDAP服務器之間的鏈接失敗。減小值會timeoutMS減小MongoDB等待LDAP服務器響應的時間。

能夠在運行mongodmongos使用時 配置此設置setParameter

security.ldap. userToDNMapping

輸入:string

3.4版中的新功能:僅適用於MongoDB Enterprise。

將提供給用戶名mongodmongos用於身份驗證的用戶名映射到LDAP專有名稱(DN)。userToDNMapping在如下狀況下,您可能須要使用將用戶名轉換爲LDAP DN:

  • 使用簡單的LDAP綁定執行LDAP身份驗證,其中用戶使用不是完整LDAP DN的用戶名對MongoDB進行身份驗證。
  • 使用它須要DN。LDAP authorization query template
  • 使用不一樣的身份驗證機制(例如x509,kerberos)將使用身份驗證的客戶端的用戶名轉換爲完整的LDAP DN以進行受權。

userToDNMapping指望引用封閉的JSON字符串表示有序的文檔數組。每一個文檔都包含一個正則表達式match以及用於轉換傳入用戶名的模板substitutionldapQuery模板。

數組中的每一個文檔都具備如下形式:

複製
複製
{
  match: "<regex>" substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>" } 
領域 描述
match ECMAScript格式的正則表達式(regex),用於匹配提供的用戶名。每一個括號括起的部分表示由substitution使用的正則表達式捕獲組ldapQuery "(.+)ENGINEERING" "(.+)DBA"
substitution

LDAP專有名稱(DN)格式化模板,用於將match正則表達式匹配的認證名稱轉換爲LDAP DN。每一個大括號括起來的數字值都由經過正則表達式從認證用戶名中提取的相應正則表達式捕獲組替換match

替換的結果必須是RFC4514轉義字符串。

"cn={0},ou=engineering,dc=example,dc=com"
ldapQuery 一種LDAP查詢格式模板,用於將match正則表達式匹配的身份驗證名稱插入到依賴於RFC4515和RFC4516編碼的LDAP查詢URI中。每一個大括號括起來的數值都將由經過表達式從認證用戶名中提取的相應正則表達式捕獲組替換matchmongod或者mongos對LDAP服務器執行查詢以檢索通過身份驗證的用戶的LDAP DN。mongod或者只mongos須要一個返回的結果便可使轉換成功,mongod或者mongos跳過此轉換。 "ou=engineering,dc=example,dc=com??one?(user={0})"

注意

的解釋 RFC4514, RFC4515, RFC4516,或LDAP查詢超出範圍的MongoDB的文檔。請直接查看RFC或使用您首選的LDAP資源。

對於陣列中的每一個文檔,您必須使用substitution或 ldapQuery不能在同一文檔中指定二者。

執行身份驗證或受權,mongodmongos按給定順序逐步遍歷陣列中的每一個文檔時,請根據match過濾器檢查身份驗證用戶名若是找到匹配項, mongodmongos應用轉換並使用輸出來驗證用戶。mongod或者mongos不檢查數組中的剩餘文檔。

若是給定文檔與提供的身份驗證名稱不匹配,或者文檔描述的轉換失敗,mongod或者mongos繼續經過文檔列表以查找其餘匹配項。若是在任何文檔中找不到匹配項,mongodmongos返回錯誤。

如下顯示了兩個轉換文檔。第一個文檔與任何以字符串結尾的字符串匹配@ENGINEERING,將後綴以前的任何內容放入正則表達式捕獲組中。第二個文檔與任何以字符串結尾的字符串匹配@DBA,將後綴以前的任何內容放入正則表達式捕獲組中。

重要

您必須將數組userToDNMapping做爲字符串傳遞給它。

複製
複製
"[
   {
      match: "(.+)@ENGINEERING.EXAMPLE.COM",
      substitution: "cn={0},ou=engineering,dc=example,dc=com"
   },
   {
      match: "(.+)@DBA.EXAMPLE.COM",
      ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})"

   }

]"

具備用戶名的用戶alice@ENGINEERING.EXAMPLE.COM與第一個文檔匹配。正則表達式捕獲組{0}對應於字符串 alice結果輸出是DN "cn=alice,ou=engineering,dc=example,dc=com"

具備用戶名的用戶bob@DBA.EXAMPLE.COM與第二個文檔匹配。正則表達式捕獲組{0}對應於字符串bob結果輸出是LDAP查詢 "ou=dba,dc=example,dc=com??one?(user=bob)"mongod或者mongos對LDAP服務器執行此查詢,返回結果 "cn=bob,ou=dba,dc=example,dc=com"

若是userToDNMapping未設置,mongodmongos在嘗試針對LDAP服務器對用戶進行身份驗證或受權時不對用戶名應用任何轉換。

能夠在運行mongodmongos使用 setParameterdatabase命令配置此設置

security.ldap.authz. queryTemplate

輸入:string

3.4版中的新功能:僅適用於MongoDB Enterprise。

格式化的相對LDAP查詢URL,符合RFC4515RFC4516mongod用於獲取通過身份驗證的用戶所屬的LDAP組。該查詢與指定的主機相關security.ldap.servers

使用{USER}URL中佔位符替換通過身份驗證的用戶名,或者若是userToDNMapping指定了a,則使用轉換後的用戶名

構造查詢URL時,請確保LDAP參數的順序遵循RFC4516:

複製
複製
[ dn  [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ] 

若是您的查詢包含屬性,則mongod假定查詢檢索此實體所屬的DN。

若是查詢不包含屬性,則mongod假定查詢檢索用戶所屬的全部實體。

對於查詢返回的每一個LDAP DN,mongod爲受權用戶分配admin數據庫上的相應角色若是admin數據庫上的角色 與DN徹底匹配,則mongod授予用戶分配給該角色的角色和權限。有關db.createRole()建立角色的更多信息,請參閱 方法。

此LDAP查詢返回LDAP用戶對象memberOf屬性中列出的全部組 

複製
複製
"{USER}?memberOf?base"

您的LDAP配置可能不包含memberOf做爲用戶架構一部分屬性,可能擁有用於報告組成員身份的不一樣屬性,或者可能不會經過屬性跟蹤組成員身份。根據您本身的惟一LDAP配置配置查詢。

若是未設置,mongod則沒法受權用戶使用LDAP。

能夠mongod使用 setParameterdatabase命令在運行時配置此設置

注意

RFC4515, RFC4516或LDAP查詢的解釋超出了MongoDB文檔的範圍。請直接查看RFC或使用您首選的LDAP資源。

setParameter選項

setParameter

設置MongoDB服務器參數中描述的MongoDB參數或 參數

要在YAML配置文件中設置參數,請使用如下格式:

複製
複製
setParameter: <parameter1>: <value1> <parameter2>: <value2> 

例如,要enableLocalhostAuthBypass在配置文件中指定

複製
複製
setParameter: enableLocalhostAuthBypass: false 

LDAP參數

setParameter. ldapUserCacheInvalidationInterval

輸入:int

默認值:30

使用LDAP受權的服務器mongodmongos服務器一塊兒使用

外部用戶緩存刷新之間的間隔(以秒爲單位)mongodmongos等待。外部用戶緩存以後mongodmongos刷新下一個LDAP受權用戶的操做,MongoDB從LDAP服務器從新獲取受權數據。

增長指定的值會增長時間量, mongod或者mongosLDAP服務器可能不一樣步,但會減小LDAP服務器上的負載。相反,減少指定的值會減小時間,mongod或者mongos在增長LDAP服務器上的負載時LDAP服務器可能會不一樣步。

複製
複製
setParameter: ldapUserCacheInvalidationInterval: <int> 

storage選項

複製
複製
storage: dbPath: <string> indexBuildRetry: <boolean> repairPath: <string> journal: enabled: <boolean> commitIntervalMs: <num> directoryPerDB: <boolean> syncPeriodSecs: <int> engine: <string> mmapv1: preallocDataFiles: <boolean> nsSize: <int> quota: enforced: <boolean> maxFilesPerDB: <int> smallFiles: <boolean> journal: debugFlags: <int> commitIntervalMs: <num> wiredTiger: engineConfig: cacheSizeGB: <number> journalCompressor: <string> directoryForIndexes: <boolean> collectionConfig: blockCompressor: <string> indexConfig: prefixCompression: <boolean> inMemory: engineConfig: inMemorySizeGB: <number> 
storage. dbPath

輸入:string

默認值/data/db在Linux和macOS上,\data\db在Windows上

mongod實例存儲其數據的目錄

若是使用程序包管理系統安裝了MongoDB,請檢查/etc/mongod.conf程序包提供的 文件以查看指定的目錄。

storage.dbPath設置僅適用於mongod

Linux軟件包init腳本不但願storage.dbPath更改默認值。若是使用Linux軟件包並進行更改storage.dbPath,則必須使用本身的init腳本並禁用內置腳本。

storage. indexBuildRetry

輸入:boolean

默認值:True

指定是否mongod在下次啓動時重建不完整的索引。這適用於在mongod索引構建過程當中關閉或中止後從新啓動的狀況在這種狀況下,mongod始終刪除任何不完整的索引,而後,默認狀況下,嘗試重建它們。要中止mongod 重建索引,請將此選項設置爲false

在版本4.0中更改:該設置storage.indexBuildRetry不能與replication.replSetName一塊兒使用 

storage.indexBuildRetry設置僅適用於mongod

不適用於mongod使用內存存儲引擎的實例 

storage. repairPath

輸入:string

默認值_tmp_repairDatabase_<num>下的目錄 dbPath

僅適用於MMAPv1存儲引擎。

MongoDB在--repair操做期間將使用的工做目錄 --repair完成後, storage.repairPath目錄是空的,而且 dbPath包含了修復的文件。

storage.repairPath設置僅適用於mongod

storage.journal. enabled

輸入:boolean

默認值true在64位系統上,false在32位系統上

啓用或禁用持久性日誌以確保數據文件保持有效和可恢復。此選項僅在您指定storage.dbPath設置時適用 mongod默認狀況下啓用日記功能。

storage.journal.enabled設置僅適用於mongod

不適用於mongod使用內存存儲引擎的實例 

從MongoDB 4.0開始,您沒法指定--nojournal選項或使用WiredTiger存儲引擎的副本集成員。storage.journal.enabled: false

storage.journal. commitIntervalMs

類型:數字

默認值:100或30

版本3.2中的新功能。

mongod進程容許在日誌操做之間的最長時間(以毫秒爲單位)值的範圍爲1到500毫秒。較低的值會增長日誌的持久性,但會犧牲磁盤性能。默認日記賬提交間隔爲100毫秒。

在MMAPv1上,若是日誌與數據文件位於不一樣的塊設備(例如,物理卷,RAID設備或LVM卷)上,則默認日誌提交間隔爲30毫秒。另外,在MMAPv1上,當一個寫操做處於j:true掛起狀態時,mongod將減小commitIntervalMs到設定值的三分之一。

在WiredTiger上,默認日誌提交間隔爲100毫秒。此外,寫入j:true將致使日誌的當即同步。

storage.journal.commitIntervalMs設置僅適用於mongod

不適用於mongod使用內存存儲引擎的實例 

storage. directoryPerDB

輸入:boolean

默認值:False

true,MongoDB使用單獨的目錄來存儲每一個數據庫的數據。目錄位於storage.dbPath目錄下,每一個子目錄名稱對應於數據庫名稱。

在3.0版中更改:要更改storage.directoryPerDB現有部署選項,必須mongod使用新storage.directoryPerDB 值新數據目錄(storage.dbPath值)從新啓動實例,而後從新填充數據。

  • 對於獨立實例,您能夠mongodump在現有實例上使用,中止實例,使用新storage.directoryPerDB新數據目錄從新啓動 ,並用於 mongorestore填充新數據目錄。
  • 對於副本集,您能夠經過中止輔助成員,使用新storage.directoryPerDB 新數據目錄從新啓動來以滾動方式進行更新,並使用初始同步來填充新數據目錄。要更新全部成員,請先從輔助成員開始。而後逐步下降主要成員,並更新下降成員。

storage.directoryPerDB設置僅適用於mongod

不適用於mongod使用內存存儲引擎的實例 

storage. syncPeriodSecs

類型:數字

默認值:60

MongoDB經過fsync操做將數據刷新到數據文件以前能夠通過的時間

不要在生產系統上設置此值。在幾乎全部狀況下,您都應該使用默認設置。

警告

若是設置storage.syncPeriodSecs0,MongoDB將不會將內存映射文件同步到磁盤。

mongod過程很是快速地將數據寫入日誌而且懶惰地寫入數據文件。storage.syncPeriodSecs對沒有任何影響 journal的文件或日誌,可是若是storage.syncPeriodSecs設置爲0雜誌最終將消耗全部可用的磁盤空間。若是設置storage.syncPeriodSecs0用於測試目的,你也應該設置--nojournaltrue

serverStatus命令經過backgroundFlushing字段報告後臺刷新線程的狀態

storage.syncPeriodSecs設置僅適用於mongod

不適用於mongod使用內存存儲引擎的實例 

storage. engine

默認值wiredTiger

版本4.0中已更改: MongoDB不推薦使用MMAPv1存儲引擎。

mongod數據庫的存儲引擎可用值包括:

描述
wiredTiger 指定WiredTiger存儲引擎
inMemory

指定內存存儲引擎

3.2版中的新功能:僅適用於MongoDB Enterprise。

mmapv1 (在MongoDB 4.0中不推薦使用) 指定MMAPv1存儲引擎

若是您嘗試啓動mongod一個 storage.dbPath包含經過比指定的其餘存儲引擎產生的數據文件storage.enginemongod 將拒絕啓動。

storage.mmapv1選項

棄用

MongoDB 4.0棄用了MMAPv1存儲引擎,並將在之後的版本中刪除MMAPv1。要將MMAPv1存儲引擎部署更改成 WiredTiger存儲引擎,請參閱:

複製
複製
storage: mmapv1: preallocDataFiles: <boolean> nsSize: <int> quota: enforced: <boolean> maxFilesPerDB: <int> smallFiles: <boolean> journal: debugFlags: <int> commitIntervalMs: <num> 
storage.mmapv1. preallocDataFiles

輸入:boolean

默認值:True

僅適用於MMAPv1存儲引擎。

啓用或禁用數據文件的預分配。默認狀況下,MongoDB不預先分配數據文件。

storage.mmapv1.preallocDataFiles設置僅適用於mongod

storage.mmapv1. nsSize

類型:整數

默認值:16

僅適用於MMAPv1存儲引擎。

命名空間文件的默認大小,即以文件結尾的文件.ns每一個集合和索引都算做命名空間。

使用此設置可控制新建立的命名空間文件的大小。此選項對現有文件沒有影響。命名空間文件的最大大小爲2047兆字節。默認值16兆字節提供大約24,000個命名空間。

storage.mmapv1.nsSize設置僅適用於mongod

storage.mmapv1.quota. enforced

類型:布爾值

默認值:false

僅適用於MMAPv1存儲引擎。

啓用或禁用每一個數據庫能夠擁有的數字數據文件的最大限制。使用該storage.mmapv1.quota.enforced選項運行時,MongoDB每一個數據庫最多包含8個數據文件。使用調整配額 storage.quota.maxFilesPerDB

storage.mmapv1.quota.enforced設置僅適用於mongod

storage.mmapv1.quota. maxFilesPerDB

類型:整數

默認值:8

僅適用於MMAPv1存儲引擎。

每一個數據庫的數據文件數限制。storage.mmapv1.quota.maxFilesPerDB 選項要求您設置storage.quota.enforced

storage.mmapv1.quota.maxFilesPerDB設置僅適用於mongod

storage.mmapv1. smallFiles

輸入:boolean

默認值:False

僅適用於MMAPv1存儲引擎。

true,MongoDB使用較小的默認文件大小。storage.mmapv1.smallFiles選項減小了數據文件的初始大小,並將最大大小限制爲512 MB。storage.mmapv1.smallFiles還將每一個日誌 文件的大小從1千兆字節減小到128兆字節。使用storage.mmapv1.smallFiles,若是你有大量的數據庫,每一個保存數據少許。

storage.mmapv1.smallFiles選項可能致使mongod實例建立大量文件,這可能會影響較大數據庫的性能。

storage.mmapv1.smallFiles設置僅適用於mongod

storage.mmapv1.journal. debugFlags

類型:整數

僅適用於MMAPv1存儲引擎。

提供測試功能。不適用於通常用途,在系統異常關閉的狀況下會影響數據文件的完整性。

storage.mmapv1.journal.debugFlags選項僅適用於mongod

storage.mmapv1.journal. commitIntervalMs

類型:數字

從版本3.2開始不推薦使用 MongoDB 3.2棄用了該 storage.mmapv1.journal.commitIntervalMs設置。請 storage.journal.commitIntervalMs改用。

不推薦使用的設置充當新storage.journal.commitIntervalMS設置的別名, 並適用於MMAPv1或WiredTiger存儲引擎。

storage.wiredTiger選項

複製
複製
storage: wiredTiger: engineConfig: cacheSizeGB: <number> journalCompressor: <string> directoryForIndexes: <boolean> collectionConfig: blockCompressor: <string> indexConfig: prefixCompression: <boolean> 
storage.wiredTiger.engineConfig. cacheSizeGB

輸入:float

WiredTiger將用於全部數據的內部緩存的最大大小。

在版本3.4中更改:值的範圍能夠從256MB到10TB,而且能夠是浮點數。此外,默認值也已更改。

從3.4開始,WiredTiger內部緩存默認使用較大的一個:

  • 50%(RAM - 1 GB),或
  • 256 MB。

例如,在總共4GB RAM的系統上,WiredTiger緩存將使用1.5GB的RAM()。相反,總共1.25 GB RAM的系統將爲WiredTiger緩存分配256 MB,由於這超過總RAM的一半減去1千兆字節()。0.5 (4 GB -GB) 1.5 GB0.5 (1.25 GB GB) 128 MB 256 MB

避免將WiredTiger內部緩存大小增長到其默認值以上。

使用WiredTiger,MongoDB同時使用WiredTiger內部緩存和文件系統緩存。

經過文件系統緩存,MongoDB自動使用WiredTiger緩存或其餘進程未使用的全部可用內存。

注意

storage.wiredTiger.engineConfig.cacheSizeGB限制WiredTiger內部高速緩存的大小。操做系統將使用可用的空閒內存用於文件系統緩存,這容許壓縮的MongoDB數據文件保留在內存中。此外,操做系統將使用任何空閒RAM來緩衝文件系統塊和文件系統緩存。

爲了容納額外的RAM使用者,您可能必須減小WiredTiger內部緩存大小。

默認的WiredTiger內部緩存大小值假定mongod每臺計算機有一個實例。若是單個計算機包含多個MongoDB實例,則應減小該設置以適應其餘mongod 實例。

若是您mongod沒法訪問系統中全部可用RAM 的容器(例如lxc, cgroupsDocker等)中運行,則必須設置爲小於容器中可用RAM量的值。確切的數量取決於容器中運行的其餘進程。storage.wiredTiger.engineConfig.cacheSizeGB

storage.wiredTiger.engineConfig. journalCompressor

默認值:snappy

版本3.0.0中的新功能。

用於壓縮WiredTiger日誌數據的壓縮類型。

可用的壓縮機有:

storage.wiredTiger.engineConfig. directoryForIndexes

輸入:boolean

默認值:false

版本3.0.0中的新功能。

storage.wiredTiger.engineConfig.directoryForIndexestruemongod存儲在數據(即下單獨子目錄索引和集合storage.dbPath)目錄。具體而言,mongod將索引存儲在已命名的子目錄中 index,並將集合數據存儲在名爲的子目錄中 collection

經過使用符號連接,您能夠爲索引指定其餘位置。具體來講,當mongod實例 運行時,將index子目錄移動到目標,並index在數據目錄下建立一個指向新目標的符號連接

storage.wiredTiger.collectionConfig. blockCompressor

默認值:snappy

版本3.0.0中的新功能。

用於壓縮集合數據的默認壓縮類型。您能夠在建立集合時基於每一個集合覆蓋此設置。

可用的壓縮機有:

storage.wiredTiger.collectionConfig.blockCompressor影響建立的全部集合。若是更改storage.wiredTiger.collectionConfig.blockCompressor現有MongoDB部署的值,則全部新集合都將使用指定的壓縮器。現有集合將繼續使用建立時指定的壓縮器,或當時的默認壓縮器。

storage.wiredTiger.indexConfig. prefixCompression

默認值:true

版本3.0.0中的新功能。

啓用或禁用索引數據的前綴壓縮

指定true索引數據storage.wiredTiger.indexConfig.prefixCompression啓用前綴壓縮,或false禁用索引數據的前綴壓縮。

storage.wiredTiger.indexConfig.prefixCompression設置會影響全部建立的索引。若是更改storage.wiredTiger.indexConfig.prefixCompression現有MongoDB部署的值,則全部新索引都將使用前綴壓縮。現有索引不受影響。

storage.inmemory選項

複製
複製
storage: inMemory: engineConfig: inMemorySizeGB: <number> 
storage.inMemory.engineConfig. inMemorySizeGB

輸入:float

默認值:物理RAM的50%減去1 GB

在版本3.4中更改:值的範圍能夠從256MB到10TB,而且能夠是浮點數。

內存存儲引擎數據分配的最大內存量,包括索引,oplog(若是它 mongod是副本集,副本集或分片集羣元數據的一部分)等。

默認狀況下,內存存儲引擎使用50%的物理RAM減去1 GB。

企業特點

僅適用於MongoDB Enterprise。

operationProfiling選項

複製
複製
operationProfiling: mode: <string> slowOpThresholdMs: <int> slowOpSampleRate: <double> 
operationProfiling. mode

輸入:string

默認值off

指定應分析哪些操做如下分析器級別可用:

水平 描述
off 分析器已關閉,不會收集任何數據。這是默認的探查器級別。
slowOp 探查器收集的數據用於超過值的操做slowms
all 分析器收集全部操做的數據。

重要

分析能夠影響性能並與系統日誌共享設置。在生產部署中配置和啓用分析器以前,請仔細考慮任何性能和安全隱患。

有關潛在性能降低的更多信息,請參見Profiler Overhead

operationProfiling. slowOpThresholdMs

類型:整數

默認值:100

慢的操做時間閾值,單位爲毫秒。運行時間超過此閾值的操做被認爲很慢

logLevel設置0爲時,MongoDB 以肯定的速率記錄對診斷日誌的慢速操做 slowOpSampleRate在更高的 logLevel設置下,不管延遲如何,全部操做都會顯示在診斷日誌中。

版本4.0中已更改:slowOpThresholdMs設置可用於mongodmongos在早期版本中,slowOpThresholdMs 僅適用於mongod

  • 對於mongod狀況下,設定既影響診斷日誌,若是啓用,探查。
  • 對於mongos狀況下,該設置會影響診斷日誌,而不是探查,由於分析是不可用的mongos
operationProfiling. slowOpSampleRate

類型:雙

默認值:1.0

應分析或記錄慢速操做部分。 operationProfiling.slowOpSampleRate接受0到1之間的值,包括0和1。

版本4.0中已更改:slowOpSampleRate設置可用於mongodmongos在早期版本中,slowOpSampleRate 僅適用於mongod

  • 對於mongod狀況下,設定既影響診斷日誌,若是啓用,探查。
  • 對於mongos狀況下,該設置會影響診斷日誌,而不是探查,由於分析是不可用的mongos

replication選項

複製
複製
replication: oplogSizeMB: <int> replSetName: <string> secondaryIndexPrefetch: <string> enableMajorityReadConcern: <boolean> 
replication. oplogSizeMB

類型:整數

複製操做日誌的最大大小(以兆字節爲單位)(即oplog)。

注意

從MongoDB 4.0開始,oplog能夠超過其配置的大小限制,以免刪除majority commit point

默認狀況下,該mongod進程基於可用的最大空間量建立oplog對於64位系統,oplog一般佔可用磁盤空間的5%。

一旦mongod第一次建立了oplog,更改replication.oplogSizeMB選項將不會影響oplog的大小。

要更改正在運行的副本集成員的oplog大小,請使用 replSetResizeOplog管理命令。replSetResizeOplog使您能夠動態調整oplog的大小,而無需從新啓動該mongod過程。

有關更多信息,請參閱Oplog大小

replication.oplogSizeMB設置僅適用於mongod

replication. replSetName

輸入:string

做爲其mongod一部分的副本集的名稱副本集中的全部主機必須具備相同的集名稱。

若是您的應用程序鏈接到多個副本集,則每一個集應具備不一樣的名稱。某些驅動程序按副本集名稱對副本集進行鏈接。

replication.replSetName設置僅適用於mongod

從MongoDB 4.0開始:

replication. secondaryIndexPrefetch

輸入:string

默認值:所有

存儲引擎特定功能

replication.secondaryIndexPrefetch僅適用於mmapv1 存儲引擎。

從oplog應用操做以前副本集的輔助成員加載到內存中的索引默認狀況下,在從oplog應用操做以前,輔助節點將與操做相關的全部索引加載到內存中。

將此設置設置爲如下之一:

描述
none 輔助節點不會將索引加載到內存中。
all 輔助節點加載與操做相關的全部索引。
_id_only 輔助節點不會在已存在的_id索引以外的內存中加載其餘索引

replication.secondaryIndexPrefetch設置僅適用於mongod

replication. enableMajorityReadConcern

默認值:True

從MongoDB 3.6開始,MongoDB "majority"默認支持 讀取問題。

對於MongoDB 4.0.3+和3.6.1+,您能夠禁用讀取問題, "majority"以防止存儲緩存壓力使用三成員主輔仲裁器(PSA)體系結構固定部署。有關禁用讀取問題的詳細信息"majority",請參閱 禁用讀取關注點

要禁用,請設置replication.enableMajorityReadConcern爲false。

重要

一般,"majority"除非必要不然請避免禁用讀取問題。可是,若是您有一個具備主要輔助仲裁(PSA)體系結構的三成員副本集或具備三個成員PSA分片的分片集羣,請禁用以防止存儲緩存壓力致使部署沒法運行。

禁用"majority"讀取問題會禁用對更改流的支持

禁用"majority"不會影響 多文檔事務 ; 即,即便讀取關注「多數」被禁用,您也能夠爲多文檔事務指定讀取關注「多數」。

replication.enableMajorityReadConcern 對MongoDB版本沒有影響:4.0.0,4.0.1,4.0.2,3.6.0。

sharding選項

複製
複製
sharding: clusterRole: <string> archiveMovedChunks: <boolean> 
sharding. clusterRole

輸入:string

mongod實例在分片集羣中的角色將此設置設置爲如下之一:

描述
configsvr 將此實例做爲配置服務器啓動27019默認狀況下,實例在端口上啓動
shardsvr 啓動此實例爲碎片27018默認狀況下,實例在端口上啓動

注意

設置sharding.clusterRole要求mongod 實例使用複製運行。要將實例部署爲副本集成員,請使用該replSetName 設置並指定副本集的名稱。

sharding.clusterRole設置僅適用於mongod

sharding. archiveMovedChunks

輸入:boolean

在3.2版中更改:3.2開始,MongoDB false用做默認值。

在塊遷移期間,分片不會保存從分片遷移的文檔。

auditLog選項

注意

僅在MongoDB Enterprise 和MongoDB Atlas中可用

複製
複製
auditLog: destination: <string> format: <string> path: <string> filter: <string> 
auditLog. destination

輸入:string

版本2.6中的新功能。

設置後,auditLog.destination啓用審覈並指定全部審覈事件的位置mongosmongod發送。

auditLog.destination 能夠具備如下值之一:

描述
syslog

以JSON格式將審計事件輸出到syslog。在Windows上不可用。審覈消息的系統日誌嚴重性級別爲,info 而且設施級別爲user

系統日誌消息限制可能致使審計消息被截斷。審計系統既不會檢測到截斷,也不會發生錯誤。

console 將審覈事件輸出爲stdoutJSON格式。
file 將審計事件輸出到以指定auditLog.path格式指定 的文件 auditLog.format

注意

僅在MongoDB Enterprise 和MongoDB Atlas中可用

auditLog. format

輸入:string

版本2.6中的新功能。

輸出文件的格式審覈,若是destinationfile該 auditLog.format選項能夠具備如下值之一:

描述
JSON 將JSON格式的審覈事件輸出到指定的文件中auditLog.path
BSON 將BSON二進制格式的審計事件輸出到指定的文件中auditLog.path

將審覈事件打印爲JSON格式的文件會下降服務器性能,而不是以BSON格式打印到文件。

注意

僅在MongoDB Enterprise 和MongoDB Atlas中可用

auditLog. path

輸入:string

版本2.6中的新功能。

輸出文件的審覈,若是 destination有值fileauditLog.path 選項能夠採用完整路徑名或相對路徑名。

注意

僅在MongoDB Enterprise 和MongoDB Atlas中可用

auditLog. filter

類型:文檔的字符串表示形式

版本2.6中的新功能。

該過濾器來限制類型的操做審計系統記錄。該選項採用表單的查詢文檔的字符串表示形式:

複製
複製
{ <field1>: <expression1>, ... } 

<field>能夠是在該監查消息的任何字段,包括字段中返回 PARAM文件。這 <expression>是一個查詢條件表達式

要指定審覈篩選器,請將篩選器文檔括在單引號中以將文檔做爲字符串傳遞。

要在配置文件中指定審計篩選器,必須使用配置文件的YAML格式。

注意

僅在MongoDB Enterprise 和MongoDB Atlas中可用

snmp選項

注意

因爲SERVER-29352,macOS上的MongoDB Enterprise 支持SNMP 

複製
複製
snmp: subagent: <boolean> master: <boolean> 
snmp. subagent

輸入:boolean

若是snmp.subagenttrue,SNMP運行的子代理。有關更多信息,請參閱 在Linux上使用SNMP監控MongoDB

snmp.subagent設置僅適用於mongod

snmp. master

輸入:boolean

snmp.mastertrue,SNMP運行做爲一個主站。有關更多信息,請參閱 在Linux上使用SNMP監控MongoDB

snmp.master設置僅適用於mongod

mongos-only選項

在版本3.4中更改: MongoDB 3.4刪除sharding.chunkSize和 sharding.autoSplit設置。

複製
複製
replication: localPingThresholdMs: <int> sharding: configDB: <string> 
replication. localPingThresholdMs

類型:整數

默認值:15

mongos用於肯定哪些輔助副本集成員從客戶端傳遞讀取操做的ping時間(以毫秒爲單位)默認值15對應於全部客戶端驅動程序中的默認值

mongos收到容許讀取輔助成員的請求時, mongos意願:

  • 找到具備最低ping時間的集合的成員。

  • 構造一個副本集成員列表,該列表位於該集合中最近的合適成員的15毫秒的ping時間內。

    若是爲該replication.localPingThresholdMs選項指定值mongos則將構造在此值容許的延遲範圍內的副本成員列表。

  • 今後列表中隨機選擇要讀取的成員。

用於成員的replication.localPingThresholdMs設置比較的ping時間是最近ping時間的移動平均值,最多每10秒計算一次。所以,某些查詢可能會達到超過閾值的成員,直到mongos從新計算平均值。

有關 詳細信息,請參閱讀取首選項文檔 的「 讀取副本集首選項」部分

sharding. configDB

輸入:string

版本3.2中已更改。

配置服務器用於 分片羣集

從MongoDB 3.2開始,能夠將分片羣集的配置服務器部署爲副本集副本集配置服務器必須運行WiredTiger存儲引擎MongoDB 3.2不同意mongod爲配置服務器使用三個鏡像 實例。

指定配置服務器副本集名稱以及配置服務器副本集的至少一個成員的主機名和端口。

複製
複製
sharding:
  configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017,...

分片mongos羣集實例必須指定相同的配置服務器副本集名稱,但能夠指定副本集的不一樣成員的主機名和端口。

Windows服務選項

複製
複製
processManagement: windowsService: serviceName: <string> displayName: <string> description: <string> serviceUser: <string> servicePassword: <string> 
processManagement.windowsService. serviceName

輸入:string

默認值:MongoDB

的服務名稱mongosmongod做爲Windows服務運行時。將此名稱與和 操做一塊兒使用。net start<name>net stop <name>

您必須processManagement.windowsService.serviceName--install--remove選項一塊兒使用

processManagement.windowsService. displayName

輸入:string

默認值:MongoDB

在服務管理應用程序上爲MongoDB列出的名稱。

processManagement.windowsService. description

輸入:string

默認值:MongoDB服務器

運行mongosmongod服務說明。

您必須processManagement.windowsService.description--install選項一塊兒使用 

對於包含空格的描述,必須將描述括在引號中。

processManagement.windowsService. serviceUser

輸入:string

mongosmongod在某一用戶的上下文中的服務。此用戶必須具備「做爲服務登陸」權限。

您必須processManagement.windowsService.serviceUser--install選項一塊兒使用 

processManagement.windowsService. servicePassword

輸入:string

該密碼<user>用於mongosmongod與運行時processManagement.windowsService.serviceUser選項。

您必須processManagement.windowsService.servicePassword--install選項一塊兒使用 

 

 

 

配置文件設置和命令行選項映射

下表映射了配置文件設置以及相關mongod 和mongos命令行選項。

配置文件設置 mongodmongos命令行選項
auditLog.destination
auditLog.filter
auditLog.format
auditLog.path
cloud.monitoring.free.state
cloud.monitoring.free.tag
net.bindIp
net.bindIpAll
net.compression.compressors
net.ipv6
net.maxIncomingConnections
net.port
net.serviceExecutor
net.ssl.allowConnectionsWithoutCertificates
net.ssl.allowInvalidCertificates
net.ssl.allowInvalidHostnames
net.ssl.CAFile
net.ssl.certificateSelector
net.ssl.clusterCAFile
net.ssl.clusterCertificateSelector
net.ssl.clusterFile
net.ssl.clusterPassword
net.ssl.CRLFile
net.ssl.disabledProtocols
net.ssl.FIPSMode
net.ssl.mode
net.ssl.PEMKeyFile
net.ssl.PEMKeyPassword
net.ssl.sslOnNormalPorts
net.unixDomainSocket.enabled
net.unixDomainSocket.filePermissions
net.unixDomainSocket.pathPrefix
net.wireObjectCheck  
operationProfiling.mode
operationProfiling.slowOpSampleRate
operationProfiling.slowOpThresholdMs
processManagement.fork
processManagement.pidFilePath
processManagement.timeZoneInfo
processManagement.windowsService.description
processManagement.windowsService.displayName
processManagement.windowsService.serviceName
processManagement.windowsService.servicePassword
processManagement.windowsService.serviceUser
replication.enableMajorityReadConcern
replication.localPingThresholdMs
replication.oplogSizeMB
replication.replSetName
replication.secondaryIndexPrefetch
security.authorization
security.clusterAuthMode
security.enableEncryption
security.encryptionCipherMode
security.encryptionKeyFile
security.javascriptEnabled
security.keyFile
security.kmip.clientCertificateFile
security.kmip.clientCertificatePassword
security.kmip.keyIdentifier
security.kmip.port
security.kmip.rotateMasterKey
security.kmip.serverCAFile
security.kmip.serverName
security.kmip.clientCertificateSelector
security.ldap.authz.queryTemplate
security.ldap.bind.method
security.ldap.bind.queryPassword
security.ldap.bind.queryUser
security.ldap.bind.saslMechanisms
security.ldap.bind.useOSDefaults
security.ldap.servers
security.ldap.timeoutMS
security.ldap.transportSecurity
security.ldap.userToDNMapping
security.redactClientLogData
security.sasl.hostName
security.sasl.saslauthdSocketPath
security.sasl.serviceName
security.transitionToAuth
setParameter
sharding.archiveMovedChunks
sharding.clusterRole
sharding.configDB
snmp.master
snmp.subagent
storage.dbPath
storage.directoryPerDB
storage.engine
storage.indexBuildRetry
storage.inMemory.engineConfig.inMemorySizeGB
storage.journal.commitIntervalMs
storage.journal.enabled
storage.mmapv1.journal.commitIntervalMs  
storage.mmapv1.journal.debugFlags
storage.mmapv1.nsSize
storage.mmapv1.preallocDataFiles
storage.mmapv1.quota.enforced
storage.mmapv1.quota.maxFilesPerDB
storage.mmapv1.smallFiles
storage.repairPath
storage.syncPeriodSecs
storage.wiredTiger.collectionConfig.blockCompressor
storage.wiredTiger.engineConfig.cacheSizeGB
storage.wiredTiger.engineConfig.directoryForIndexes
storage.wiredTiger.engineConfig.journalCompressor
storage.wiredTiger.indexConfig.prefixCompression
systemLog.component.accessControl.verbosity
systemLog.component.command.verbosity
systemLog.component.control.verbosity
systemLog.component.ftdc.verbosity
systemLog.component.geo.verbosity
systemLog.component.index.verbosity
systemLog.component.network.verbosity
systemLog.component.query.verbosity
systemLog.component.replication.heartbeats.verbosity
systemLog.component.replication.rollback.verbosity
systemLog.component.replication.verbosity
systemLog.component.sharding.verbosity
systemLog.component.storage.journal.verbosity
systemLog.component.storage.recovery.verbosity
systemLog.component.storage.verbosity
systemLog.component.write.verbosity
systemLog.destination
systemLog.logAppend
systemLog.logRotate
systemLog.path
systemLog.quiet
systemLog.syslogFacility
systemLog.timeStampFormat
systemLog.traceAllExceptions
systemLog.verbosity
相關文章
相關標籤/搜索