Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes 연산자
/

MongoDB CRD 로그 로테이션 설정

이 페이지의 내용

  • MongoDB 로그 로테이션
  • 애플리케이션 데이터베이스 로그 로테이션
  • MongoDB Ops Manager 로그 로테이션

CustomResourceDefinitions 에 대한 로그 로테이션설정을 구성할 수 있습니다. MongoDB 및 Ops Manager CRD 매니페스트에 있습니다.

다음 표에는 MongoDB CRD 매니페스트에서 정의할 수 있는 로깅 구성 필드와 CRD 매니페스트에서 직접 구성하지 않기로 선택한 경우 다른 곳에서 정의하거나 액세스할 수 있는 위치가 간략하게 설명되어 있습니다.

구성 요소
로그 유형
CRD 매니페스트 구성
기본 구성 위치
MongoDB
자동화 에이전트 로그
MongoDB
모니터링 에이전트 로그
Ops Manager API 또는 UI
MongoDB
백업 로그
Ops Manager API 또는 UI
MongoDB
MongoDB 로그
MongoDB Ops Manager 7.0.4, 6.0.24 이상: MongoDB CRD
Ops Manager UI
MongoDB
감사 로그
Ops Manager UI
MongoDB
준비성 프로브
애플리케이션 데이터베이스
MongoDB 로그
애플리케이션 데이터베이스
자동화 에이전트 로그
애플리케이션 데이터베이스
모니터링 에이전트 로그
stdout (으)로만 전달됩니다(kubectl 로그). Kubernetes 컨트롤 플레인에서 관리되고 저장됩니다.
애플리케이션 데이터베이스
감사 로그

Ops Manager

Ops Manager 로그

참고

MongoDB Ops Manager 6의 경우 버전 6.0.2부터 이 설정으로 mongod 로그만 구성할 수 있습니다. MongoDB Ops Manager 7의 경우 버전 7.0.4부터 이 설정으로 mongod 로그만 구성할 수 있습니다. 이전 MongoDB Ops Manager 버전의 경우 MongoDB Ops Manager UI 를 사용하여 mongod 로그를 구성해야 합니다.

다음 예시 매니페스트에 표시된 대로 MongoDB CRD 에서 로그 회전을 구성할 수 있습니다.

다른 MongoDB 관련 로그의 로테이션을 구성하는 방법에 대한 자세한 내용은 앞의 비교 표 를 참조하세요.

아래의 MongoDB CRD 매니페스트에서 MongoDB 자동화 에이전트 로그를 spec.agent.startupOptions 구성할 수 있습니다.

참고

샤딩된 클러스터의 경우 spec.agent 수준에서만 로그 로테이션을 구성할 수 있습니다. spec.configsrv.agent 또는 spec.shardsvr.agent 와 같은 하위 사양 수준에서 로그 로테이션을 구성하는 것은 지원되지 않습니다.

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: log-rotate
namespace: mongodb
spec:
podSpec:
podTemplate:
spec:
containers:
- name: mongodb-enterprise-database
env:
- name: READINESS_PROBE_LOGGER_MAX_SIZE
value: "50"
version: 6.0.0-ent
opsManager:
configMapRef:
name: my-project
credentials: my-credentials
type: Standalone
persistent: false
# https://docs.opsmanager.mongodb.com/current/reference/mongodb-agent-settings/
agent:
startupOptions:
maxLogFiles: 10
maxLogFileSize: 2
readinessProbe:
environmentVariables:
READINESS_PROBE_LOGGER_MAX_SIZE: 10
READINESS_PROBE_LOGGER_BACKUPS: 1
READINESS_PROBE_LOGGER_MAX_AGE: 3
READINESS_PROBE_LOGGER_COMPRESS: true
MDB_WITH_AGENT_FILE_LOGGING: false
LOG_FILE_PATH: /var/log/mongodb-mms-automation/readiness.log
backupAgent:
logRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
monitoringAgent:
logRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
# For Ops Manager 6, you can only configure mongod logs with this setting starting with version 6.0.2.
# For Ops Manager 7, you can only configure mongod logs with this setting starting with version 7.0.4.
# For previous Ops Manager versions, you must configure mongod logs using the Ops Manager UI.
mongod:
logRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
numUncompressed: 10
numTotal: 10
percentOfDiskspace: 10
auditLogRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
numUncompressed: 10
numTotal: 10
percentOfDiskspace: 10

