在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDir目录,snapshot和事务日志都保存在这个目录中,正常运行过程中,ZK会不断地把快照数据和事务日志输出到这两个目录,并且如果没有人为操作的话,ZK自己是不会清理这些文件的,需要管理员来清理,这里介绍4种清理日志的方法。在这4种方法中,推荐使用第一种方法,对于运维人员来说,将日志清理工作独立出来,便于统一管理也更可控。毕竟zk自带的一些工具并不怎么给力,这里是社区反映的两个问题:

第一种,也是运维人员最常用的,写一个删除日志脚本,每天定时执行即可:

#!/bin/bash
           
#snapshot file dir
dataDir=/home/yunva/zookeeper/bin/snapshot/version-2
#tran log dir
dataLogDir=/home/yunva/zookeeper/bin/snapshot/version-2
#zk log dir
#Leave 30 files
count=30
count=$[$count+1]
ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f
ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f

crontab -e
2 2 * * * /bin/bash /root/clean_zook_log.sh > /dev/null 2>&1

以上这个脚本定义了删除对应两个目录中的文件,保留最新的30个文件,可以将他写到crontab中,设置为每天凌晨2点2分执行一次就可以了。

第二种,使用ZK的工具类PurgeTxnLog,它的实现了一种简单的历史文件清理策略,简单使用如下:
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个。

通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。
这两个参数都是在zoo.cfg中配置的,将其前面的注释去掉,根据需要修改日志保留个数:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/yunva/zookeeper-3.4.6/data
dataLogDir=/data/yunva/zookeeper-3.4.6/logs
clientPort=2181
autopurge.snapRetainCount=20
autopurge.purgeInterval=48
server.1=u04rtv01.yaya.corp:2888:3888
server.2=u04rtv02.yaya.corp:2888:3888
server.3=u04rtv03.yaya.corp:2888:3888
server.4=u04rtv04.yaya.corp:2888:3888
server.5=u04rtv05.yaya.corp:2888:3888

此处我们的配置就是:保留48小时内的日志,并且保留20个文件

autopurge.purgeInterval  这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能。

autopurge.snapRetainCount 这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。

查看zook日志的方法
cd /data/zookeeper-3.4.6

java -classpath .:lib/slf4j-api-1.6.1.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.LogFormatter /data/zookeeper-3.4.6/logs/version-2/log.400000001

