【TDengine 使用环境】
预生产环境
【TDengine 版本】
3.3.6
【操作系统以及版本】
centos7.9
【部署方式】
容器部署
【集群节点数】
【集群副本数】
【描述业务影响】
【问题复现路径/shan】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
容器运行一段时间之后,就会出现一个非常大的类似日志文件,文件名为“容器id-json.log”,是否可以直接删除,如何避免这个文件的异常增长
【资源配置】
【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)
问了下 ai ,我觉得说的没什么问题,您可以先看下。
文件说明
容器日志文件名为“<容器ID>-json.log”,这是Docker默认使用json-file日志驱动时生成的日志文件,位于宿主机路径如/var/lib/docker/containers/<容器ID>/<容器ID>-json.log。它记录容器的标准输出(stdout)和标准错误(stderr),如果容器输出大量日志(如调试信息或错误),文件会快速增长,导致磁盘空间耗尽。
是否可以直接删除
不推荐直接删除(如rm -rf <容器ID>-json.log),因为:
-
Docker守护进程(daemon)持有该文件的句柄,即使删除文件,空间也不会立即释放,直到重启容器或Docker服务。 这可能导致容器日志丢失或进程异常。
-
更好的方式是截断文件(truncate),清空内容而不删除文件:
text
echo "" > /var/lib/docker/containers/<容器ID>/<容器ID>-json.log
或使用truncate -s 0 /var/lib/docker/containers/<容器ID>/<容器ID>-json.log。 这会立即释放空间,且不影响运行中的容器。
如果容器已停止,可以安全删除文件,但建议先备份日志以防需要排查问题。
如何避免异常增长
要防止日志文件无限增长,可以从以下方面配置和管理:
-
配置日志旋转(Log Rotation):
-
在启动容器时使用–log-opt选项限制文件大小和数量。例如:
text
docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=5 your-image
-
对于已运行容器,可以通过更新Docker daemon配置(/etc/docker/daemon.json)并重启Docker服务来全局应用:
text
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
}
}
然后重启:systemctl restart docker。
-
切换日志驱动(Logging Driver):
-
定期清理和监控:
-
优化应用日志输出:
通过这些方法,可以有效控制日志增长。如果问题持续,检查容器是否输出异常日志(如循环错误),并排查根因。
system
(system)
关闭
4
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。