다음 예시 매니페스트에 표시된 대로 MongoDBOpsManager CRD 에서 다음 로그의 순환을 구성할 수 있습니다. 다른 애플리케이션 데이터베이스 관련 로그의 로테이션 구성에 대한 자세한 내용은 앞의 표를 참조하세요.

spec.applicationDatabase.agent.<component>.logRotate 아래의 MongoDBOpsManager 매니페스트에서 애플리케이션 데이터베이스 MongoDB 로그 로테이션을 구성할 수 있습니다. MongoDB 는 기본값 가장 최근 로그 2개 이상의 로그 파일을 압축합니다.

로그:
  • /var/log/mongodb-mms-automation/mongodb.log

spec.applicationDatabase.agent.startupOptions아래의 MongoDBOpsManager 매니페스트에서 애플리케이션 데이터베이스 자동화 에이전트 로그 로테이션을 구성할 수 있습니다.

로그:
  • /var/log/mongodb-mms-automation/automation-agent-stderr.log

  • /var/log/mongodb-mms-automation/automation-agent-verbose.log

  • /var/log/mongodb-mms-automation/automation-agent.log

spec.applicationDatabase.agent.mongod.auditlogRotate아래의 MongoDBOpsManager 매니페스트에서 애플리케이션 데이터베이스 감사 로그 로테이션을 구성할 수 있습니다.

로그:
  • /var/log/mongodb-mms-automation/mongodb-audit.log

apiVersion: mongodb.com/v1
kind: MongoDBOpsManager
metadata:
name: ops-manager
namespace: mongodb
spec:
replicas: 1
version: 6.0.19
adminCredentials: ops-manager-admin-secret
applicationDatabase:
version: "6.0.11-ent"
members: 3
agent:
#agent.logRotate is deprecated and overwritten by agent.mongod.logRotate.
logRotate:
#Automation Agent log rotation
startupOptions:
maxLogFiles: 10
maxLogFileSize: 2
#Readiness probe log rotation
readinessProbe:
environmentVariables:
READINESS_PROBE_LOGGER_MAX_SIZE: 10
READINESS_PROBE_LOGGER_BACKUPS: 1
READINESS_PROBE_LOGGER_MAX_AGE: 3
READINESS_PROBE_LOGGER_COMPRESS: true
MDB_WITH_AGENT_FILE_LOGGING: false
LOG_FILE_PATH: /var/log/mongodb-mms-automation/readiness.log
#AppDB backup log rotation
backupAgent:
logRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
#AppDB Monitoring Agent log rotation
monitoringAgent:
logRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
#AppDB (mongod) log rotation
mongod:
logRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
numUncompressed: 10
numTotal: 10
percentOfDiskspace: 10
auditLogRotate:
sizeThresholdMB: 10
timeThresholdHrs: 10
numUncompressed: 10
numTotal: 10
percentOfDiskspace: 10

MongoDB Ops Manager 를 관리 하고 로테이션하려면 StatefulSet를 수동으로 재정의 하거나 CRD 설정을 사용할 수 있습니다.

MongoDB Ops Manager 로그를 관리 하고 로테이션하려면 ConfigMap 및 StatefulSet 재정의를 사용하여 기본값 로깅 구성을 수동으로 재정의할 수 있습니다. 이 프로세스 에는 사용자 지정 logback.xml 구성 파일 을 만들어 MongoDB Ops Manager 파드에 적용하는 작업이 포함됩니다.

1

다음 명령을 실행 하여 템플릿으로 사용할 기존 logback.xml 를 조회 할 수 있습니다.

kubectl cp om-pod-spec-0:/mongodb-ops-manager/conf/logback.xml ~/Downloads/logback-confs/logback.xml

사용자 지정 logback.xml 생성에 학습 보려면 MongoDB Ops Manager 로그 순환 정책 변경을 참조하세요.

2