# java -classpath .:lib/slf4j-api-1.6.1.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.LogFormatter /data/zookeeper-3.4.6/logs/version-2/log.200000001
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
ZooKeeper Transactional Log File with dbid 0 txnlog format version 2
11/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x0 zxid 0x200000001 createSession 600011/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x2 zxid 0x200000002 create '/consumers,,v{s{31,s{'world,'anyone}}},F,111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x4 zxid 0x200000003 error -10111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x5 zxid 0x200000004 create '/brokers,,v{s{31,s{'world,'anyone}}},F,211/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x6 zxid 0x200000005 create '/brokers/ids,,v{s{31,s{'world,'anyone}}},F,111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x8 zxid 0x200000006 create '/brokers/topics,,v{s{31,s{'world,'anyone}}},F,211/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0xa zxid 0x200000007 error -10111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0xb zxid 0x200000008 create '/config,,v{s{31,s{'world,'anyone}}},F,311/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0xc zxid 0x200000009 create '/config/changes,,v{s{31,s{'world,'anyone}}},F,111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0xe zxid 0x20000000a create '/config/topics,,v{s{31,s{'world,'anyone}}},F,211/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x10 zxid 0x20000000b error -10111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x11 zxid 0x20000000c create '/admin,,v{s{31,s{'world,'anyone}}},F,411/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x12 zxid 0x20000000d create '/admin/delete_topics,,v{s{31,s{'world,'anyone}}},F,111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x16 zxid 0x20000000e create '/controller,#7b2276657273696f6e223a312c2262726f6b65726964223a302c2274696d657374616d70223a2231343739393030333933363132227d,v{s{31,s{'world,'anyone}}},T,511/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x1a zxid 0x20000000f error -10111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x1b zxid 0x200000010 create '/controller_epoch,#31,v{s{31,s{'world,'anyone}}},F,611/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x27 zxid 0x200000011 error -10111/23/16 7:26:33 PM CST session 0x25890ed3acc0000 cxid 0x2c zxid 0x200000012 create '/brokers/ids/0,#7b226a6d785f706f7274223a2d312c2274696d657374616d70223a2231343739393030333933363932222c22686f7374223a226c6f63616c686f7374222c2276657273696f6e223a312c22706f7274223a393039327d,v{s{31,s{'world,'anyone}}},T,111/23/16 7:28:47 PM CST session 0x25890ed3acc0000 cxid 0x33 zxid 0x200000013 closeSession null
11/23/16 7:30:17 PM CST session 0x15890ed3ace0000 cxid 0x0 zxid 0x200000014 createSession 600011/23/16 7:30:17 PM CST session 0x15890ed3ace0000 cxid 0xa zxid 0x200000015 create '/controller,#7b2276657273696f6e223a312c2262726f6b65726964223a302c2274696d657374616d70223a2231343739393030363137383833227d,v{s{31,s{'world,'anyone}}},T,711/23/16 7:30:17 PM CST session 0x15890ed3ace0000 cxid 0xf zxid 0x200000016 setData '/controller_epoch,#32,111/23/16 7:30:17 PM CST session 0x15890ed3ace0000 cxid 0x1b zxid 0x200000017 error -10111/23/16 7:30:17 PM CST session 0x15890ed3ace0000 cxid 0x20 zxid 0x200000018 create '/brokers/ids/0,#7b226a6d785f706f7274223a2d312c2274696d657374616d70223a2231343739393030363137393735222c22686f7374223a226c6f63616c686f7374222c2276657273696f6e223a312c22706f7274223a393039327d,v{s{31,s{'world,'anyone}}},T,211/23/16 7:37:04 PM CST session 0x25890ed3acc0001 cxid 0x0 zxid 0x200000019 createSession 600011/23/16 7:37:04 PM CST session 0x25890ed3acc0001 cxid 0xe zxid 0x20000001a error -11011/23/16 7:37:04 PM CST session 0x25890ed3acc0001 cxid 0x11 zxid 0x20000001b closeSession null
11/23/16 7:37:36 PM CST session 0x15890ed3ace0001 cxid 0x0 zxid 0x20000001c createSession 600011/23/16 7:37:36 PM CST session 0x15890ed3ace0001 cxid 0xe zxid 0x20000001d create '/brokers/ids/1,#7b226a6d785f706f7274223a2d312c2274696d657374616d70223a2231343739393031303536343337222c22686f7374223a22302e302e302e30222c2276657273696f6e223a312c22706f7274223a393039327d,v{s{31,s{'world,'anyone}}},T,311/23/16 7:38:11 PM CST session 0x25890ed3acc0002 cxid 0x0 zxid 0x20000001e createSession 600011/23/16 7:38:11 PM CST session 0x25890ed3acc0002 cxid 0xe zxid 0x20000001f create '/brokers/ids/2,#7b226a6d785f706f7274223a2d312c2274696d657374616d70223a2231343739393031303931393335222c22686f7374223a22302e302e302e30222c2276657273696f6e223a312c22706f7274223a393039327d,v{s{31,s{'world,'anyone}}},T,411/23/16 8:17:24 PM CST session 0x15890ed3ace0000 cxid 0x32 zxid 0x200000020 closeSession null
11/23/16 8:17:24 PM CST session 0x25890ed3acc0002 cxid 0x14 zxid 0x200000021 create '/controller,#7b2276657273696f6e223a312c2262726f6b65726964223a322c2274696d657374616d70223a2231343739393033343434333634227d,v{s{31,s{'world,'anyone}}},T,811/23/16 8:17:24 PM CST session 0x25890ed3acc0002 cxid 0x17 zxid 0x200000022 setData '/controller_epoch,#33,211/23/16 8:17:24 PM CST session 0x25890ed3acc0002 cxid 0x25 zxid 0x200000023 error -10111/23/16 8:17:29 PM CST session 0x25890ed3acc0002 cxid 0x2a zxid 0x200000024 closeSession null
11/23/16 8:17:29 PM CST session 0x15890ed3ace0001 cxid 0x1b zxid 0x200000025 create '/controller,#7b2276657273696f6e223a312c2262726f6b65726964223a312c2274696d657374616d70223a2231343739393033343439333833227d,v{s{31,s{'world,'anyone}}},T,911/23/16 8:17:29 PM CST session 0x15890ed3ace0001 cxid 0x1e zxid 0x200000026 setData '/controller_epoch,#34,311/23/16 8:17:29 PM CST session 0x15890ed3ace0001 cxid 0x2b zxid 0x200000027 error -10111/23/16 8:17:29 PM CST session 0x15890ed3ace0001 cxid 0x2e zxid 0x200000028 closeSession null
EOF reached after 40 txns.

