mongodb日志分割超详细代码示例

 更新时间:2026年09月02日 08:49:26   作者:坚定信念,勇往无前  
在生产环境中,MongoDB会生成大量的运行日志,这些日志有助于开发者和管理员监控数据库的性能、故障排查和审计,这篇文章主要介绍了mongodb日志分割的相关资料,需要的朋友可以参考下

一、如果是集群,先从从先始做,最后在做主

二、查看 MongoDB 配置文件的日志路径

grep -i "path" /etc/mongod.conf

显示日志路径:

 path: /data/mongodb/log/mongod.log
 dbPath: /data/mongodb/data

三、保存配置文件

3.1 确认配置文件是否存在

ls -l /etc/logrotate.d/mongod

如果存在

cat /etc/logrotate.d/mongod

如果不存在,创建文件

sudo vim /etc/logrotate.d/mongod

3.2 文件内容

3.2.1、确认pid

grep -i "pid" /etc/mongod.conf
ls -l /var/run/mongod.pid

如果有值,配置内容为:

/data/mongodb/log/mongod.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 644 mongod mongod
    postrotate
        /usr/bin/kill -SIGUSR1 $(cat /var/run/mongod.pid 2>/dev/null) 2>/dev/null || true
    endscript
}

如果为空以下面的

[root@iouZ ~]# ls -l /var/run/mongod.pid
ls: cannot access '/var/run/mongod.pid': No such file or directory

上面的情况

  1. 配置文件里没有指定 PID 文件路径grep -i "pid" 没有输出)

  2. 默认的 /var/run/mongod.pid 不存在

要改成systemctl ,保存配置文件内容:

/data/mongodb/log/mongod.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 644 mongod mongod
    postrotate
        /usr/bin/systemctl kill -s SIGUSR1 mongod 2>/dev/null || true
    endscript
}

不同的区别主要是

 postrotate
        /usr/bin/systemctl kill -s SIGUSR1 mongod 2>/dev/null || true
    endscript

四、配置MongoDB支持日志轮转

修改MongoDB配置文件 /etc/mongod.conf

sudo vim /etc/mongod.conf

确保 systemLog 部分包含:

systemLog:
  destination: file
  path: /data/mongodb/log/mongod.log
  logAppend: true
  logRotate: rename   # 关键配置

添加: logRotate: rename   # 关键配置

五、重启MongoDB让配置生效

sudo systemctl restart mongod

六、手动测试轮转是否生效

sudo logrotate -f /etc/logrotate.d/mongod

检查效果:

ls -lh /data/mongodb/log/

应该会看到类似:

mongod.log          (当前日志,几KB)
mongod.log.1.gz     (昨天的日志,已压缩)
mongod.log.2.gz     (前天的日志,已压缩)
...

配置参数说明

参数含义建议值
daily每天轮转一次保持默认
rotate 7保留最近7天的日志根据磁盘大小调整,建议7-30天
compress压缩旧日志开启,节省大量空间
delaycompress推迟一天压缩开启,方便排查当天问题
missingok文件不存在不报错保持默认
notifempty空文件不轮转保持默认
create 644创建新文件的权限644即可

七、如果你想手动触发但不重启(另外一种方法)

# 找到MongoDB进程ID
ps aux | grep mongod | grep -v grep | awk '{print $2}'

# 发送信号触发日志轮转
sudo kill -SIGUSR1 <上面查到的PID>

总结 

到此这篇关于mongodb日志分割的文章就介绍到这了,更多相关mongodb日志分割内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用aggregate在MongoDB中查询重复数据记录的方法

    使用aggregate在MongoDB中查询重复数据记录的方法

    这篇文章主要介绍了使用aggregate在MongoDB中查询重复数据记录的方法的相关资料,需要的朋友可以参考下
    2016-01-01
  • MongoDB的基础知识简介

    MongoDB的基础知识简介

    这篇文章主要介绍了MongoDB的基础知识简介,需要的朋友可以参考下
    2017-05-05
  • 常用的MongoDB查询语句的示例代码

    常用的MongoDB查询语句的示例代码

    最近做了几个规则逻辑。用到mongo查询比较多,就是查询交易信息跑既定规则筛选出交易商户,使用聚合管道进行统计和取出简单处理后的数据,用SQL代替业务代码逻辑的判断,本文给大家介绍Mongodb查询语句的示例代码,一起看看吧
    2021-07-07
  • MongoDB导出查询结果到文件例子

    MongoDB导出查询结果到文件例子

    这篇文章主要介绍了MongoDB导出查询结果到文件例子,本文直接给出示例代码,简洁易懂,需要的朋友可以参考下
    2015-02-02
  • MongoDB常用命令小结

    MongoDB常用命令小结

    这篇文章主要介绍了MongoDB的一些常用命令,学习与使用MongoDB数据库的朋友可以参考下
    2013-08-08
  • 如何去掉保存mongodb数据时出现的_class字段

    如何去掉保存mongodb数据时出现的_class字段

    这篇文章主要给大家介绍了如何去掉保存mongodb数据时出现的_class字段,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • Ubuntu原地升级MongoDB全过程

    Ubuntu原地升级MongoDB全过程

    MongoDB是一款非常流行的开源数据库,但有时候我们可能需要卸载它以进行清理或是升级,本文将详细介绍在Ubuntu操作系统上如何原地升级MongoDB,需要的朋友可以参考下
    2025-10-10
  • MongoDB分片在部署与维护管理中常见的事项总结大全

    MongoDB分片在部署与维护管理中常见的事项总结大全

    分片(sharding)是指将数据拆分,将其分散存放在不同的机器上的过程。下面这篇文章主要给大家总结介绍了关于MongoDB分片在部署与维护管理中常见事项的相关资料,文中通过图文以及示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • Mongodb中MapReduce实现数据聚合方法详解

    Mongodb中MapReduce实现数据聚合方法详解

    Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据。接下来通过本文给大家介绍Mongodb中MapReduce实现数据聚合方法详解,感兴趣的朋友一起学习吧
    2016-05-05
  • mongodb 常见问题处理方法收集

    mongodb 常见问题处理方法收集

    这篇文章主要介绍了mongodb 常见问题收集,这里的问题是我在看MongoDB官网文章时,从里面总结出来的,需要的朋友可以参考下
    2017-03-03

最新评论