Docs Menu
Docs Home
/ /
MongoDB 명령줄 인터페이스
/

클러스터 구성 파일

이 페이지의 내용

  • 개요
  • 구성 속성
  • 샘플 구성 파일

mongocli 명령에는 MongoDB Cloud Manager 또는 MongoDB Ops Manager 클러스터를 만들거나 업데이트하기 위한 클러스터 구성 설정이 필요합니다. 구성 속성은 .yaml 또는 .json 파일을 통해 제공할 수 있습니다. 다음 섹션에서는 클러스터를 만들거나 업데이트하는 데 필요한 구성 속성 에 대해 설명하고 복사 및 수정할 수 있는 샘플 구성 파일 을 제공합니다.

다음 섹션에는 다음이 포함되어 있습니다.

  • cluster 전체 구성 속성

  • 복제본 세트 멤버 구성 속성

  • 샤드 cluster 구성 속성

MongoDB Cloud Manager 또는 MongoDB Ops Manager 클러스터를 생성하거나 업데이트하기 위한 구성 파일에는 다음과 같은 클러스터 전체 설정이 포함되어 있어야 합니다.

필드
유형
설명
name
문자열
cluster의 이름입니다.
version
문자열
배포할 mongod 프로세스의 버전입니다.
featureCompatibilityVersion
문자열
배포의 기능 호환성 버전 입니다.
processes
객체 배열
복제본 세트에 필요합니다. 각 mongod 프로세스에 대한 설정이 포함된 객체 배열입니다. 각 mongod 에는 복제본 세트 멤버 설정이 있습니다.
shards
객체 배열
샤드 cluster에 필요합니다. 각 샤드에 대한 설정이 포함된 객체 배열입니다.
config
객체
샤드 클러스터에 필요합니다. config 서버 복제본 세트가 포함된 객체입니다.
mongos
객체 배열
샤딩된 클러스터에 필요합니다. 각 mongos 인스턴스 에 대한 설정을 포함하는 객체 배열 입니다.

MongoDB Cloud Manager 또는 MongoDB Ops Manager 클러스터를 만들거나 업데이트하기 위한 구성 파일에는 각 복제본 세트 멤버에 대한 다음 설정이 포함될 수 있습니다.

필드
유형
설명
필수 사항입니다.
auditLogDestination
문자열

감사 를 활성화하고 모든 감사 이벤트를 보낼 위치를 지정하는 설정입니다. MongoDB CLI는 다음 값을 허용합니다.

  • syslog

    syslog에 감사 이벤트를 JSON 형식으로 출력합니다.

  • console

    stdout에 감사 이벤트를 JSON 형식으로 출력합니다.

  • file

    auditLogFormat 설정에 지정된 형식으로 auditLogPath 설정에 지정된 파일로 감사 이벤트를 출력합니다.

이 설정은 auditLog.destination 구성 파일 옵션에 해당합니다.

no
auditLogFormat
문자열

auditLogDestination 이(가) file(으)로 설정된 경우 감사 출력 파일의 형식입니다.

MongoDB CLI는 다음 값을 허용합니다.

  • JSON

    auditLogPath 설정에 지정된 파일에 감사 이벤트를 JSON 형식으로 출력합니다.

  • BSON

    감사 이벤트를 BSON 바이너리 형식으로 auditLogPath 설정에 지정된 파일로 출력합니다.

이 설정은 auditLog.format 구성 파일 옵션에 해당합니다.

no
auditLogPath
문자열

auditLogDestination 의 값이 file 인 경우 감사 를 위한 출력 파일입니다. auditLogPath 옵션은 절대 경로 이름 또는 상대 경로 이름을 사용할 수 있습니다.

이 설정은 auditLog.path 구성 파일 옵션에 해당합니다.

no
bindIp
문자열

