Zookeeper在Ubuntu中的日志文件默认存储路径主要有两种:
/var/log/zookeeper/目录下,文件名为zookeeper.out(部分安装方式可能将日志分散在/var/lib/zookeeper/logs/或/opt/zookeeper/logs/,需根据实际安装路径调整)。zoo.cfg(位于/etc/zookeeper/conf/)中的dataLogDir参数确认事务日志路径,或通过log4j.properties(位于/etc/zookeeper/conf/)中的zookeeper.log.dir确认日志输出目录。cat命令输出日志文件全部内容(适合小文件):cat /var/log/zookeeper/zookeeper.out
less命令逐页浏览(适合大文件,按q退出):less /var/log/zookeeper/zookeeper.out
tail命令查看文件末尾内容(默认10行,可指定行数,如-n 100查看最后100行):tail -n 100 /var/log/zookeeper/zookeeper.out
tail -f命令实时跟踪日志更新(按Ctrl+C停止),适合排查实时问题:tail -f /var/log/zookeeper/zookeeper.out
注意:若日志文件无读取权限,需在命令前添加
sudo(如sudo tail -f /var/log/zookeeper/zookeeper.out)。
部分Zookeeper版本提供zkserver命令,可直接获取日志:
zkserver get-logs
zkserver get-logs --date "2023-03-08"
server1):zkserver get-logs --server server1
说明:该命令需Zookeeper客户端工具支持,且服务器需开启对应接口。
Zookeeper支持JMX接口,可通过JConsole、VisualVM等工具连接:
jconsole,选择Zookeeper进程;若Zookeeper运行在Docker容器中,可通过以下方式查看:
container_name为实际容器名):docker exec -it container_name tail -f /logs/zookeeper.out
/path/to/host/log):docker run -d --name my-zookeeper -p 2181:2181 -v /path/to/host/log:/logs zookeeper
此时宿主机/path/to/host/log目录下会同步Zookeeper日志。logrotate工具配置自动轮转(如按天分割、压缩旧日志),避免占用过多磁盘空间。