Skip to content

babo/zookeeper_dashboard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZooKeeper Dashboard

Author: Patrick Hunt (follow me on twitter)

Summary

This project uses Django and kazoo 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 kazoo 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.5+
  • kazoo 1.1+

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.

Virtualenv is the easiest way to run the code. Create a local virtualenv directory and install the required packages

    virtualenv venv
    . venv/bin/activate
    pip install -r requirements.txt
    deactivate

then start the django server

    . venv/bin/activate
    ./manage.py runserver
    deactivate

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/

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

Languages

  • Python 100.0%