MongoDB CRD 日志轮换设置
您可以为 CustomResourceDefinitions 配置日志轮换设置 在 MongoDB 和 Ops Manager CRD 清单中。
下表概述了您可以在MongoDB CRD清单中定义的日志记录配置字段,以及如果您选择不直接从CRD清单中配置这些字段,可以在其他地方定义或访问这些字段。
组件 | 日志类型 | CRD 清单配置 | 默认配置位置 |
---|---|---|---|
MongoDB | 自动化代理日志 | ||
MongoDB | 监控代理日志 | Ops Manager API 或用户界面 | |
MongoDB | 备份日志 | Ops Manager API 或用户界面 | |
MongoDB | MongoDB 日志 | MongoDB Ops Manager 7.0.4、 6.0.24或更高版本: MongoDB CRD | Ops Manager 用户界面 |
MongoDB | 审核日志 | Ops Manager 用户界面 | |
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用户界面配置 mongod
日志。
您可以在MongoDB CRD中配置日志的轮换,如以下示例清单所示。
有关配置其他MongoDB特定日志轮换的更多信息,请参阅前面的比较表。
自动化代理日志
您可以在 下的MongoDB CRD spec.agent.startupOptions
清单中配置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: 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会压缩两个最新日志之外的日志文件。
- 日志:
/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 Pod。
创建自定义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 Pod 中挂载自定义 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日志
您还可以使用MongoDB Ops Manager CRD 设置管理 日志轮换,这通过直接链接到 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访问权限请求的日志记录,例如由网络服务器处理的请求。 如果要自定义托管这些访问权限日志的方式,可以创建类似于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
是默认文件名,并且必须是 ConfigMap 中的键, Kubernetes Operator 才能识别它们。
例如:
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 Pod 中的正确位置。