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
上面的情况
配置文件里没有指定 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支持日志轮转
修改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中查询重复数据记录的方法的相关资料,需要的朋友可以参考下2016-01-01


最新评论