陆陆续续维护sentry已经差不多一年了,因为是基于docker-compose部署的,这段时间对docker的学习也有了不少。今天记录一下解决的一个问题。
在公司同事的提醒下,服务器的磁盘空间吃紧告警了,查看了一下整体占用超过了88%
根据以往的经验,又是docker日志过大造成的,按照老办法去查看,果然。短短的一周时间,nginx日志吃掉了50G的硬盘,得想办法解决
咨询公司运维同事后,了解到docker可以配置log大小以及滚动数量,配合着new bing的问答。完整了调整,记录如下。
打开sentry的docker-compose.yaml,检索定位到nginx,添加如下配置
logging:
driver: "json-file"
options:
max-size: "10g"
max-file: "3"
在这个配置中:
-
logging 是用来配置日志的选项。
-
driver 是用来指定日志驱动的,这里我们使用的是 "json-file"。
-
options 是用来配置日志驱动的选项。
-
max-size 是用来限制每个日志
-
文件的大小,这里我们设置的是 "10m",表示每个日志文件最大为 10MB。
-
max-file 是用来限制可以存在的最大日志文件数量,这里我们设置的是 "3",表示最多保留 3 个日志文件
修改完,因为只是针对nginx的修改,可以根据服务名称只更新nginx镜像并重启
docker-compose up -d nginx
更新完成后,通过
docker-compose ps
检查容器是否工作正常,在上sentry-web检查服务整体是否正常
最后通过下述命令查看日志占用情况
docker ps | grep nginx
# 过滤出nginx的container id后检索日志大小
du -sh * | grep XXXXX