마운트 경로와 하위 경로가 전체 디렉토리 가 아닌 하나의 파일 만 덮어쓰도록 ConfigMap의 키가 교체하려는 파일 의 이름과 정확히 일치하는지 확인합니다. 이 예시 에서 파일 이름은 logback.xml 입니다.

kubectl create configmap logback-config --from-file=logback.xml=path/to/your/custom_logback.xml
3

StatefulSet 재정의 기능 을 사용하여 MongoDB Ops Manager 파드에 사용자 지정 logback.xml 를 마운트합니다. StatefulSet 구성에 다음을 추가합니다:

참고

다음 ConfigMap의 key 는 동일한 이름의 기본값 파일 을 올바르게 대체하도록 기본값 logback.xml 입니다.

spec:
template:
spec:
volumes:
- name: logback-volume
configMap:
name: logback-config
items:
- key: logback.xml
path: logback.xml
containers:
- name: mongodb-ops-manager
volumeMounts:
- name: logback-volume
mountPath: /mongodb-ops-manager/conf-template/logback.xml
subPath: logback.xml
4

멀티 클러스터 MongoDB Ops Manager 배포서버 를 사용하는 경우 모든 멤버 클러스터에 logback-config ConfigMap을 복제해야 합니다.

또한 CRD 설정을 사용하여 로그 로테이션을 관리 수 MongoDB Ops Manager 있으며, 이는 CRD 에서 직접 ConfigMap에 연결하여 로그 로테이션 프로세스 를 간소화합니다.

1

다음 명령을 실행 하여 템플릿으로 사용할 기존 logback.xml 를 조회 할 수 있습니다.

kubectl cp om-pod-spec-0:/mongodb-ops-manager/conf/logback.xml ~/Downloads/logback-confs/logback.xml

사용자 지정 logback.xml 생성에 학습 보려면 MongoDB Ops Manager 로그 순환 정책 변경을 참조하세요.

2

logback-access.xml 파일 을 사용하여 웹 서버 에서 처리하는 것과 같은 HTTP 액세스 요청에 대한 로깅을 구성합니다. 이러한 액세스 로그가 managed 방식을 사용자 지정하려는 경우 logback.xml 와(과) 유사한 사용자 지정 logback-access.xml 파일 을 만들 수 있습니다.

다음 명령을 실행 하여 템플릿으로 사용할 기존 logback-access.xml 를 조회합니다.

kubectl cp om-pod-spec-0:/mongodb-ops-manager/conf/logback-access.xml ~/Downloads/logback-confs/logback-access.xml

로깅 요구 사항에 따라 이 파일 을 수정합니다.

3

마운트 경로와 하위 경로가 전체 디렉토리 가 아닌 하나의 파일 만 덮어쓰도록 ConfigMap의 키가 교체하려는 파일 의 이름과 정확히 일치하는지 확인합니다. 다음 예제에서는 기본값 파일 이름인 logback.xmllogback-access.xml 을 사용합니다.

kubectl create configmap logback-config --from-file=logback.xml=path/to/your/custom_logback.xml
kubectl create configmap logback-access-config --from-file=logback-access.xml=path/to/your/custom_access_logback.xml
4

MongoDB Ops Manager CRD 에 다음 설정을 추가합니다.

참고

파일 이름 logback.xmllogback-access.xml 는 기본값 파일 이름이며 Kubernetes Operator가 이를 인식할 수 있도록 ConfigMap의 키여야 합니다.

예를 들면 다음과 같습니다.

apiVersion: mongodb.com/v1
kind: MongoDBOpsManager
metadata:
name: ops-manager
namespace: mongodb
spec:
replicas: 1
version: 6.0.19
adminCredentials: ops-manager-admin-secret
logging:
logBackAccessRef: logback-access-config
logBackRef: logback-config
backup:
enabled: true
logging:
logBackAccessRef: my-logback-access-cm-backup
logBackRef: my-logback-cm-backup

Kubernetes Operator는 앞의 예시 와 유사한 볼륨 마운트를 자동으로 생성하고 ConfigMap 파일을 MongoDB Ops Manager 파드의 올바른 위치에 연결합니다.

돌아가기

라이프 스타일 지원