몽고디비 서비스를 실행할 때는 별도의 argument를 주지 않는 한 설정 파일에 기반해 실행됩니다.

패키지 매니저를 통해 설치하였을 경우 /etc/mongod.conf 로 설정파일이 자동 생성되어 실행되며, 바이너리 파일을 통해 설치한 경우는 별도의 생성파일을 만들어 서비스 실행시 지정해야 합니다.

설정파일은 텍스트로 구성되어 있으며, 계층구조로 옵션을 지정할 수 있습니다.

우선 설정파일을 한번 구경해보겠습니다.

 

제일 상위 옵션은

systemLog:

storage:

processManagement:

net:

security:

setParameter:

operationProfiling:

replication:

shading:

auditLog:

snmp:

등이 있으며, 엔터프라이즈 버전에 한해 텍스트 검색 옵션을 지정할 수 있습니다.

 

가장 먼저 보게 되는게 net 설정입니다.

왜냐하면 mongoDB설치했을때 기본 허용 IP가 127.0.0.1, 즉 로컬 전용으로만 설정되어 있거든요.

그래서 AWS상에서 사용한다거나, 분산환경에서 사용한다거나 할때 이게 안되있으면 접속이 안붙습니다ㅠㅠ

풀어주는 방법은 간단합니다. bindIp: 옆에 있는 ip주소를 0.0.0.0으로 바꿔주면 됩니다.

(물론 특정 ip를 지정해도 되지만,  나중에 관리하기 불편할거 같네요.)

 

port: 는 mongoDB가 연결을 받을 포트번호이고, 이건 기본 설정인 27017로 그대로 두고 쓰시면 되고요.

maxIncomingConnections: 는 최대 허용 접속 수를 의미하는 거고 기본 값은 65536 입니다.

서비스 운영시에는 숫자를 조금씩 늘려주시면 됩니다.

 

systemLog 설정은 mongoDB의 로그 설정을 위한 것입니다.

여기서부터는 빠르게 설명하겠습니다.

 

systemLog:

verbosity: <int>                                  #아웃풋 메시지의 로그 단계로 0(모든 메시지) - 6(치명적인 에러) 중에서 적정한 수준을 선택합니다.

quiet: <boolean>                                #아웃풋을 제한하는 옵션입니다. 권장되지 않습니다.

traceAllExceptions: <boolean>          #에러가 발생할 경우 이 옵션을 true로 하면 자바 exception처럼 tracing을 시도한다고 합니다.

syslogFacility: <string>                      #OS의 syslog 아웃풋을 로깅할때 사용한다고 합니다.

                                                           #이 옵션을 argument로 지정하려면 --syslog를 추가해야한다고 하네요.

path: <string>                                   #로그파일이 위치할 디렉토리 경로입니다.

logAppend: <boolean>                     #이 옵션을 true로 하면 하나의 로그파일에 계속 로그를 기록하고,

                                                         #false로 하면 재부팅할때 마다 기존 로그 파일을 백업하고 다시 생성합니다.

logRotate: <string>                          #rename으로 설정하면 로그파일의 이름을 바꿔주고, reopen으로 설정하면

#Linux/Unix의 로그 정책에 따라 로그파일을 닫고 다시 연다고 하네요. 정확한 액션은 저도 잘...

destination: <string>                      #로그를 파일로 남기려면 file로, 콘솔등에 출력하려면 syslog로 설정합니다.

timeStampFormat: <string>         #ctime - Wed Dec 31 18:17:54.811. 의 형식으로 출력합니다.

#iso8601-utc - iso8601 포맷으로 UTC 표준시간을 기준으로 출력

#iso8601-local - iso8601 포맷으로 각 지역대의 시간을 기준으로 출력

 

옵션에 대한 자세한 설명은 몽고디비의 문서를 확인하시고, 필요할때 찾아서 바로 적용하시면 될거 같습니다~

(https://docs.mongodb.com/manual/reference/configuration-options/)

 

Posted by kevin.jeong.
,