-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathREADME
83 lines (52 loc) · 2.56 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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.
[1] https://issues.apache.org/jira/browse/ZOOKEEPER-799
[2] https://issues.apache.org/jira/browse/ZOOKEEPER
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.
Requirements
------------
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 check_zookeeper.py It has no external dependencies.
*** On Nagios call the script like this:
./check_zookeeper.py -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:
./check_zookeeper.py -o cacti -s "<list-of-servers>" -k <key> --leader
-- outputs a single value for the given key fetched from the cluster leader
OR
./check_zookeeper.py -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
./check_zookeeper.py -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
-------------------------------
http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html#sc_zkCommands