mongos 또는 mongod 가 클라이언트 연결을 수신해야 하는 호스트 이름 및/또는 IP 주소 및/또는 전체 Unix 도메인 소켓 경로입니다. 모든 인터페이스에 mongos 또는 mongod 를 연결할 수 있습니다. 여러 주소를 바인딩하려면 쉼표로 구분된 값 목록을 입력합니다.

이 설정은 net.bindIp 구성 파일 옵션에 해당합니다.

no
bindIpAll
부울

mongos 또는 mongod 인스턴스가 모든 IPv4 주소에 바인딩되는지 여부를 나타내는 플래그(예: 0.0.0.0). ipv6 true 로 설정하면 bindIpAll 도 IPv6 주소(예: :: )에 바인딩됩니다. MongoDB CLI는 true 또는 false 값을 허용합니다.

이 설정은 net.bindIpAll 구성 파일 옵션에 해당합니다.

no
buildIndexes
부울

인덱스를 빌드 하도록 mongod 에 지시할지 여부를 나타내는 플래그입니다. MongoDB CLI 는 true 또는 false 값을 허용합니다.

이 설정은 buildIndexes 복제본 세트 구성 옵션에 해당합니다.

no
dbPath
문자열
mongod 인스턴스가 데이터를 저장하는 디렉토리입니다. 배포 후에는 수정할 수 없습니다.
delay
int

이 멤버가 프라이머리 멤버보다 지연되어야 하는 시간(초)입니다.

이 설정은 slaveDelay 복제본 세트 구성 옵션에 해당합니다.

no
directoryPerDB
부울

MongoDB가 각 데이터베이스의 데이터를 저장하기 위해 별도의 디렉토리를 사용해야 하는지 여부를 나타내는 플래그입니다. 디렉토리는 storage.dbPath 디렉토리 아래에 있으며 각 하위 디렉토리 이름은 데이터베이스 이름에 해당합니다.

기본적으로 directoryPerDBfalse입니다.

이 설정은 storage.directoryPerDB mongod 복제본 세트 구성 옵션에 해당합니다.

no
enableMajorityReadConcern
부울

읽기 고려 "majority" 활성화 여부를 나타내는 플래그입니다. 활성화된 경우 읽기 고려 "majority"다중 문서 트랜잭션과 연결되지 않은 읽기 작업에 대해 복제본 세트 구성원의 과반수가 읽은 데이터를 승인했음을 보장합니다.

기본적으로 enableMajorityReadConcerntrue입니다.

이 설정은 replication.enableMajorityReadConcern 복제본 세트 구성 옵션입니다.

no
hostname
문자열
복제본 세트에 추가할 호스트의 이름입니다. 이는 Ops Managermongod 프로세스를 배포하는 호스트입니다.
inMemory.engineConfig.inMemorySizeGB
float

가 복제본 세트, 복제본 세트 또는 샤딩된 클러스터 mongod 메타데이터 의 일부인 경우 인덱스, oplog 등 인메모리 스토리지 엔진 데이터에 할당할 최대 메모리 양입니다.

값의 범위는 256 MB에서 10 TB까지입니다. 기본적으로 storage engine은 물리적 RAM에서 1GB를 뺀 값의 50%를 사용합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

이 설정은 storage.inMemory.engineConfig.inMemorySizeGB mongod 복제본 세트 구성 옵션에 해당합니다.

no
ipv6
부울

배포에서 IPv6 을 지원하는지 여부를 나타내는 플래그입니다. MongoDB CLI는 true 또는 false 값을 허용합니다.

이 설정은 net.ipv6 구성 파일 옵션에 해당합니다.

no
logDestination
문자열

MongoDB가 모든 로그 출력을 전송하는 대상입니다. MongoDB CLI는 file 또는 syslog 값을 허용합니다. file 를 지정하는 경우 logPath 도 지정해야 합니다.

logDestination 을 지정하지 않으면 MongoDB는 모든 로그 출력을 표준 출력으로 보냅니다.

이 설정은 systemLog.destination 구성 파일 옵션에 해당합니다.

