阅读 86

MongoDB日志切割的三种方式总结

mongo默认是没有进行日志分割的,所有的日志持续写到一个文件中,缺点是很明显的,日志文件会越来越大,下面这篇文章主要给大家介绍了关于MongoDB日志切割的三种方式,需要的朋友可以参考下

目录
  • 前言

  • 方法如下

    • 1. 通过 MongoDB 管理命令进行切割

    • 2. 通过 Linux 系统自带的服务 logrotate 进行切割

    • 3. 通过向进程发送 SIGUSR1 信号来切割日志

  • 总结

    前言

    线上运行的服务会产生大量的运行及访问日志,日志里会包含一些错误、警告及用户行为等信息。通常服务会以文本的形式记录日志信息,这样可读性强,方便于日常定位问题。但当产生大量的日志之后,要想从大量日志里挖掘出有价值的内容,则需要对数据进行进一步的存储和分析。

    任何一种数据库都有各种各样的日志,MongoDB也不例外。MongoDB中有4种日志,分别是系统日志、Journal日志、oplog主从日志、慢查询日志等。这些日志记录着MongoDB数据库不同方面的踪迹

    MongoDB 默认是不会进行切割日志的,除非我们配置了 logRotate = rename,并且重启 MongoDB 服务,才会进行切割日志的,那么为了避免实际中我们一个日志文件过大,我们需要对日志进行切割,有两个办法:

    方法如下

    1. 通过 MongoDB 管理命令进行切割

    使用该命令时需要在 MongoDB 运行时指定日志文件路径。--logpath [file] ,或者在配置文件中指定。

    1
    2
    use admin
    db.runCommand({logRotate:1})

    2. 通过 Linux 系统自带的服务 logrotate 进行切割

    首先我们需要配置 MongoDB 参数 logRotate = reopen, logappend = true,然后通过 Linux 系统自带的 logrotate。配置文件放置在 /etc/logrotate.d/, 切割配置文件示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /opt/mongodb/log/mongodb.log {
    rotate 180 
    daily
    size 100M
    olddir /opt/mongodb/log/oldlog
    copytruncate
    dateext
    compress
    notifempty
    missingok
    }

    3. 通过向进程发送 SIGUSR1 信号来切割日志

    如果我们的进程 id 是19555,那么我们可以通过以下命令来切割日志的。只要我们执行了该命令,日志就会立即进行切割。

    1
    kill -SIGUSR1   19555

    总结

    到此这篇关于MongoDB日志切割的三种方式的文章就介绍到这了

      原文链接:https://www.cnblogs.com/operationhome/p/10677099.html

      服务器评测 http://www.cncsto.com/ 

      服务器测评 http://www.cncsto.com/ 

      站长资源 https://www.cscnn.com/ 

      小鱼创业 https://www.237fa.com/ 


      文章分类
      后端
      版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
      相关推荐