42人参与 • 2026-09-02 • mongodb
grep -i "path" /etc/mongod.conf
显示日志路径:
path: /data/mongodb/log/mongod.log
dbpath: /data/mongodb/data
ls -l /etc/logrotate.d/mongod
如果存在
cat /etc/logrotate.d/mongod
如果不存在,创建文件
sudo vim /etc/logrotate.d/mongod
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
上面的情况
配置文件里没有指定 pid 文件路径(
grep -i "pid"没有输出)默认的
/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配置文件 /etc/mongod.conf:
sudo vim /etc/mongod.conf
确保 systemlog 部分包含:
systemlog: destination: file path: /data/mongodb/log/mongod.log logappend: true logrotate: rename # 关键配置
添加: logrotate: rename # 关键配置
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日志分割内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论