首先确保Debian系统已安装Zookeeper,若未安装,可通过以下命令完成:
sudo apt update
sudo apt install zookeeper
Zookeeper的日志路径主要通过zoo.cfg
文件配置,需设置dataLogDir
(事务日志目录)和dataDir
(快照日志目录),两者建议分开存储以提升性能。
编辑配置文件:
sudo nano /etc/zookeeper/conf/zoo.cfg
添加或修改以下内容(根据实际路径调整):
dataLogDir=/var/log/zookeeper # 事务日志目录
dataDir=/var/lib/zookeeper # 快照日志目录
autopurge.snapRetainCount=3 # 自动保留的快照数量
autopurge.purgeInterval=24 # 自动清理间隔(小时,≥1时开启)
保存后退出。
确保dataLogDir
和dataDir
目录存在,且Zookeeper用户(通常为zookeeper
或当前用户)有读写权限:
sudo mkdir -p /var/log/zookeeper /var/lib/zookeeper
sudo chown -R $(whoami):$(whoami) /var/log/zookeeper /var/lib/zookeeper # 若使用当前用户
# 若使用zookeeper用户(需提前创建),替换为:sudo chown -R zookeeper:zookeeper /var/log/zookeeper /var/lib/zookeeper
Zookeeper使用log4j实现日志记录,需通过log4j.properties
文件配置日志级别、滚动策略(按大小/时间)。
编辑配置文件:
sudo nano /etc/zookeeper/conf/log4j.properties
修改以下关键配置(以按天滚动、保留10个备份为例):
# Root logger配置(日志级别+输出appender)
log4j.rootLogger=INFO, ROLLINGFILE
# RollingFileAppender配置(文件滚动)
log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLINGFILE.File=/var/log/zookeeper/zookeeper.log # 日志文件路径
log4j.appender.ROLLINGFILE.MaxFileSize=10MB # 单个文件最大大小
log4j.appender.ROLLINGFILE.MaxBackupIndex=10 # 保留的旧日志数量
log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
保存后退出。
配置生效后,重启Zookeeper使更改生效:
sudo systemctl restart zookeeper
Zookeeper日志默认存储在dataLogDir
(即/var/log/zookeeper
)目录下,可通过以下命令实时查看最新日志:
tail -f /var/log/zookeeper/zookeeper.log
log4j.properties
中的RollingFileAppender
配置实现(如上述步骤),当日志文件达到MaxFileSize
时自动滚动,保留MaxBackupIndex
个旧日志。logrotate
工具(Debian预装),创建/etc/logrotate.d/zookeeper
文件:sudo nano /etc/logrotate.d/zookeeper
添加以下内容(按天轮转、保留7天、压缩旧日志):/var/log/zookeeper/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 $(whoami) $(whoami)
}
手动触发轮转测试:sudo logrotate -f /etc/logrotate.d/zookeeper
zoo.cfg
中的autopurge.snapRetainCount
(保留快照数量)和autopurge.purgeInterval
(清理间隔,小时)配置,Zookeeper会自动清理过期的事务日志和快照。例如,上述配置表示每24小时检查一次,保留3个快照。zkCleanup.sh
脚本(位于/usr/share/zookeeper/bin/
):sudo /usr/share/zookeeper/bin/zkCleanup.sh -n 7 -d /var/lib/zookeeper # 保留7天数据
确保日志文件权限正确,避免敏感信息泄露。一般设置为仅Zookeeper用户可读写:
sudo chown -R $(whoami):$(whoami) /var/log/zookeeper
sudo chmod -R 640 /var/log/zookeeper/*.log
通过以上步骤,可在Debian系统中完成Zookeeper日志的配置、管理、轮转及清理,确保日志的可维护性和系统稳定性。