王立龙
2天前 · 西安天和云脉·研发lead,架构师,运维
Docker配置引发的一次宕机事件
前两天飞书群里自动化测试结果通知,看到一个项目的自动化几乎全部失败,立马查看该项目所在的服务器,发现磁盘空间已经100%。此时访问该项目服务,实际上已经访问不通了。随后查到运行主服务的docker容器占了19G的空间。当时这个服务器本身是个小体量,19G几乎是总空间的一半了。再细查,发现是该docker的容器日志惹的祸,估计是最近访问高峰,或者产生过持续性的错误日志。不论如何,此时先快速解决,恢复服务访问。直接先释放容器日志所占空间,释放完再看磁盘空间,此时直接掉到了55%。服务恢复了访问。接下来是解决根因,为什么会打满磁盘,过几天会不会又这样?查了下docker-compose配置,发现该容器未设置日志轮转限制,这就是日志膨胀的根本原因。于是添加了日志轮转,容器日志限制在200M,超出这个大小会自动从前往后清理。然后重建该容器,重新运行(该操作会导致服务短暂中断,需要在业务空闲期操作)需要指出的是做这个日志限制,并不会影响业务日志,因为真正的业务日志,是通过服务中配置主动输出到格式化的文件,并输出到挂载的宿主机目录中。所以容器日志和自定义的业务日志是两码事,不会影响。此后一段时间,没有再出现这样的问题,磁盘空间一直稳定在55%。后续继续关注吧,前期运维的坑,还得慢慢填。
发布于 陕西
分享
评论
未登录
友善发言
image-upload
评论
加载中