背景描述:

公司一台正式服务器,我们使用的是spring boot框架,机器上跑了很多微服务,这样就产生了大量不同的日志文件,其中几个服务,每个服务一天就能产生10G左右的日志文件,目前也只是写了脚本,凌晨删除几天前的日志来回收空间

这天登录到服务上随便看一下,发现空间占用过大,已经达到快报警的程度,然后检查脚本执行的情况,发现是正常的,日志已经被清理好了

Filesystem      Size Used Avail Use% Mounted on

/dev/vda1        40G  20G   18G  53% /

devtmpfs        7.8G    0  7.8G   0% /dev

tmpfs           7.8G     0 7.8G   0% /dev/shm

tmpfs           7.8G 798M  7.0G  11% /run

tmpfs           7.8G     0 7.8G   0% /sys/fs/cgroup

tmpfs           1.6G     0 1.6G   0% /run/user/0

/dev/vdb1       296G 197G   84G  71% /mnt/hug

tmpfs           1.6G     0 1.6G   0% /run/user/1007

tmpfs           7.8G 245M  7.6G   4% /tmp

我发现df –hdu –sh */    命令的结果不一样

使用lsof|grep delete查看是否存在文件被删除但是依然被系统调用的情况

java      6815 22989    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23106    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23148    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23216    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23294    root    0u     CHR              136,7       0t0         10 /dev/pts/7 (deleted)

java      6815 23297    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23354    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23368    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23398    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23435    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23441    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23456    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23457    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 23458    root    0u     CHR              136,7        0t0         10 /dev/pts/7 (deleted)

java      6815 28710    root   0u      CHR              136,7        0t0         10 /dev/pts/7 (deleted)

好吧,发现大量的被删除文件依然被系统调用中,其中最多的是最近新部署的efk环境的插件filebeat,大概知道问题的原因了,filebeat在收集日志时我使用的*来匹配的,如下:

filebeat.prospectors:

- type: log

 enabled: true

 paths:

    - /mnt/hug/service/*/*.log

    - /home/hug-web/apache-tomcat-7.0.52/logs/catalina*.log

    - /home/Hug/tomcat_hug/logs/catalina*.log

    - /home/hug-manage/apache-tomcat-7.0.52/logs/catalina*.log

    - /home/interview_manage/apache-tomcat-7.0.52/logs/catalina*.log

    - /home/lanniu-manage/apache-tomcat-7.0.52/catalina*.log

但是日志是每天都会删除一些的,可能导致filebeat进程还在占用这个文件,但是这个文件已经被删掉了,在重启filebeat之后故障恢复正常