日志旋转
定义
日志旋转
的
日志旋转
命令是一个管理命令,允许您旋转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" } )