Zabbix監控Zookeeper健康狀況


首先最簡單的是監聽服務端口,在zabbix界面直接添加監控項
item:
zookeeper.status
key:
net.tcp.listen[2181]
 
ZooKeeper監控要點:
 

內存使用量    ZooKeeper應當完全運行在內存中,不能使用到SWAP。Java Heap大小不能超過可用內存。

Swap使用量    使用Swap會降低ZooKeeper的性能,設置vm.swappiness = 0

網絡帶寬占用   如果發現ZooKeeper性能降低關注下網絡帶寬占用情況和丟包情況,通常情況下ZooKeeper是20%寫入80%讀入

磁盤使用量    ZooKeeper數據目錄使用情況需要注意

磁盤I/O      ZooKeeper的磁盤寫入是異步的,所以不會存在很大的I/O請求,如果ZooKeeper和其他I/O密集型服務公用應該關注下磁盤I/O情況

zk_avg/min/max_latency    響應一個客戶端請求的時間,建議這個時間大於10個Tick就報警

zk_outstanding_requests        排隊請求的數量,當ZooKeeper超過了它的處理能力時,這個值會增大,建議設置報警閥值為10

zk_packets_received      接收到客戶端請求的包數量

zk_packets_sent        發送給客戶單的包數量,主要是響應和通知

zk_max_file_descriptor_count   最大允許打開的文件數,由ulimit控制

zk_open_file_descriptor_count    打開文件數量,當這個值大於允許值得85%時報警

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

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM