You can configure log rotation settings for CustomResourceDefinitions in the MongoDB and Ops Manager CRD manifests.
다음 표에는 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 이상: | Ops Manager UI |
MongoDB | 감사 로그 | Ops Manager UI | |
MongoDB | 준비성 프로브 | ||
애플리케이션 데이터베이스 | MongoDB 로그 | ||
애플리케이션 데이터베이스 | 자동화 에이전트 로그 | ||
애플리케이션 데이터베이스 | 모니터링 에이전트 로그 |
| |
애플리케이션 데이터베이스 | 감사 로그 | ||
Ops Manager | Ops Manager 로그 |
MongoDB 로그 로테이션
참고
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 관련 로그의 로테이션을 구성하는 방법에 대한 자세한 내용은 앞의 비교 표 를 참조하세요.
자동화 에이전트 로그
You can configure the MongoDB automation agent logs in the MongoDB CRD manifest under spec.agent.startupOptions.
매니페스트 예시
다음 예시 매니페스트는 MongoDB 사용자 지정 리소스 에서 로그 로테이션을 구성하기 위한 스키마 보여줍니다. 표시된 값은 데모용이며 권장 설정이 아닙니다. 구성 설정과 해당 데이터 유형 및 사용법에 대해 자세히 학습 MongoDB 데이터베이스 리소스 사양을 참조하세요.
참고
샤딩된 클러스터의 경우 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: 8.0.0 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: "0.02" auditlogRotate: sizeThresholdMB: "10" timeThresholdHrs: 10 numUncompressed: 10 numTotal: 10 percentOfDiskspace: "0.02"
애플리케이션 데이터베이스 로그 로테이션
다음 예시 매니페스트에 표시된 대로 MongoDBOpsManager CRD 에서 다음 로그의 순환을 구성할 수 있습니다. 다른 애플리케이션 데이터베이스 관련 로그의 로테이션 구성에 대한 자세한 내용은 앞의 표를 참조하세요.
MongoDB 로그
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-verbose.log/var/log/mongodb-mms-automation/automation-agent.log
감사 로그
spec.applicationDatabase.agent.mongod.auditlogRotate아래의 MongoDBOpsManager 매니페스트에서 애플리케이션 데이터베이스 감사 로그 로테이션을 구성할 수 있습니다.
참고
auditLogRotate 설정은 logRotate 설정에 따라 달라집니다. auditLogRotate 를 적용하려면 logRotate도 구성해야 합니다.
- 로그:
/var/log/mongodb-mms-automation/mongodb-audit.log
매니페스트 예시
다음 예시 매니페스트는 MongoDBOpsManager 사용자 지정 리소스 에서 애플리케이션 데이터베이스 로그 로테이션을 구성하기 위한 스키마 보여줍니다. 표시된 값은 데모용이며 권장 설정이 아닙니다. 구성 설정과 해당 데이터 유형 및 사용법에 대해 자세히 학습 MongoDB 데이터베이스 리소스 사양을 참조하세요.
apiVersion: mongodb.com/v1 kind: MongoDBOpsManager metadata: name: ops-manager namespace: mongodb spec: replicas: 1 version: 8.0.0 adminCredentials: ops-manager-admin-secret applicationDatabase: version: "8.0.0" 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: "0.02" auditlogRotate: sizeThresholdMB: "10" timeThresholdHrs: 10 numUncompressed: 10 numTotal: 10 percentOfDiskspace: "0.02"
MongoDB Ops Manager 로그 로테이션
MongoDB Ops Manager 를 관리 하고 로테이션하려면 StatefulSet를 수동으로 재정의 하거나 CRD 설정을 사용할 수 있습니다.
StatefulSet를 사용하여 MongoDB Ops Manager 로그 구성
MongoDB Ops Manager 로그를 관리 하고 로테이션하려면 ConfigMap 및 StatefulSet 재정의를 사용하여 기본값 로깅 구성을 수동으로 재정의할 수 있습니다. 이 프로세스 에는 사용자 지정 logback.xml 구성 파일 을 만들어 MongoDB Ops Manager 파드에 적용하는 작업이 포함됩니다.
logback.xml 사용자 지정 구성 파일 만듭니다.
다음 명령을 실행 하여 템플릿으로 사용할 기존 logback.xml 를 조회 할 수 있습니다.
kubectl cp om-pod-spec-0:/mongodb-ops-manager/conf/logback.xml ~/Downloads/logback-confs/logback.xml
사용자 지정 logback.xml 생성에 학습 보려면 MongoDB Ops Manager 로그 순환 정책 변경을 참조하세요.
StatefulSet 구성을 재정의합니다.
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
CRD를 사용하여 MongoDB Ops Manager 로그 구성
또한 CRD 설정을 사용하여 로그 로테이션을 관리 수 MongoDB Ops Manager 있으며, 이는 CRD 에서 직접 ConfigMap에 연결하여 로그 로테이션 프로세스 를 간소화합니다.
logback.xml 사용자 지정 구성 파일 만듭니다.
다음 명령을 실행 하여 템플릿으로 사용할 기존 logback.xml 를 조회 할 수 있습니다.
kubectl cp om-pod-spec-0:/mongodb-ops-manager/conf/logback.xml ~/Downloads/logback-confs/logback.xml
사용자 지정 logback.xml 생성에 학습 보려면 MongoDB Ops Manager 로그 순환 정책 변경을 참조하세요.
(Optional) 사용자 지정 logback-access.xml 설정 파일을 만듭니다.
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
로깅 요구 사항에 따라 이 파일 을 수정합니다.
사용자 지정 logback.xml 및 에서 ConfigMap을 logback-access.xml 만듭니다.
마운트 경로와 하위 경로가 전체 디렉토리 가 아닌 하나의 파일 만 덮어쓰도록 ConfigMap의 키가 교체하려는 파일 의 이름과 정확히 일치하는지 확인합니다. 다음 예제에서는 기본값 파일 이름인 logback.xml 및 logback-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
CRD 로깅 속성을 설정합니다.
MongoDB Ops Manager CRD 에 다음 설정을 추가합니다.
참고
파일 이름 logback.xml 및 logback-access.xml 는 기본값 파일 이름이며 Kubernetes Operator가 이를 인식할 수 있도록 ConfigMap의 키여야 합니다.
예를 들면 다음과 같습니다.
apiVersion: mongodb.com/v1 kind: MongoDBOpsManager metadata: name: ops-manager namespace: mongodb spec: replicas: 1 version: 8.0.0 adminCredentials: ops-manager-admin-secret logging: LogBackAccessRef: name: logback-access-config LogBackRef: name: logback-config backup: enabled: true logging: LogBackAccessRef: name: my-logback-access-cm-backup LogBackRef: name: my-logback-cm-backup
Ops Manager 사용자 지정 리소스 에서 볼륨을 정의하면 Kubernetes 앞의 예시 와 유사한 볼륨 마운트를 자동으로 생성하고 ConfigMap 파일을 Ops Manager 파드의 올바른 위치에 연결합니다.