Author: Patrick Hunt (follow me on twitter)
This project uses Django and the zkpython bindings to provide a dashboard for a ZooKeeper ensemble (cluster).
- Cluster summary
- Individual server detail
- Client connection detail
- Navigate & examine the live znode hierarchy
This is a work in progress. Want more? Ping me on twitter or enter an issue on GitHub.
From the official site: “ZooKeeper is a high-performance coordination service for distributed applications.”
It exposes common services – such as naming, configuration management, synchronization, and group services – in a simple interface so you don’t have to write them from scratch. You can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols.
Django and the zkpython bindings are used to provide a dashboard for a ZooKeeper ensemble (cluster).
This project is licensed under the Apache License Version 2.0
- Django 1.0+
Edit settings.xml. The top of the file has the ZOOKEEPER specific settings.
- ZOOKEEPER_SERVERS – host:port(,host:port)* of all servers in your cluster. This is the same information that you provide in your ZooKeeper client configuration.
then start the django server
PYTHONPATH=lib.linux-i686-2.6 LD_LIBRARY_PATH=lib.linux-i686-2.6 ./manage.py runserver
Obviously the dashboard needs access to the serving cluster (it queries the server’s client port per ZOOKEEPER_SERVERS configuration).
Finally open a link in your browser to the server: http://127.0.0.1:8000/
Note: you may need to compile the zookeeper python binding yourself, this project includes only 32bit linux binaries. Additionally, the django – zookeeper bridge relies on some changes to the zkpython binding that are not yet released, so if you do compile yourself you will need to compile zkpython from the Apache ZooKeeper SVN trunk (this should be addressed as soon as ZooKeeper 3.3.0 is released).
ZooKeeper client output is written to “cli_log.txt”.
ACLs are not yet fully supported. In particular the django server runs as an un-authenticated user. If nodes are protected by ACLs the server will not be able to access them.
ACLs and child list not shown