日志旋转
定义
日志旋转的
日志旋转命令是一个管理命令,允许您旋转MongoDB服务器的日志和/或审计日志,以防止单个日志文件消耗过多的磁盘空间。您必须在admin数据库上发出.
兼容性
此命令在以下环境中托管的部署中可用
MongoDB Atlas:MongoDB云部署的全托管服务
重要
此命令在M0、M2、M5和M10+集群中不受支持。更多信息,请参阅不受支持的命令。
MongoDB企业版:基于订阅的自托管MongoDB版本
MongoDB社区版:开源、免费使用、自托管的MongoDB版本
语法
命令有以下语法
db.adminCommand( { logRotate: <integer or string>, comment: <string> } )
命令字段
命令接受以下字段
字段 | 类型 | 描述 |
|---|---|---|
日志旋转 | 整数或字符串 | 根据以下内容旋转的日志或日志
|
注释 | 字符串 | 可选。 服务器在日志旋转时记录到日志文件和审计文件的日志信息。 |
您也可以通过向mongod进程发送SIGUSR1信号来旋转日志。
例如,如果一个正在运行的mongod实例的进程ID (PID) 为2200,下面的命令可以在Linux上旋转该实例的日志文件
kill -SIGUSR1 2200
限制
您的
mongod实例需要以--logpath [file]选项运行,才能使用logRotate。审计必须启用才能旋转审计日志。
行为
systemLog.logRotate设置或--logRotate选项指定了logRotate的行为。
当 systemLog.logRotate 或 --logRotate 被设置为 rename 时,logRotate 会通过在文件名后附加当前时间戳来重命名现有的日志文件。附加的时间戳格式如下
<YYYY>-<mm>-<DD>T<HH>-<MM>-<SS>
然后,logRotate 创建一个新的日志文件,其名称与由 systemLog.path 设置最初指定的名称相同,用于 mongod 或 mongos。
当 systemLog.logRotate 或 --logRotate 被设置为 reopen 时,logRotate 会遵循典型的 Linux/Unix 行为,简单地关闭日志文件然后重新打开具有相同名称的日志文件。使用 reopen,mongod 预期另一个进程在旋转之前重命名文件,并且重新打开的结果将创建一个新的文件。
示例
以下示例同时旋转服务器日志和审计日志
db.adminCommand( { logRotate: 1 } )
以下示例仅旋转审计日志,并在旋转日志文件时向日志文件提供自定义消息
db.adminCommand( { logRotate: "audit", comment: "Rotating audit log" } )