24人参与 • 2025-05-29 • 其他编程
nacos 作为阿里巴巴开源的服务发现与配置管理平台,在微服务架构中广泛使用。随着运行时间的增长,nacos 的日志文件(logs/
)和 raft 持久化数据(data/protocol/raft/
)可能会占用大量磁盘空间,影响系统稳定性。
本文详细探讨:
适用于 nacos 单机模式(standalone) 和 集群模式(cluster),并提供代码示例和配置调整方案。
nacos 的 logs/
目录存储了运行日志,主要包括:
nacos.log
(主日志)access_log.xxxx-xx-xx.log
(http 访问日志)config.log
(配置管理日志)naming.log
(服务发现日志)这些日志用于 故障排查、性能监控、安全审计,但长期积累会占用大量磁盘空间。
文件类型 | 是否可删除 | 备注 |
---|---|---|
nacos.log (当前日志) | ❌ 不建议直接删除 | 可清空(echo "" > nacos.log ) |
access_log.*.log (旧访问日志) | ✅ 可删除 | 建议保留最近 7 天日志 |
config.log / naming.log | ✅ 可删除 | 按需保留 |
# 清空当前日志(避免直接 rm) echo "" > nacos.log # 删除 7 天前的访问日志 find logs/ -name "access_log.*.log" -mtime +7 -exec rm -f {} \;
修改 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
nacos 2.0+ 使用 jraft 实现分布式一致性,data/protocol/raft/
存储:
log/
:raft 操作日志(类似 wal)snapshot/
:数据快照(用于恢复)meta.json
:节点元数据直接删除可能导致 集群选举失败或数据丢失!
运行模式 | 是否可删除 | 风险 |
---|---|---|
单机模式(standalone) | ✅ 可删除(重启后重建) | 数据重置 |
集群模式(cluster) | ❌ 不可直接删除 | 可能导致集群分 裂 |
修改 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
# 保留最新快照,删除旧的 cd data/protocol/raft/snapshot/ ls -t | tail -n +2 | xargs rm -rf # 保留最新 1 个快照
# 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
find + logrotate
)。rm
正在写入的日志文件。raft.conf
,而非手动删除。raft/
,但需重启重建。#!/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
logback.xml
自动化管理。通过合理配置,nacos 可以长期稳定运行,避免磁盘爆满问题。
以上就是nacos日志与raft数据清理指南的详细内容,更多关于nacos与raft数据清理的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论