no
logPath
문자열
호스팅하다 에 있는 mongod 프로세스 에 대한 로그 파일 의 위치와 이름입니다.
oplogSizeMB
integer

복제 oplog 의 최대 크기(MB)입니다.

이 설정은 replication.oplogSizeMB 복제본 세트 구성 옵션에 해당합니다.

no
port
integer
복제본 세트 멤버의 포트입니다. mongod 프로세스는 지정된 포트에 대한 배타적 액세스 권한이 있어야 합니다.
priority
integer

투표 중 복제본 세트 멤버의 우선순위 입니다. 값은 다음과 같습니다.

  • 0

  • 1

투표권이 없는 멤버의 우선순위는 0 이어야 합니다. 우선 순위가 0 인 복제본 세트 멤버는 프라이머리가 될 수 없으며 trigger 투표를 할 수 없습니다.

tls.CAFile
문자열

.pem 인증 기관의 루트 인증서 체인이 포함된 파일입니다. 상대 경로 또는 절대 경로를 사용하여 .pem 파일의 이름을 지정합니다.

이 설정은 net.tls.CAFile mongod 복제본 세트 구성 옵션에 해당합니다.

no
tls.certificateKeyFile
문자열

.pem TLS 인증서와 키가 모두 포함된 파일입니다.

tls.certificateKeyFiletls.certificateSelector 은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.

이 설정은 net.tls.certificateKeyFile 에 해당합니다. mongod 복제본 세트 구성 옵션입니다.

no
tls.certificateKeyFilePassword
문자열

인증서 키 파일의 암호를 해독하기 위한 비밀번호입니다.

인증서 키 파일 이 암호화됨 경우에만 tls.certificateKeyFilePassword 옵션을 사용합니다. 모든 경우에 mongos 또는 mongod 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

이 설정은 net.tls.certificateKeyFilePassword 에 해당합니다. mongod 복제본 세트 구성 옵션입니다.

no
tls.certificateSelector
문자열

MongoDB Agent가 운영 체제의 인증서 저장소에서 TLS/SSL에 일치하는 인증서를 선택하는 데 사용하는 속성입니다.

MongoDB CLI는 다음 키-값 매핑 중 하나를 tls.certificateSelector 의 인수로 허용합니다.

값 유형
설명
subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름입니다.
thumbprint
16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

tls.certificateKeyFiletls.certificateSelector 은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.

이 설정은 net.tls.certificateSelector 에 해당합니다. mongod 복제본 세트 구성 옵션입니다.

no
tls.clusterCertificateSelector
문자열

MongoDB Agent 가 운영 체제의 인증서 저장 에서 내부 x 에509 사용할 일치하는 인증서를 선택하는 데 사용하는 인증서 속성 입니다. 멤버십 인증.

MongoDB CLI는 다음 키-값 매핑 중 하나를 tls.clusterCertificateSelector 의 인수로 허용합니다.

값 유형
설명
subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름입니다.
thumbprint
16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

tls.clusterCertificateSelectortls.clusterFile 은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.

이 설정은 net.tls.clustercertificateSelector 에 해당합니다. mongod 복제본 세트 구성 옵션입니다.

no
tls.clusterFile
문자열

.pem x가 포함된 파일입니다. 클러스터 또는 복제본 세트에 대한 멤버십 인증 을 위한 509 인증서-키 파일입니다.

tls.clusterCertificateSelectortls.clusterFile 은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.

이 설정은 net.tls.clusterFile mongod 복제본 세트 구성 옵션에 해당합니다.

no
tls.clusterPassword
문자열

0}으로 지정된 x.509 인증서 키 파일의 암호를 해독하기 위한 비밀번호입니다.tls.clusterFile

인증서 키 파일 이 암호화됨 경우에만 tls.clusterPassword 옵션을 사용합니다. 모든 경우에 mongos 또는 mongod 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

이 설정은 net.tls.clusterPassword 에 해당합니다. mongod 복제본 세트 구성 옵션입니다.

