【sentry维护日记】nginx日志过大问题解决

541 阅读2分钟

陆陆续续维护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