Zookeeper日志清理

周末的時(shí)候在家收到了工作的告警通知,遠(yuǎn)程登錄后發(fā)現(xiàn)是自運(yùn)維的CK集群硬盤(pán)空間不足,通過(guò)命令查看各個(gè)目錄的大小,確定是Zookeeper的日志及snapshot占用了絕大部分空間。
Zookeeper主要存放了兩類(lèi)文件,snapshot和log,前者是內(nèi)存數(shù)據(jù)的快照,后者是記錄修改數(shù)據(jù)相關(guān)的操作記錄,類(lèi)似于mysql的binlog。
正常的運(yùn)行過(guò)程中,zk會(huì)不斷的將快照數(shù)據(jù)和日志記錄輸出到這兩個(gè)目錄,并且zk不會(huì)自動(dòng)清理這些文件,所以需要我們手動(dòng)清理。清理的腳本如下:

#! /bin/bash
# snapshot目錄
snapshotDir=xxxx
#log目錄
dataLogDir=xxxx
logDir=xxxx
#保留文件數(shù)量
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開(kāi)始,zookeeper提供了自動(dòng)清理snapshotlog的功能,在zoo.cfg文件中配置如下參數(shù):

# 指定保留文件數(shù)量
autopurge.snapRetainCount=10
# 指定清理頻率,單位是小時(shí),默認(rèn)0,表示不開(kāi)啟
autopurge.purgeInterval=12
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容