1.问题原因
公司系统采用 Spring Cloud 架构,其中服务注册和发现组件用的 Nacos,最近运维抱怨说,磁盘不够用,日志增长的太快。简单排查一下,罪魁祸首竟然是 Nacos。
按理说 Nacos 作为服务注册中心,不会应该会产生太多日志的,本身涉及的服务也不多,但几天就会产生 1G 以上的日志,的确有点疯狂。
经过排查,其中输出最多的日志为 usr/local/nacos/bin/logs/access_log.yyyy-mm-dd.log 格式的日志。日志中包含了微服务系统调用 Nacos 及集群之间通信的日志,比如心跳 (/nacos/v1/ns/instance/beat) 、获取服务列表 (/nacos/v1/ns/instance/list) 、状态检查 (/nacos/v1/ns/service/status) 等。
我们知道 Nacos 是基于 Spring Boot 实现的,access_log 日志是 Spring Boot 提内置的Tomcat的访问日志。关于该项日志的配置,没有保留最大天数,也没有日志大小的控制。而且随着 Nacos Server 与各个服务直接的心跳、获取、注册等会不停的产生访问日志,微服务越多,日志增长越快。这些日志打印会迅速占用完磁盘空间,带来资源浪费和运维成本。
附:查看磁盘信息命令和查看目录以及文件占用空间大小命令
1.df命令
查看文件系统占用磁盘空间大小。df,disk free简称。
(1)查看帮助
命令:df --help
解析:--help,就是命令的帮助手册,支持的具体命令和命令选项。
(2)查看磁盘文件系统占用空间
命令:df -h
解析:-h,人类可阅读格式打印信息。磁盘大小以G、M等单位格式打印出。
2.du命令
查看磁盘目录(文件夹),占用磁盘空间大小。du,disk usage简称。
(1)查看帮助
命令:du --help
解析:--help,就是命令的帮助手册,支持的具体命令和命令选项。
(2)当前目录下,统计每个目录