Zookeeper日志清理

周末的时候在家收到了工作的告警通知,远程登录后发现是自运维的CK集群硬盘空间不足,通过命令查看各个目录的大小,确定是Zookeeper的日志及snapshot占用了绝大部分空间。
Zookeeper主要存放了两类文件,snapshot和log,前者是内存数据的快照,后者是记录修改数据相关的操作记录,类似于mysql的binlog。
正常的运行过程中,zk会不断的将快照数据和日志记录输出到这两个目录,并且zk不会自动清理这些文件,所以需要我们手动清理。清理的脚本如下:

#! /bin/bash
# snapshot目录
snapshotDir=xxxx
#log目录
dataLogDir=xxxx
logDir=xxxx
#保留文件数量
leftFileNum=10
#删除
ls -t $snapshotDir/snapshot.* | tail -n +$leftFileNum | xargs rm -f
ls -t $dataLogDir/log.* | tail -n +$leftFileNum | xargs rm -f
ls -t $logDir/zookeeper.log.* | tail -n +$leftFileNum | xargs rm -f

从3.4.0开始,zookeeper提供了自动清理snapshotlog的功能,在zoo.cfg文件中配置如下参数:

# 指定保留文件数量
autopurge.snapRetainCount=10
# 指定清理频率,单位是小时,默认0,表示不开启
autopurge.purgeInterval=12
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容