- 首页 >
- 问答 >
-
智能运维 >
- Ubuntu Overlay配置中如何处理日志
Ubuntu Overlay配置中如何处理日志
小樊
44
2025-12-22 00:48:06
Ubuntu Overlay配置中的日志处理指南
一 日志来源与定位
- 内核与挂载日志:OverlayFS 的内核消息会进入内核日志,可用以下方式查看
- 查看系统日志:grep -i overlay /var/log/syslog
- 查看内核环形缓冲:dmesg | grep overlay
- 查看 systemd 日志:journalctl -xe | grep overlay
- 容器运行时日志(若使用 Docker 的 overlay2 存储驱动):容器标准输出会被写入 /var/lib/docker/containers/ 下各容器的 -json.log 文件。
- 应用自身日志:业务应用通常写入 /var/log/ 或容器内的日志路径,需结合具体应用配置确认。
二 日志级别与持久化配置
- rsyslog 日志级别与输出:编辑 /etc/rsyslog.conf 或 /etc/rsyslog.d/50-default.conf,为不同设施设置级别与文件,例如
- 记录内核日志到文件:kern. /var/log/kern.log*
- 记录认证日志:authpriv. /var/log/auth.log*
- 记录计划任务日志:cron. /var/log/cron.log*
- 修改后重启服务:systemctl restart rsyslog。
- systemd-journald 存储与保留:编辑 /etc/systemd/journald.conf,控制日志占用与滚动,例如
- 设置上限:SystemMaxUse=50M、SystemKeepFree=10M、SystemMaxFileSize=10M、SystemMaxFiles=5
- 重启服务:systemctl restart systemd-journald。
- 容器日志驱动与大小限制(Docker):在 /etc/docker/daemon.json 中配置
- 示例:
{
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “200m”,
“max-file”: “5”
}
}
- 使配置生效:systemctl daemon-reload && systemctl restart docker。
三 日志轮转与空间清理
- 系统日志轮转:使用 logrotate 管理 /var/log/*.log 等日志的轮转与压缩,可按需设置
- 示例策略:daily、rotate 7、compress、missingok、notifempty、create 640 root adm。
- 容器日志清理:
- 安全清空容器日志文件:cat /dev/null > /var/lib/docker/containers/*-json.log
- 配合脚本与 crontab 定期执行,例如每小时清理一次:
- 脚本示例:
#!/bin/bash
for f in /var/lib/docker/containers/*-json.log; do
[ -f “$f” ] && cat /dev/null > “$f”
done
- 定时任务:*0 /1 * * * /path/cleanLog.sh >/var/log/cleanLog.log 2>&1
- 大范围回收空间:docker system prune --all --force --volumes(操作前请确认影响并做好备份)。
四 针对 OverlayFS 的排查与日志要点
- 检查挂载参数:确认 lowerdir、upperdir、workdir 正确且目录可访问
- 示例:mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
- 检查底层文件系统与空间:对底层分区执行 fsck,并用 df -h 确认 upperdir/workdir 所在分区剩余空间充足。
- 权限与所有权:确保相关目录权限与属主正确,例如 chmod -R 755 /path、chown -R user:group /path。
- 故障排查流程:完成修复后尝试重新挂载;若仍异常,结合前述日志定位(如 /var/log/syslog、dmesg、journalctl)并视情况重启相关服务(如 systemctl restart docker)。