MongoDB CRD 로그 로테이션 설정
MongoDB및 MongoDB Ops Manager CRD 매니페스트에서 CustomResourceDefinitions 에 대한 로그 로테이션 설정을 구성할 수 있습니다.MongoDB MongoDB Ops Manager
다음 표에는 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 로그 로테이션
참고
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 에서 다음 로그의 순환을 구성할 수 있습니다. 다른 애플리케이션 데이터베이스 관련 로그의 로테이션 구성에 대한 자세한 내용은 앞의 표를 참조하세요.
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-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 로그 로테이션
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 로그 순환 정책 변경을 참조하세요.
(선택 사항) 사용자 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: 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 파드의 올바른 위치에 연결합니다.