本文介紹關于在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自帶或者開源日志框架管控應用日志,并使用日志框架去輪詢和控制應用日志文件保存的數量、大小、個數等,這樣可以避免應用日志寫入過多耗盡磁盤空間。
文檔內容是否對您有幫助?