MongoDB를 운영하다 보면 서버가 어떤 옵션으로 시작되었는지, 그리고 현재 어떤 설정값이 적용되고 있는지 확인해야 할 때가 많습니다. 이 글에서는 getCmdLineOpts와 getParameter 두 가지 관리자 명령어를 사용해 MongoDB의 구성 정보를 조회하는 방법을 소개합니다.
1. getCmdLineOpts로 시작 옵션 확인하기
mongod 프로세스가 실행될 때 어떤 커맨드라인 옵션이 전달되었는지 확인하려면 getCmdLineOpts 명령어를 사용합니다.
> db._adminCommand( {getCmdLineOpts: 1} );실행 결과는 다음과 같습니다.
{ "argv" : [ "mongod" ], "parsed" : { }, "ok" : 1 }출력 결과의 의미는 다음과 같습니다.
argv: mongod 실행 시 실제로 전달된 인자 목록입니다. 위 예제에서는 별도의 옵션 없이 기본값으로 서버가 시작된 것을 알 수 있습니다.
parsed: 구성 파일이나 커맨드라인 옵션에서 파싱된 설정값들이 담기는 항목입니다. 예를 들어 --port 27018 같은 옵션으로 시작했다면 이 필드에 해당 값이 표시됩니다.
ok: 명령어가 정상적으로 실행되었음을 나타내는 값입니다(1 = 성공).
2. getParameter로 라이브 설정 확인하기
시작 옵션뿐 아니라 현재 서버에 적용되어 있는 모든 내부 파라미터(런타임 설정)를 확인하려면 getParameter 명령어에 와일드카드(*)를 지정합니다.
> db._adminCommand({getParameter:"*"});실행하면 아래와 같이 매우 많은 파라미터가 반환됩니다. 실제 출력은 수백 개에 달하므로 여기서는 자주 참고되는 주요 항목만 발췌했습니다.
{
"authSchemaVersion" : 5,
"authenticationMechanisms" : [
"MONGODB-X509",
"SCRAM-SHA-1",
"SCRAM-SHA-256"
],
"featureCompatibilityVersion" : {
"version" : "4.0"
},
"logLevel" : 0,
"maxSessions" : 1000000,
"notablescan" : false,
"quiet" : false,
"sslMode" : "disabled",
"syncdelay" : 60,
"transactionLifetimeLimitSeconds" : 60,
"ttlMonitorEnabled" : true,
"ttlMonitorSleepSecs" : 60,
"wiredTigerConcurrentReadTransactions" : 128,
"wiredTigerConcurrentWriteTransactions" : 128,
"ok" : 1
}주요 파라미터 살펴보기
authenticationMechanisms: 현재 사용 가능한 인증 방식 목록입니다. X.509 인증서, SCRAM-SHA-1, SCRAM-SHA-256이 활성화되어 있습니다.
featureCompatibilityVersion: 데이터 호환성 버전을 나타냅니다. 업그레이드나 다운그레이드 계획 시 반드시 확인해야 하는 값입니다.
sslMode: TLS/SSL 암호화 사용 여부입니다. 위 예제에서는 disabled로 되어 있어 암호화 연결이 비활성 상태임을 의미합니다.
transactionLifetimeLimitSeconds: 트랜잭션이 유지될 수 있는 최대 시간(초)입니다. 기본값은 60초입니다.
wiredTigerConcurrentReadTransactions / WriteTransactions: WiredTiger 스토리지 엔진에서 허용되는 동시 읽기·쓰기 트랜잭션 수입니다.
3. 특정 파라미터만 조회하기
전체 목록 대신 특정 값만 확인하고 싶다면 파라미터 이름을 직접 지정하면 됩니다.
> db._adminCommand({getParameter: 1, featureCompatibilityVersion: 1});이렇게 하면 불필요한 대량의 출력 없이 원하는 설정값만 빠르게 확인할 수 있습니다.
4. 함께 사용하면 좋은 진단 명령어
구성 확인 외에도 서버 상태를 점검할 때 다음 명령어들을 함께 활용하면 좋습니다.
db.serverStatus(): 연결 수, 메모리 사용량, 복제 상태 등 서버의 전반적인 상태 지표를 확인합니다.db.hostInfo(): 운영체제, CPU, 메모리 등 호스트 시스템 정보를 조회합니다.db.serverBuildInfo(): 현재 실행 중인 MongoDB의 버전과 빌드 정보를 확인합니다.
마무리
MongoDB의 현재 구성을 확인하는 것은 장애 진단, 성능 튜닝, 보안 점검의 기본이 되는 작업입니다. getCmdLineOpts로 시작 옵션을, getParameter로 런타임 파라미터를 조회하는 습관을 들이면 서버 상태를 더욱 정확하게 파악할 수 있습니다. 단, 일부 파라미터는 버전에 따라 존재하지 않거나 이름이 다를 수 있으므로 사용 중인 MongoDB 버전의 공식 문서를 함께 참고하는 것이 좋습니다.