【ZooKeeper Notes 9】ZooKeepr日誌清理
》)。
正常執行過程中,ZK會不斷地把快照資料和事務日誌輸出到這兩個目錄,並且如果沒有人為操作的話,ZK自己是不會清理這些檔案的,需要管理員來清理,這裡介紹4種清理日誌的方法。在這4種方法中,推薦使用第一種方法,對於運維人員來說,將日誌清理工作獨立出來,便於統一管理也更可控。畢竟zk自帶的一些工具並不怎麼給力,這裡是社群反映的兩個問題:
https://issues.apache.org/jira/browse/ZOOKEEPER-957
http://zookeeper-user.578899.n2.nabble.com/PurgeTxnLog-td6304244.html
第一種,也是運維人員最常用的,寫一個刪除日誌指令碼,每天定時執行即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#!/bin/bash #snapshot file dir dataDir=/home/nileader/taokeeper/zk_data/version-2 #tran log dir dataLogDir=/home/nileader/taokeeper/zk_log/version-2 #zk log dir logDir=/home/nileader/taokeeper/logs #Leave 60 files count=60 count=$[ $count +1] ls -t $dataLogDir / log .*
| tail -n + $count | xargs rm -f ls -t $dataDir /snapshot.* | tail -n + $count |
xargs rm -f ls -t $logDir /zookeeper. log .*
| tail -n + $count | xargs rm -f |
以上這個指令碼定義了刪除對應兩個目錄中的檔案,保留最新的60個檔案,可以將他寫到crontab中,設定為每天凌晨2點執行一次就可以了。
第二種,使用ZK的工具類PurgeTxnLog,它的實現了一種簡單的歷史檔案清理策略,可以在這裡看一下他的使用方法:http://zookeeper.apache.org/doc/r3.4.3/api/index.html,可以指定要清理的目錄和需要保留的檔案數目,簡單使用如下:
-
java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir><snapDir> -n <count>
第三種,對於上面這個Java類的執行,ZK自己已經寫好了指令碼,在bin/zkCleanup.sh中,所以直接使用這個指令碼也是可以執行清理工作的。
第四種,從3.4.0開始,zookeeper提供了自動清理snapshot和事務日誌的功能,通過配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 這兩個引數能夠實現定時清理了。這兩個引數都是在zoo.cfg中配置的:
autopurge.purgeInterval 這個引數指定了清理頻率,單位是小時,需要填寫一個1或更大的整數,預設是0,表示不開啟自己清理功能。
autopurge.snapRetainCount 這個引數和上面的引數搭配使用,這個引數指定了需要保留的檔案數目。預設是保留3個。
本文出自 “ni掌櫃部落格” 部落格,請務必保留此出處http://nileader.blog.51cto.com/1381108/932156
相關文章
- zookeeper 清理snapshot及事務日誌
- Zookeeper原始碼分析(二) —– zookeeper日誌原始碼
- Zookeeper原始碼分析(二) ----- zookeeper日誌原始碼
- Oracle歸檔日誌清理Oracle
- docker 容器日誌清理方案Docker
- 日誌檔案過大清理
- 2024/9/9工作日誌
- 開發日誌9
- ELK日誌定期清理 ES索引資料索引
- 2024年9月19日日誌
- Sql Server2014資料庫清理日誌SQLServer資料庫
- Docker 日誌自動輪轉和清理配置Docker
- PostgreSQL的xlog/Wal歸檔及日誌清理SQL
- linux自動清理Docker標準輸出日誌LinuxDocker
- 佔用磁碟100%?Apache DolphinScheduler 日誌如何定時清理!Apache
- listener_scan1.log、listener.log監聽日誌清理
- Linux 使用 crontab 定時拆分日誌、清理過期檔案Linux
- [轉] MySQL binlog 日誌自動清理及手動刪除MySql
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- 資料庫MySQL一般查詢日誌或者慢查詢日誌歷史資料的清理資料庫MySql
- zookeeper面試1-9面試
- 我的工作日誌 - 2020年9月25日 星期五 雨
- nginx日誌檔案按天記錄定時清理迴圈記錄Nginx
- 日誌分析-apache日誌分析Apache
- 海豚排程清理:使用 API 輕鬆清理工作流歷史版本記錄,一鍵減少關係日誌和任務定義日誌表的資料量API
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- 日誌
- Core + Vue 後臺管理基礎框架9——統一日誌Vue框架
- 從Java 9開始JDK已經提供日誌記錄器JavaJDK
- logrotate自動輪換切割壓縮和清理歷史日誌場景介紹logrotate
- 【Spring】日誌列印sql,日誌配置列印sqlSpringSQL
- 關於MySQL日誌,我與阿里P9都聊了些啥?MySql阿里
- [Java/日誌] 日誌框架列印應用程式日誌程式碼的執行情況Java框架
- CMS日誌
- 日誌配置
- mybatis日誌MyBatis
- Weblogic日誌Web
- ros 日誌ROS
- Log日誌