Skip to content

richid/zookeeper_dashboard

 
 

Repository files navigation

ZooKeeper Dashboard

Author: Patrick Hunt (follow me on twitter)

Summary

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.

What’s Apache ZooKeeper?

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.

Overview

Django and the zkpython bindings are used to provide a dashboard for a ZooKeeper ensemble (cluster).

License

This project is licensed under the Apache License Version 2.0

Requirements

  • Django 1.0+

Usage

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”.

Limitations

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.

Screenshots

Cluster Summary

dashboard_summary

Server Summary

dashboard_server_summary

ZNode tree

ACLs and child list not shown

dashboard_tree_znode

About

Django based dashboard for an Apache ZooKeeper cluster.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published