服务器磁盘空间占用异常排查&Nacos日志配置优化
1、背景
在某个项目中,客户要求每周两次例行巡检,巡检内容为CPU利用率、内存利用率和磁盘空间的检查。在巡查的过程中发现某台服务器的磁盘空间被异常占用。
2、原因
磁盘空间被异常占用,首先需要找出占用磁盘空间比较大的文件,逐一排查文件大小是否异常,确认大小异常的文件后需找到此文件是通过什么渠道生成的,视情况对该文件全部删除或者删除部分无用的文件。
3、解决方案
执行命令
在根目录下执行命令:du -sh *
通过查询结果可以看到nacos和root占用的磁盘空间比较大。
排查异常文件和解决方法
a、进入nacos文件下执行du -sh *命令得出如下结果
从结果中可以看到bin、data和logs文件是占用磁盘空间比较大的三个,其中data文件是存放数据的文件,操作不当可能会导致数据丢失可以排除。
b、进入到bin文件下执行du -sh *命令
这个占用磁盘空间巨大的logs文件是 Spring Boot 提供的 Tomcat 访问日志打印,Spring Boot 在关于该日志的选项中,没有最大保留天数或者日志大小控制的选项,所以需要定期清理。
c、进入到logs文件下执行du -sh *命令
从结果中可以看到日志中保留了一周的历史记录,可以把历史记录删除,或者在nacos启动命令后加上-Dcom.alibaba.nacos.naming.log.level=error -Dcom.alibaba.nacos.config.log.level=warn 参数,只保留少部分的历史记录。
d、进入root文件下执行du -sh *命令得出如下结果
从结果中可以看到logs文件大小异常,进入到logs文件下继续查找
根据结果继续进入csp文件查找
Csp是nacos存放流量监控日志的地方,从结果中可以看到很多nacos的流量控制历史日志,这些历史记录是可以删除的,需要定期清理。(linux命令:rm -rf *.20*)
4、总结
虽然客户的要求是每周巡查2次,但是作为运维人员,本着对客户负责、对工作负责,不能仅仅是为了客户的要求而去巡查服务器的情况,而是应该每天都要对服务器的情况了如指掌。与其出现故障再去排查修复,倒不如把隐患扼杀在摇篮。
5、后续
在nacos启动命令后加参数,只能对nacos的运行日志起到作用。其他的日志需要通过脚本的方式去清理。
调用脚本的命令:sh clear-logs.sh -p /home/nacos/nacos/logs -d 7