| ========================================== |
| ZooInspector - Browser and Editor for ZooKeeper Instances |
| Author: Colin Goodheart-Smithe |
| Date: February 2010 |
| ========================================== |
| |
| ZooInspector is a Java Swing based application for browsing and editing ZooKeeper instances. |
| |
| Contents |
| -------- |
| - Features |
| - Pre-requisites |
| - Build Instructions |
| - Using ZooInspector |
| - Creating and Using Plugins |
| |
| Features |
| -------- |
| Below is a list of features in the current release of ZooInspector. |
| - Load connection settings from a zookeeper properties file |
| - Pluggable DataEncryptionManagers to specify how data should be encrypted and decrypted in the Zookeeper instance |
| - Browsable tree view of the ZooKeeper instance |
| - View the data in a node |
| - View the ACLs currently applied to a node |
| - View the metadata for a node (Version, Number of Children, Last modified Time, etc.) |
| - Pluggable NodeViewers interface |
| - Ability to save/load and set default Node Viewers |
| |
| Maven Build Instructions |
| ------------------------- |
| 0. Pre-requisites |
| - Run "mvn install" in the root directory of the Zookeeper project |
| 1. Open a command line |
| 2. cd into this directory |
| 3. mvn install |
| 4. To run ZooInspector run zooInspector.cmd (on Windows) or zooInspector.sh (on Linux) (these scripts will |
| find the built JAR automatically in the "target" directory as long as you don't move it) |
| |
| Ant Build Instructions |
| ----------------------- |
| 0. Pre-requisites |
| - The main zookeeper build script must have been run before building this module |
| 1. Open a command line. |
| 2. cd into this directory |
| 3. Run command: ant |
| 4. ZooInspector will be built to ../../../build/contrib/ZooInspector |
| 5. Copy zookeeper-3.x.x.jar into the lib sub-directory (if you are using zookeeper-3.3.0.jar it will have been |
| copied to this directory during the build |
| 6. By default the zookeeper.cmd and zookeeper.sh files expect zookeeper-3.3.0.jar. If you are using another version |
| you will need to change these files to point to the zookeeper-3.x.x.jar you copied to the lib directory |
| 7. To run ZooInspector run zooInspector.cmd (on Windows) or zooInspector.sh (on Linux). If you are using |
| zookeeper-3.3.0.jar and do not require any classpath changes you can run the zookeeper-dev-ZooInspector.jar |
| directly |
| |
| Using ZooInspector |
| ------------------ |
| To start ZooInspector run zooInspector.cmd (on Windows) or zooInspector.sh (on Linux). If you are using |
| zookeeper-3.3.0.jar and do not require any classpath changes you can run the zookeeper-dev-ZooInspector.jar |
| directly. |
| |
| Click the play button on the toolbar to bring up the connection dialog. From here you can enter connection |
| information for your zookeeper instance. You can also load the connection properties from a file. This file can |
| have the format as a normal zookeeper properties file (i.e. hosts and timeout key-value pairs) and van optional have |
| an encryptionManager key-value pair to specify the DataEncryptionManager to use for this connection |
| (DataEncryptionManagers are explained in further detail in the 'Creating and Using Plugins' section below). You can |
| also set the entered information as the defaults so that when you first start ZooInspector these settings are |
| automatically loaded into this dialog. Pressing the OK button with connect to your ZooKeeper instance and show the |
| current node tree on the left of the main panel. |
| |
| Clicking a node in the node tree will load the data for that node into the node viewers. Three node viewers are |
| currently distributed with ZooInspector: |
| 1. Node Data - This enables you to see the data current stored on that node. This data can be modified and |
| saved. The data is decrypted and encrypted using the DataEncryptionManager specified on the connection |
| dialog. |
| 2. Node Metadata - This enables you to see the metadata associated with this node. This is essentially the data |
| obtained from the Stat object for this node. |
| 3. Node ACLs - This allows you to see the ACLs currently applied to this node. Currently there is no ability |
| to change the ACLs on a node, but it is a feature I would like to add. |
| Other custom Node Viewers can be added, this is explained in the 'Creating and Using Plugins' section below. |
| |
| |
| Creating and Using Plugins |
| -------------------------- |
| There are two types of plugin which can be used with ZooInspector: |
| 1. DataEncryptionManager - This specifies how data should be encrypted and decrypted when working with a |
| zookeeper instance. |
| 2. ZooInspectorNodeViewer - This is a GUI panel which provides a view of visualisation on a node. |
| More information on these interfaces can be found in the javadocs for this module. |
| |
| To use a plugin in ZooInspector, build the plugin to a jar and copy the jar to the lib sub-directory. Edit the |
| zooInspector.cmd and/or zooInspector.sh files to include your new jar on the classpath and run ZooInspector. |
| |
| For DataEncryptionManagers, click the play button to open the connection dialog and enter the full class name of |
| your DataEncryptionManager in the 'Data Encryption Manager' field. You can make this Data Encryption Manager the |
| default by clicking 'Set As Default'. Click the 'OK' button to instantiate and use your plugin. |
| |
| For ZooInspectorNodeViewers, Click the 'Change Node Viewers' button on the toolbar (looks like a tree with a pencil) |
| and enter the full classname for your Node Viewer in the field left of the 'Add' button, then click the 'Add' |
| button. The Node Viewer will be instantiated and should appear in the list. You can change the order of the Node |
| viewers by clicking the up and down buttons and delete a Node Viewer by clicking the delete button. You can save |
| to configuration to a file or set it as the default if necessary. Then click the 'OK' button and your Node Viewer |
| should appear in the tabs on the right of the main panel. |