开发者社区 > 云原生 > 正文

nacos的现在生产环境有点大,access日志会定时清理吗?

nacos的现在生产环境有点大,access日志会定时清理吗?

展开
收起
哈喽!小陈 2022-08-22 16:41:23 909 0
5 条回答
写回答
取消 提交回答
  • Nacos 是基于 Spring Boot 实现的,access_log 日志是 Spring Boot 提内置的Tomcat的访问日志。关于该项日志的配置,没有保留最大天数,也没有日志大小的控制。而且随着 Nacos Server 与各个服务直接的心跳、获取、注册等会不停的产生访问日志,微服务越多,日志增长越快。这些日志打印会迅速占用完磁盘空间,带来资源浪费和运维成本。不会定时清理,可以使用脚本来清理。

    1、编写脚本如下:

    #!/bin/bash
    
    # 输出日志位置
    logFile="/opt/payment/soft/nacos/nacos/bin/logs/nacos_del_access.log"
    # 保留7天日志
    dateLog=`date -d "-7 day" +%Y-%m-%d`
    
    # 具体位置可调整
    delFilePath="/opt/payment/soft/nacos/nacos/bin/logs/access_log.${dateLog}.log"
    
    # 日志文件存在,则删除
    if [ -f "${delFilePath}" ];then
        rm -rf ${delFilePath}
        curDate=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
        echo '['${curDate}'] 删除文件'${delFilePath} >>${logFile}
    fi
    

    2、给脚本增加权限

    chmod 755 nacosDelAccessLogs.sh
    

    3、使用crontab添加定时执行命令

    0 23 * * * /usr/local nacosDelAccessLogs.sh (23点执行脚本)
    

    5、启动脚本任务

    service crond start
    

    ——参考链接

    2023-12-03 23:44:56
    赞同 展开评论 打赏
  • 在生产环境中,Nacos确实会定时清理access日志。默认情况下,Nacos会保留7天的日志,即只保留最近7天的access日志文件。超过7天的日志文件会被自动删除。

    具体的清理操作如下:

    1、Nacos会检查日志文件的名称,它是由日期和时间组成的,例如access_log.2023-07-06.log。
    2、如果日志文件名所对应的日期早于7天前,那么这个文件就会被删除。例如,如果今天是2023年7月6日,那么access_log.2023-07-06.log这个文件是安全的,不会被删除,但是access_log.2023-06-30.log这个文件因为是6月30日的日志,已经超过7天,所以会被删除。
    此外,为了确保日志清理的正确性,需要确保Nacos有足够的权限来删除这些日志文件。

    2023-11-29 12:01:17
    赞同 1 展开评论 打赏
  • 北京阿里云ACE会长

    日志默认是不会自动清理的,但可以配置定时清理。Nacos提供了两种日志清理策略:手动清理和自动清理。手动清理是指通过Nacos管理界面或API手动删除不需要的日志文件,而自动清理是指配置Nacos自动删除指定的日志文件。
    可以在Nacos的配置文件中设置日志清理策略。例如,可以设置每天清理日志,或者设置日志文件大小达到一定大小时清理。具体的配置方法可以参考Nacos官方文档。
    如果Nacos的access日志很大,建议配置定时清理策略,以避免日志文件过大

    2023-11-25 22:49:25
    赞同 展开评论 打赏
  • 是的,Nacos 提供了自动清理日志的功能,可以设置定期清理的时间间隔。在我的知识库中提到,“nacos.access_log占用了磁盘空间,如何关闭”,这是指当Nacos 记录的日志量太大导致磁盘空间不足时,可以使用清理脚本来定期清理日志,以减少磁盘占用的空间。
    具体的操作步骤如下:

    1. 创建名为 /opt/nacos/bin/clear-log.sh 的 Shell 脚本文件,编辑该文件以清除日志内容;
    #!/bin/bash
    LOG_DIR=/data/nacos/log
    find $LOG_DIR -name '*.log' -mtime +3 -type f -delete
    

    该脚本将会每三天自动清除超过3天的日志文件。请您将第2行中 LOG_DIR 变量替换为对应的实际日志存储目录。

    1. 在 crontab 中创建定时任务
    crontab -e
    0 */3 * * * /opt/nacos/bin/clear-log.sh > /dev/null 2>&1 &
    

    这样每3小时就会执行一次 clear-log.sh 脚本清理日志文件。如果需要更频繁的清理,请将 */3 改为更短的时间间隔。最后一条语句将会把清理的结果输出到 /dev/null 并将标准错误输出到标准输出。

    2023-11-24 14:50:15
    赞同 展开评论 打赏
  • Nacos在生产环境中通常会定时清理access日志。具体的清理操作可以编写脚本实现,例如在bash脚本中,先定义要删除的日志文件路径(delFilePath),然后判断该文件是否存在,如果存在则删除,并把删除操作写入日志。图片.png

    2023-11-23 09:49:24
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Python第四讲——使用IPython/Jupyter Notebook与日志服务玩转超大规模数据分析与可视化 立即下载
大规模日志数据平台架构面临的问题与挑战 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载