內存使用量 ZooKeeper應當徹底運行在內存中,不能使用到SWAP。Java Heap大小不能超過可用內存。node
Swap使用量 使用Swap會下降ZooKeeper的性能,設置vm.swappiness = 0bash
網絡帶寬佔用 若是發現ZooKeeper性能下降關注下網絡帶寬佔用狀況和丟包狀況,一般狀況下ZooKeeper是20%寫入80%讀入服務器
磁盤使用量 ZooKeeper數據目錄使用狀況須要注意網絡
磁盤I/O ZooKeeper的磁盤寫入是異步的,因此不會存在很大的I/O請求,若是ZooKeeper和其餘I/O密集型服務公用應該關注下磁盤I/O狀況
zk_avg/min/max_latency 響應一個客戶端請求的時間,建議這個時間大於10個Tick就報警app
zk_outstanding_requests 排隊請求的數量,當ZooKeeper超過了它的處理能力時,這個值會增大,建議設置報警閥值爲10異步
zk_packets_received 接收到客戶端請求的包數量tcp
zk_packets_sent 發送給客戶單的包數量,主要是響應和通知性能
zk_max_file_descriptor_count 最大容許打開的文件數,由ulimit控制ui
zk_open_file_descriptor_count 打開文件數量,當這個值大於容許值得85%時報警spa
Mode 運行的角色,若是沒有加入集羣就是standalone,加入集羣式follower或者leader
zk_followers leader角色纔會有這個輸出,集合中follower的個數。正常的值應該是集合成員的數量減1
zk_pending_syncs leader角色纔會有這個輸出,pending syncs的數量
zk_znode_count znodes的數量
zk_watch_count watches的數量
Java Heap Size ZooKeeper Java進程的
在服務器端咱們能夠經過命令查看這些項目:
[root@localhost ~]#
echo ruok|nc 127.0.0.1 2181 (ruok意思是are you ok?)
imok
[root@localhost ~]#
echo mntr|nc 127.0.0.1 2181
zk_version 3.4.6-1569965, built on 02/20/2014 09:09 GMT
zk_avg_latency 0
zk_max_latency 1364
zk_min_latency 0
zk_packets_received 184218311
zk_packets_sent 184995960
zk_num_alive_connections 33
zk_outstanding_requests 0
zk_server_state leader
zk_znode_count 821128
zk_watch_count 2346
zk_ephemerals_count 47
zk_approximate_data_size 62155934
zk_open_file_descriptor_count 62
zk_max_file_descriptor_count 4096
zk_followers 2
zk_synced_followers 2
zk_pending_syncs 0
[root@localhost ~]# echo srvr|nc 127.0.0.1 2181
Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
Latency min/avg/max: 0/0/1364
Received: 184218603
Sent: 184996253
Connections: 33
Outstanding: 0
Zxid: 0x40d1a259a
Mode: leader
Node count: 821136
接下來就是寫一個監控腳原本輸出這些參數的具體狀況:
cd /usr/local/zabbxi/share/script/
vi zookeeper_check1.sh
#!/bin/bash
echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'
vi zookeeper_check2.sh
#!/bin/bash
echo srvr|nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'
zabbix-agentd.comf裏面加入key:
vi /usr/local/zabbix/etc/zabbix_agentd.conf
UserParameter=zookeeper1[*],/bin/sh /usr/local/zabbix/share/script/zookeeper_check1.sh $1
UserParameter=zookeeper2[*],/bin/sh /usr/local/zabbix/share/script/zookeeper_check2.sh $1
重啓zabbix客戶端
而後在zabbix界面添加監控項
------------------------------------------------------------------------------------------------
ztwl配置實例:
#!/bin/bash
zk=`echo ruok|nc 127.0.0.1 2181`
if [[ "$zk" == "imok" ]] ; then
echo 1
else
echo 0
fi
UserParameter=zookeeper.status,/bin/sh /etc/zabbix/zookeeper_check.sh