当前位置: 代码网 > it编程>数据库>mongodb > mongodb日志分割超详细代码示例

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

2026年09月02日 mongodb 我要评论
一、如果是集群,先从从先始做,最后在做主二、查看 mongodb 配置文件的日志路径grep -i "path" /etc/mongod.conf显示日志路径:path: /data/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日志分割内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com