no
tls.CRLFile
문자열

인증서 해지 목록이 포함된 .pem 파일입니다. 상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다.

이 설정은 net.tls.CRLFile mongod 복제본 세트 구성 옵션에 해당합니다.

no
tls.disabledProtocols
문자열

TLS로 실행되는 MongoDB Server가 수신 연결을 거부하는 프로토콜 또는 버전입니다.

이 설정은 net.tls.disabledProtocols mongod 복제본 세트 구성 옵션입니다.

no
tls.FIPSMode
문자열

mongos 또는 mongod 에 대한 TLS 라이브러리의 FIPS 모드 사용을 활성화하거나 비활성화합니다. 이 옵션을 사용하려면 시스템에 FIPS 호환 라이브러리가 있어야 합니다.

이 설정은 net.tls.FIPSMode mongod 복제본 세트 구성 옵션에 해당합니다.

no
tls.mode
문자열

모든 네트워크 연결에 대해 TLS를 활성화합니다. MongoDB CLI는 이 설정에 대해 다음 인수를 허용합니다.

설명
disabled
서버가 TLS를 사용하지 않습니다.
allowTLS
서버 간 연결이 TLS를 사용하지 않습니다. 수신 연결의 경우, 서버는 TLS와 비TLS를 모두 허용합니다.
preferTLS
서버 간 연결이 TLS를 사용합니다. 수신 연결의 경우, 서버는 TLS와 비TLS를 모두 허용합니다.
requireTLS
서버가 TLS로 암호화된 연결만 사용하고 허용합니다.

이 설정은 net.tls.mode mongod 복제본 세트 구성 옵션에 해당합니다.

no
tls.PEMKeyFile
문자열

.pem TLS 인증서와 키가 모두 포함된 파일입니다.

중요

이 설정은 더 이상 사용되지 않습니다. 대신 tls.certificateKeyFile 를 사용합니다.

이 설정은 net.ssl.PEMKeyFile mongod 복제본 세트 구성 옵션에 해당합니다.

no
votes
integer

복제본 세트 멤버가 투표를 하는지 여부를 나타내는 숫자입니다. MongoDB CLI는 다음 값을 허용합니다.

  • 0 복제본 세트 노드가 투표할 수 없는 경우

  • 1 복제본 세트 멤버가 투표할 수 있는 경우

votes 에 대해 자세히 알아보려면 투표를 참조하세요.

wiredTiger.engineConfig.cacheSizeGB
float

WiredTiger가 모든 데이터에 사용하는 내부 캐시의 최대 크기입니다.

값의 범위는 0.25 GB에서 10000 GB입니다. 기본적으로 WiredTiger 내부 캐시 크기는 둘 중 더 큽니다.

  • (RAM - 1GB)의 50%

  • 256 MB.

WiredTiger 내부 캐시 크기를 기본값 이상으로 늘리지 마세요.

이 설정은 storage.wiredTiger.engineConfig.journalCompressor mongod 복제본 세트 구성 옵션에 해당합니다.

no
wiredTiger.engineConfig.journalCompressor
문자열

WiredTiger 저널 데이터를 압축하는 데 사용할 압축 유형입니다.

사용할 수 있는 압축 옵션은 다음과 같습니다.

  • none

  • 스내피

  • zlib

  • zstd (MongoDB 4.2 이상을 실행하는 클러스터에서 사용 가능)

기본값 으로 WiredTiger 는 스내피를 사용합니다 .

이 설정은 storage.wiredTiger.engineConfig.journalCompressor mongod 복제본 세트 구성 옵션에 해당합니다.

no
wiredTiger.engineConfig.directoryForIndexes
부울

mongod 가 인덱스와 컬렉션을 데이터 아래의 별도 하위 디렉토리에 저장하는지 여부를 나타내는 플래그(예: storage.dbPath) 디렉토리입니다. 구체적으로, mongod 은(는) index 라는 하위 디렉토리에 인덱스를 저장하고 collection 이라는 하위 디렉토리에 컬렉션 데이터를 저장합니다.

