it编程 > 编程语言 > 其他编程

Nacos日志与Raft的数据清理指南

24人参与 2025-05-29 其他编程

引言

nacos 作为阿里巴巴开源的服务发现与配置管理平台,在微服务架构中广泛使用。随着运行时间的增长,nacos 的日志文件(logs/)和 raft 持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性。

本文详细探讨:

适用于 nacos 单机模式(standalone) 和 集群模式(cluster),并提供代码示例和配置调整方案。

1. nacos 日志文件(logs/ 目录)清理

1.1 日志文件的作用

nacos 的 logs/ 目录存储了运行日志,主要包括:

这些日志用于 故障排查、性能监控、安全审计,但长期积累会占用大量磁盘空间。

1.2 是否可以删除?

文件类型是否可删除备注
nacos.log(当前日志)❌ 不建议直接删除可清空(echo "" > nacos.log
access_log.*.log(旧访问日志)✅ 可删除建议保留最近 7 天日志
config.log / naming.log✅ 可删除按需保留

1.3 安全清理方案

(1) 手动清理(适用于临时维护)

# 清空当前日志(避免直接 rm)
echo "" > nacos.log

# 删除 7 天前的访问日志
find logs/ -name "access_log.*.log" -mtime +7 -exec rm -f {} \;

(2) 配置 logback 自动轮转(推荐)

修改 conf/logback.xml,限制日志大小和保留天数:

<configuration>
    <appender name="nacoslog" class="ch.qos.logback.core.rolling.rollingfileappender">
        <file>logs/nacos.log</file>
        <rollingpolicy class="ch.qos.logback.core.rolling.sizeandtimebasedrollingpolicy">
            <filenamepattern>logs/nacos.%d{yyyy-mm-dd}.%i.log</filenamepattern>
            <!-- 单个日志文件最大 100mb -->
            <maxfilesize>100mb</maxfilesize>
            <!-- 保留 30 天日志 -->
            <maxhistory>30</maxhistory>
            <!-- 总日志大小不超过 10gb -->
            <totalsizecap>10gb</totalsizecap>
        </rollingpolicy>
    </appender>
</configuration>

重启 nacos 生效:

sh startup.sh -m standalone

2. raft 数据目录(data/protocol/raft/)清理

2.1 raft 数据的作用

nacos 2.0+ 使用 jraft 实现分布式一致性,data/protocol/raft/ 存储:

直接删除可能导致 集群选举失败或数据丢失!

2.2 是否可以删除?

运行模式是否可删除风险
单机模式(standalone)✅ 可删除(重启后重建)数据重置
集群模式(cluster)❌ 不可直接删除可能导致集群分 裂

2.3 安全优化方案

(1) 调整 raft 快照保留策略

修改 conf/raft.conf(nacos 2.2+):

# 保留的快照数量(默认 3,改为 1 可节省空间)
raft.snapshot.retain_num = 1

# 日志分段大小(默认 100mb,可降低)
raft.log.segment_size = 50mb

重启集群生效:

sh shutdown.sh
sh startup.sh -m cluster

(2) 手动清理旧快照(谨慎操作)

# 保留最新快照,删除旧的
cd data/protocol/raft/snapshot/
ls -t | tail -n +2 | xargs rm -rf  # 保留最新 1 个快照

(3) 极端情况:重建 raft 数据(单机模式)

# 1. 停止 nacos
sh shutdown.sh

# 2. 备份 raft 数据
cp -r data/protocol/raft/ raft_backup/

# 3. 清理 raft 目录
rm -rf data/protocol/raft/*

# 4. 重启 nacos(自动重建数据)
sh startup.sh -m standalone

3. 最佳实践总结

3.1 日志管理

3.2 raft 数据管理

3.3 自动化运维脚本示例

#!/bin/bash
# nacos 日志与 raft 数据清理脚本

# 1. 清理 7 天前的日志
find /opt/nacos/logs/ -name "*.log*" -mtime +7 -exec rm -f {} \;

# 2. 清理旧 raft 快照(单机模式)
if [ "$mode" = "standalone" ]; then
    cd /opt/nacos/data/protocol/raft/snapshot/
    ls -t | tail -n +2 | xargs rm -rf
fi

# 3. 重启 nacos(可选)
# sh /opt/nacos/bin/shutdown.sh
# sh /opt/nacos/bin/startup.sh -m $mode

4. 结论

通过合理配置,nacos 可以长期稳定运行,避免磁盘爆满问题。

以上就是nacos日志与raft数据清理指南的详细内容,更多关于nacos与raft数据清理的资料请关注代码网其它相关文章!

(0)

您想发表意见!!点此发布评论

推荐阅读

Jvm sandbox mock机制的实践过程

05-28

git如何查看提交行数、删除行数

05-26

如何快速解决连接git/github失败的问题

06-03

GIT统计代码提交次数和行数方式

05-25

pandas实现数据concat拼接的示例代码

06-05

git stash命令基本用法详解

06-05

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论