本文介绍关于在EDAS中部署应用时,生成的日志清理机制的常见问题。

在EDAS中部署的应用的日志是否会被定期清理?

仅满足以下条件,EDAS的定时任务脚本才会定期清理 Ali-Tomcat 目录下的日志:

  • 在ECS集群环境下部署的应用。
  • 应用的运行环境是EDAS-Container x.x.x。
  • 使用WAR包格式部署应用(该情况会使用Ali-Tomcat)。

您可以使用admin用户,在ECS集群应用部署的ECS主机上,执行crontab -l命令,查看每天凌晨3点10分的定时清理任务。

[admin@iZbp1bzvz55uz2x8s0bXXXX ~]$ crontab -l
10 3 * * * /home/admin/edas-agent/bin/rotator.sh
            

在ECS集群但应用运行环境非EDAS-Container x.x.x、Swarm集群、容器服务K8s集群的应用日志以及可能产生的Tomcat日志目前暂时不会被清理。

EDAS的日志定时清理脚本会清理哪些路径下的日志?清理的规则又是什么?

  • /home/admin/taobao-tomcat*/目录下包含log、out关键字,且文件大于1 KB,最后修改时间是5天前的日志文件会被清理掉。同时,会轮询 /home/admin/taobao-tomcat*/catalina.out文件。
  • /home/admin/configclient/目录下包含log关键字,且文件大于1 KB,最后修改时间是7天前的日志文件会被清理掉。
  • /home/admin/logs/diamond-client/目录下包含log关键字,且文件大于1 KB,最后修改时间是7天前的日志文件会被清理掉。
  • /home/admin/logs/目录下(包括子目录)以.log 后缀结尾的,且文件大小大于500 MB,文件个数大于3个且较旧的日志文件会被清理掉。
说明 如需控制日志保留时长,可以将日志保存到日志服务。 日志服务logstore可以设置保存时长。 具体操作,请参见配置日志收集

EDAS的日志定时清理脚本无法满足使用需求,日志中仍然会产生很多日志怎么办?

Ali-Tomcat基于Apache Tomcat定制,在日志记录上与Apache Tomcat保持一致。应用部署在EDAS中,运行环境无论是EDAS-Container x.x.x(内含Ali-Tomcat),还是Apache Tomcat,应用都不宜向Tomcat的catalina.out日志文件写入较多的日志。如果将应用自定义的日志输出到Tomcat的日志目录$CATALINA_HOME/logs,频繁写入可能会导致ECS主机/home挂载点目录对应的磁盘空间耗尽。

因此建议您在应用中使用Java自带或者开源日志框架管控应用日志,并使用日志框架去轮询和控制应用日志文件保存的数量、大小、个数等,这样可以避免应用日志写入过多耗尽磁盘空间。