mongo默认是没有进行日志分割的,所有的日志持续写到一个文件中,缺点是很明显的,日志文件会越来越大,下面这篇文章主要给大家介绍了关于MongoDB日志切割的三种方式,需要的朋友可以参考下
前言
线上运行的服务会产生大量的运行及访问日志,日志里会包含一些错误、警告及用户行为等信息。通常服务会以文本的形式记录日志信息,这样可读性强,方便于日常定位问题。但当产生大量的日志之后,要想从大量日志里挖掘出有价值的内容,则需要对数据进行进一步的存储和分析。
任何一种数据库都有各种各样的日志,MongoDB也不例外。MongoDB中有4种日志,分别是系统日志、Journal日志、oplog主从日志、慢查询日志等。这些日志记录着MongoDB数据库不同方面的踪迹
MongoDB 默认是不会进行切割日志的,除非我们配置了 logRotate = rename,并且重启 MongoDB 服务,才会进行切割日志的,那么为了避免实际中我们一个日志文件过大,我们需要对日志进行切割,有两个办法:
方法如下
1. 通过 MongoDB 管理命令进行切割
使用该命令时需要在 MongoDB 运行时指定日志文件路径。--logpath [file] ,或者在配置文件中指定。
use admin
db.runCommand({logRotate:1})
2. 通过 Linux 系统自带的服务 logrotate 进行切割
首先我们需要配置 MongoDB 参数 logRotate = reopen, logappend = true,然后通过 Linux 系统自带的 logrotate。配置文件放置在 /etc/logrotate.d/, 切割配置文件示例:
/opt/mongodb/log/mongodb.log {
rotate 180
daily
size 100M
olddir /opt/mongodb/log/oldlog
copytruncate
dateext
compress
notifempty
missingok
}
3. 通过向进程发送 SIGUSR1 信号来切割日志
如果我们的进程 id 是19555,那么我们可以通过以下命令来切割日志的。只要我们执行了该命令,日志就会立即进行切割。
kill -SIGUSR1 19555
总结
到此这篇关于MongoDB日志切割的三种方式的文章就介绍到这了,更多相关MongoDB日志切割内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:MongoDB日志切割的三种方式总结


基础教程推荐
- Python常见库matplotlib学习笔记之画图中各个模块的含义及修改方法 2023-07-27
- Python安装第三方库的方法(pip/conda、easy_install、setup.py) 2023-07-28
- oracle19c卸载教程的超详细教程 2023-07-23
- SQL Server如何设置用户只能访问特定数据库和访问特定表或视图 2023-07-29
- redis 数据库 2023-09-13
- oracle数据库排序后如何获取第一条数据 2023-07-24
- Java程序员从笨鸟到菜鸟(五十三) 分布式之 Redis 2023-09-11
- redis乐观锁与悲观锁的实战 2023-07-13
- Mariadb数据库主从复制同步配置过程实例 2023-07-25
- Windows10系统中Oracle完全卸载正确步骤 2023-07-24