转载于:https://www.cnblogs.com/reblue520/p/6239732.html

zookeeper3.4.6配置实现自动清理日志相关推荐

  1. zookeeper3.4.6配置实现自动清理日志【转】

    在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDir目录,snapshot和事务日志都保存 ...

  2. PostgreSQL归档配置及自动清理归档日志

    PostgreSQL归档配置及自动清理归档日志 在生产环境中,数据库都需要开启归档模式,那么PG该如何开始归档呢? PG中归档配置涉及几个参数: # - Archiving - #是否开启归档 #ar ...

  3. linux系统中实现自动清理日志

    1.定时调度工具crontab相关的rpm下载 链接:https://pan.baidu.com/s/1GBQ0_KZ9i48CjcCi978fEQ  提取码:58e4 2.若没有crontab的需要 ...

  4. zookeeper3.4.5自动清理日志

    2019独角兽企业重金招聘Python工程师标准>>> 从3.4.0开始,zookeeper提供了自动清理snapshot和事务日志的功能, 通过配置 autopurge.snapR ...

  5. elasticsearch服务器定时自动清理日志索引

    突然想到项目中每天要生产各个环境的索引...时间一长会越来越多. 这里写一个定时自动清理elasticsearch的脚本 首先.我们进入到elasticsearch的索引目录中去   发现索引数据是真 ...

  6. linux系统自动清理日志实现脚本

    1.删除文件命令:find  对应目录  命令选项 实例命令 find /export/Logs/ -type f -name "*log*" -mtime +3 -exec rm ...

  7. centos7当数据盘到达百分之80%后自动清理日志的shell脚本

    思路简单 首先编写一个shell脚本,然后用crontab定时任务每天执行一遍cat logs.sh #!/bin/bash disk=$(df -H | grep '/dev/vda1' | awk ...

  8. hadoop配置自动清理日志

    hadoop在运行时间长了之后,日志文件,会占用很大,极端情况,会导致硬盘满.影响业务的正常运行. 解决方式: 步骤一.修改core-site.xml配置文件 <property>    ...

  9. gentos 执行sh文件_linux定时自动清理日志文件

    现有一个应用系统,应用日志记录的内容很多,经常造成存储空间不够,需要手工去删除早期的日志文件来释放空间.应用的日志文件命名如下,固定前后缀加上日期和小时: 为了避免手工删除日志,考虑通过写shell脚 ...

最新文章

  1. 跨浏览器开发经验总结(三)
  2. Python数据结构与算法—队列
  3. 【Android 安全】DEX 加密 ( Java 工具开发 | apk 文件签名 )
  4. 何时会调用拷贝构造函数
  5. OpenGL Compute Shader Raytracing 计算着色器光线追踪的实例
  6. 设计模式之_Iterator_05
  7. yii2-datepicker/datetimepicker插件使用
  8. Silverlight学习笔记(3):Silverlight的界面布局
  9. java版本的getorcreate,getOrCreate for java-rest-api neo4j失敗
  10. MHA 节点程序介绍
  11. 【转】那些令人喷饭的注释
  12. 三种DSO(标准DSO、写优化DSO、直接更新DSO)、标准DSO覆盖合计规则
  13. ImageLoader的简单分析(二)
  14. 《Android UI基础教程》——1.4节工具
  15. 软件工程课程实践-需求规格说明书
  16. 如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?
  17. opencv 绘制内切圆
  18. word2016标题序号变黑色竖线解决方法
  19. MSDC 4.3 接口规范(17)
  20. php sleep usleep,php中sleep()和usleep()函数使用对比

热门文章

  1. 什么是集群?什么又是负载均衡?你说得清楚吗?
  2. 万众赋能工业4.0:三一数据应用大赛圆满落幕
  3. Datawhale团队第四期录取名单!
  4. 你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别系统
  5. 最新!薪酬最高的大学专业公布!
  6. 美国年薪最高的高管是谁?彭博最新薪酬排名出炉,库克只排第二
  7. 吴恩达教你如何读论文:绘制进度表格,论文至少看三遍,还要问自己问题
  8. 王者归来!2020 年 5 月编程语言排行榜,Python竟然排老三
  9. 美多商城之商品(商品搜索)
  10. MySQL数据库介绍、安装(服务端软件安装、客户端软件安装(图形化界面客户端和命令行客户端))