Docker部署SpringBoot项目,docker logs日志输出卡顿,服务阻塞,原因是启动脚本配置错误

 

一、现象

1. docker部署springBoot项目,服务正常启动,使用docker -it启动,日志能够实时输出,
而docker logs -f --tail="100" 服务名 查看日志,却总是会延后几分钟,

2. 当调用该服务的一个接口大量输出日志时,输出到中途会突然停住,且该服务阻塞

一段时间后恢复正常,从docker logs看无异常,

3. 可能抛出异常 java.io.IOException: Broken pipe,(此报错因为后端服务返回结果超时,是衍生问题,并不关键)

二、原因&解决方法

原因:docker启动脚本设置了日志往loki里输出,但是loki却没有启动,而服务启动后一直往loki里写日志失败,进而导致服务阻塞, 通过 tail -1000f /var/log/messages 命令查看系统报错日志。

解决:启动脚本里去除 --log-driver=loki 等指定日志输出的4行 ,改为 -v /home/logs:/home/logs

修改启动脚本并重启后,docker logs 日志实时输出,且插入大量数据也恢复正常

三、总结&反思

此系统在客户处部署,之前部署的同事配置了loki等日志监控的工具但是离职了,交接质量稀烂,根本没提,经历了一次断电重启后,不知道要启动loki,进而导致的这个问题。

关键从 docker logs里看不到异常,并且在日志输出量较低时,系统也能正常使用,所以给排查问题带来了麻烦。

启动脚本里写的loki,排查错误时却无视这个loki配置,想当然以为这个无所谓,也不知道要通过 tail -1000f /var/log/messages 来看日志。。。

附:对 tail -f /var/log/...的介绍

tail -f /var/log/syslog 查看系统日志,帮助排查错误 - pig2的日志 - About云开发 - Powered by Discuz!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值