返回介绍

PART Ⅰ : 容器云OPENSHIFT

PART Ⅱ:容器云 KUBERNETES

PART Ⅲ:持续集成与持续部署

PART Ⅴ:日志/监控/告警

PART Ⅵ:基础

PART Ⅶ:数据存储、处理

PART VIII:CODE

PART X:HACKINTOSH

PART XI:安全

Zookeeper常用操作

发布于 2024-06-08 21:16:46 字数 6836 浏览 0 评论 0 收藏 0

1、日志简介

zookeeper服务器会产生三类日志:

  • 事务日志

    事务日志指zookeeper在正常运行过程中,针对所有的更新操作,在返回客户端“更新成功”的响应前,zookeeper会保证已经将本次更新操作的事务日志已经写到磁盘上,只有这样,整个更新操作才会生效

    事务日志文件的命名规则为log.*,文件大小为64MB,*表示写入该日志的第一个事务的ID,十六进制表示

    事务日志文件为二进制格式,只能通过zookeeper自带的jar包读取。

    将libs中的slf4j-api-1.6.1.jar文件和zookeeper根目录下的zookeeper-3.4.9.jar文件复制到临时文件夹tmplibs中,然后执行以下命令

    java -classpath .:slf4j-api-1.6.1.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.LogFormatter /data/zookeeper/data/version-2/log.684e26700 |more
    
  • 快照日志

    zookeeper的数据在内存中是以树形结构进行存储的,而快照就是每隔一段时间就会把整个DataTree的数据序列化后存储在磁盘中,这就是快照日志文件。

    快照文件的命名规则为snapshot.*,其中*表示zookeeper触发快照的那个瞬间,提交的最后一个事务的ID

    事务日志文件为二进制格式,只能通过zookeeper自带的jar包读取。

    将libs中的slf4j-api-1.6.1.jar文件和zookeeper根目录下的zookeeper-3.4.9.jar文件复制到临时文件夹tmplibs中,然后执行以下命令

    java -classpath .:slf4j-api-1.6.1.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.SnapshotFormatter /data/zookeeper/data/version-2/snapshot.684e26700 |more
    
  • log4j日志

当zookeeper集群进行频繁的数据读写操作时,会产生大量的事务日志信息,将两类日志分开存储会提高系统性能,建议将事务日志(dataLogDir)与快照日志(dataLog)单独配置(在没有dataLogDir配置项的时候,zookeeper默认将事务日志文件和快照日志文件都存储在dataDir对应的目录下)

2、清理方式

①自动清理

在zookeeper 3.4.0以后,zookeeper提供了自动清理snapshot和事务日志功能,通过配置zoo.cfg下的autopurge.snapRetainCount和autopurge.purgeInterval这两个参数实现日志文件的定时清理。

  • autopurge.snapRetainCount这个参数指定了需要保留的文件数目,默认保留3个;
  • autopurge.purgeInterval这个参数指定了清理频率,单位是小时,需要填写一个1或者更大的数据,默认0表示不开启自动清理功能。

②手动清理

/opt/zookeeper/bin/zkCleanup.sh 数据目录 -n 保留日志个数

③自定义清理脚本

#!/bin/bash
#snapshot file dir
dataDir=/data/zookeeper/data/version-2
#tran log dir
dataLogDir=/data/zookeeper/data/version-2
logDir=/data/zookeeper/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

参考

  1. https://www.kancloud.cn/ningjing_home/ceph/710759
  2. https://ningyu1.github.io/site/post/89-zookeeper-cleanlog/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文