기호 링크를 사용하면 인덱스에 대해 다른 위치를 지정할 수 있습니다. 구체적으로, mongod 인스턴스가 실행 중이 아닌 경우 index 하위 디렉토리를 새 대상으로 이동하고 데이터 디렉토리 아래에 새 대상에 대한 index 라는 기호 링크를 만듭니다.

기본적으로 wiredTiger.engineConfig.directoryForIndexesfalse 입니다.

이 설정은 storage.wiredTiger.engineConfig.directoryForIndexes mongod 복제본 세트 구성 옵션에 해당합니다.

no
wiredTiger.engineConfig.maxCacheOverflowFileSizeGB
float

참고

제한된 버전 지원

이 설정은 MongoDB 버전을 실행하는 cluster에서만 지원됩니다.

  • 4.0.12부터 4.0.x까지 및

  • 4.2.1 ~ 4.2.x.

'lookside(또는 캐시 오버플로) 테이블' 파일의 최대 크기(단위: WiredTigerLAS.wt 입니다. 이 파일은 MongoDB 버전 4.4부터 더 이상 존재하지 않습니다.

이 설정은 다음 값 중 하나를 사용할 수 있습니다.

설명
0
기본값입니다. 0으로 설정하는 경우 파일 크기가 제한되지 않습니다.
number >= 0.1
최대 크기(GB)입니다. WiredTigerLAS.wt 파일이 이 크기를 초과하면 mongod 가 종료되고 치명적 어설션이 발생합니다. WiredTigerLAS.wt 파일을 지우고 mongod 다시 시작할 수 있습니다.

런타임 중에 최대 크기를 변경하려면 wiredTigerMaxCacheOverflowSizeGB 매개변수를 사용합니다.

이 설정은 storage.wiredTiger.engineConfig.maxCacheOverflowFileSizeGB mongod 복제본 세트 구성 옵션에 해당합니다.

no
wiredTiger.collectionConfig.blockCompressor
문자열

collection 데이터의 기본 압축입니다. collection을 만들 때 collection별로 이 값을 재정의할 수 있습니다.

사용할 수 있는 압축 옵션은 다음과 같습니다.

  • none

  • 스내피

  • zlib

  • zstd (MongoDB 4.2 이상을 실행하는 클러스터에서 사용 가능)

기본적으로 압축기는 스내피입니다.

이 설정은 새로 생성된 모든 collection에 영향을 줍니다. 기존 MongoDB 배포에서 이 설정의 값을 변경하면 모든 새 collection이 지정된 압축기를 사용합니다. 기존 collection은 생성 시 지정된 압축기 또는 당시의 기본 압축기를 계속 사용합니다.

이 설정은 storage.wiredTiger.collectionConfig.blockCompressor mongod 복제본 세트 구성 옵션에 해당합니다.

no
wiredTiger.indexConfig.prefixCompression
부울

인덱스 데이터에 대한 접두사 압축 을 활성화할지 비활성화할지 여부를 나타내는 플래그입니다.

true 이면 인덱스 데이터에 대해 접두사 압축 이 활성화됩니다. false 인 경우 접두사 압축 이 비활성화됩니다.

기본적으로 wiredTiger.indexConfig.prefixCompressiontrue 입니다.

이 설정은 생성된 모든 인덱스에 영향을 줍니다. 기존 MongoDB 배포에서 이 설정의 값을 변경하면 모든 새 인덱스가 접두사 압축을 사용합니다. 기존 인덱스는 영향을 받지 않습니다.

이 설정은 storage.wiredTiger.indexConfig.prefixCompression mongod 복제본 세트 구성 옵션에 해당합니다.

no

MongoDB Cloud Manager 또는 MongoDB Ops Manager 클러스터를 생성하거나 업데이트하기 위한 구성 파일에는 각 샤드에 대한 다음 설정이 포함될 수 있습니다.

필드
유형
설명
필수 사항입니다.
name
문자열
샤드의 이름입니다.
processes
객체 배열
mongod 프로세스에 대한 설정이 포함된 객체 배열입니다. 각 mongod 에는 복제본 세트 멤버 설정이 있습니다.
name: "myCluster"
version: 4.2.2
featureCompatibilityVersion: 4.2
processes:
- hostname: host0
dbPath: /data/cluster_2/rs1
logPath: /data/cluster_2/rs1/mongodb.log
priority: 1
votes: 1
port: 29010
- hostname: host1
dbPath: /data/cluster_2/rs2
logPath: /data/cluster_2/rs2/mongodb.log
priority: 1
votes: 1
port: 29020
- hostname: host2
dbPath: /data/cluster_2/rs3
logPath: /data/cluster_2/rs3/mongodb.log
priority: 1
votes: 1
port: 29030
{
"name": "myCluster",
"version": "4.2.2",
"featureCompatibilityVersion": "4.2",
"processes": [
{
"hostname": "host0",
"dbPath": "/data/cluster_3/rs1",
"logPath": "/data/cluster_3/rs1/mongodb.log",
"priority": 1,
"votes": 1,
"port": 30010
},
{
"hostname": "host1",
"dbPath": "/data/cluster_3/rs2",
"logPath": "/data/cluster_3/rs2/mongodb.log",
"priority": 1,
"votes": 1,
"port": 30020
},
{
"hostname": "host2",
"dbPath": "/data/cluster_3/rs3",
"logPath": "/data/cluster_3/rs3/mongodb.log",
"priority": 1,
"votes": 1,
"port": 30030
}
]
}
{
"name": "myShardedCluster",
"version": "4.2.2",
"featureCompatibilityVersion": "4.2",
"shards": [
{
"name": "myShard_0",
"processes": [
{
"dbPath": "/data/myCluster/myShard_0/27000",
"hostname": "host0.example",
"logPath": "/data/myCluster/myShard_0/27000/mongodb.log",
"port": 27000,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_0/27001",
"hostname": "host1.example",
"logPath": "/data/myCluster/myShard_0/27001/mongodb.log",
"port": 27001,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_0/27002",
"hostname": "host2.example",
"logPath": "/data/myCluster/myShard_0/27002/mongodb.log",
"port": 27002,
"version": "4.2.8-ent",
"votes": 1
}
]
},
{
"name": "myShard_1",
"processes": [
{
"dbPath": "/data/myCluster/myShard_1/28000",
"hostname": "host3.example",
"logPath": "/data/myCluster/myShard_1/28000/mongodb.log",
"port": 28000,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_1/28001",
"hostname": "host4.example",
"logPath": "/data/myCluster/myShard_1/28001/mongodb.log",
"port": 28001,
"votes": 1
},
{
"dbPath": "/data/myCluster/myShard_1/28002",
"hostname": "host5.example",
"logPath": "/data/myCluster/myShard_1/28002/mongodb.log",
"port": 28002,
"votes": 1
}
]
}
],
"config": {
"name": "configRS",
"processes": [
{
"dbPath": "/data/myCluster/configRS/29000",
"hostname": "host6.example",
"logPath": "/data/myCluster/configRS/29000/mongodb.log",
"port": 29000,
"votes": 1
},
{
"dbPath": "/data/myCluster/configRS/29001",
"hostname": "host7.example",
"logPath": "/data/myCluster/configRS/29001/mongodb.log",
"port": 29001,
"votes": 1
},
{
"dbPath": "/data/myCluster/configRS/29002",
"hostname": "host8.example",
"logPath": "/data/myCluster/configRS/29002/mongodb.log",
"port": 29002,
"votes": 1
}
]
},
"mongos": [
{
"hostname": "host9.example",
"logPath": "/data/myCluster/mongoses/27015/mongodb.log",
"port": 27015
}
]
}

돌아가기

참조