Docs 菜单
Docs 主页
/
MongoDB Enterprise Kubernetes Operator
/

MongoDB CRD 日志轮换设置

在此页面上

  • MongoDB 日志轮换
  • 应用程序数据库日志轮换
  • MongoDB Ops Manager日志轮换

您可以在 MongoDB和MongoDB MongoDBMongoDB Ops ManagerOps Manager CRD 清单中配置 CustomResourceDefinitions 的日志轮换设置。

下表概述了您可以在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 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.agentspec.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会压缩两个最新日志之外的日志文件。

日志:
  • /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 Pod。

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 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
4

如果您使用的是多集群MongoDB Ops Manager部署,请确保将 logback-config ConfigMap 复制到所有成员集群。

您还可以使用MongoDB Ops Manager CRD 设置管理 日志轮换,这通过直接链接到 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访问权限请求的日志记录,例如由网络服务器处理的请求。 如果要自定义托管这些访问权限日志的方式,可以创建类似于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是默认文件名,并且必须是 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 中的正确位置。

后退

支持生活方式