Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tools and Recipes for Monitoring Apache Zookeeper
Branch: master

Merge pull request #6 from maplebed/ben.fetch_more_data

read all the stat info, even when it exceeds 2048 bytes.
latest commit f0aaddd640
@andreisavu authored


Tools and Recipes for ZooKeeper Monitoring

UPDATE: This repository have been committed [1] to the ZooKeeper trunk as a contrib. You can find it under src/contrib/monitoring. Please use the ZooKeeper JIRA [2] to submit issues and feature requests. It's going to be a part of the upcoming 3.4.0 release. Thanks. 


How To Monitor

A ZooKeeper cluster can be monitored in two ways:
 1. by using the 'mntr' 4letterword command
 2. by using JMX to query the MBeans 

This repo contains tools and recipes for monitoring ZooKeeper using the first method. 

Check the file JMX-RESOURCE for some links to resources that could help you monitor a ZooKeeper cluster using the JMX interface. 


ZooKeeper 3.4.0 or later or you can apply ZOOKEEPER-744 patch over the latest 3.3.x release.
The server should understand the 'mntr' 4letterword command. 

$ echo 'mntr' | nc localhost 2181
zk_version  3.4.0--1, built on 06/19/2010 15:07 GMT
zk_avg_latency  141
zk_max_latency  1788
zk_min_latency  0
zk_packets_received 385466
zk_packets_sent 435364
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count  5
zk_watch_count  0
zk_ephemerals_count 0
zk_approximate_data_size    41
zk_open_file_descriptor_count   20
zk_max_file_descriptor_count    1024

Python 2.6 (maybe it works on previous version but it's not tested yet).

In a nutshell

All you need is It has no external dependencies. 

*** On Nagios call the script like this:

./ -o nagios -s "<server-or-list-of-servers>" -k <key> -w <warning> -c <critical>

*** On Cacti define a custom data input method using the script like this:

./ -o cacti -s "<list-of-servers>" -k <key> --leader

-- outputs a single value for the given key fetched from the cluster leader


./ -o cacti -s "<list-of-servers>" -k <key> 

-- outputs multiple values on for each cluster node
ex: localhost_2182:0  localhost_2183:0  localhost_2181:0  localhost_2184:0  localhost_2185:0

*** On Ganglia:

install the plugin found in the ganglia/ subfolder OR

./ -o ganglia -s "<current-zookeeper-node>"

it will use gmetric to send zookeeper node status data.

Check the subfolders for configuration details and samples for each platform.

ZooKeeper 4letterwords Commands

Something went wrong with that request. Please try again.