zookeeper監控告警


一、ZooKeeper簡介

ZooKeeper作為分布式系統中重要的組件,目前在業界使用越來越廣泛,ZooKeeper的使用場景非常多,以下是幾種典型的應用場景:

l  數據發布與訂閱(配置中心)

l  負載均衡

l  命名服務(Naming Service)

l  分布式通知/協調

l  集群管理與Master選舉

l  分布式鎖

zk環境搭建

這里不詳細說明,提供詳細blog說明。

Zookeeper集群搭建:http://www.cnblogs.com/linuxbug/p/4840137.html

Zookeeper配置文件詳解:http://www.cnblogs.com/linuxbug/p/4840136.html

Zookeeper常用四字命令:http://www.cnblogs.com/linuxbug/p/4840135.html

二、ZooKeeper監控

在部門內部,有不少應用已經強依賴ZooKeeperZooKeeper的工作狀態直接影響它們的正常工作。先來看一看哪些因素對ZooKeeper正常工作有比較大的影響:

 

影響ZooKeeper工作的主要因素

l  用於zookeeper寫事務日志的目錄要有足夠大小,並且強烈建議在單獨的磁盤(掛載點)上,這是影響ZK性能最大因素之一。

l  連接數。

l  注冊的Watcher數。

l  ZNode是否可讀,可寫。

l  ZK事件通知的延時是否過大。

 

針對監控平台的以上幾點要求,部內內部選用了目前使用業界已經比較成熟的阿里開源ZooKeeper監控框架TaoKeeper

TaoKeeper源碼及搭建方法參考https://github.com/alibaba/taokeeper

 

TaoKeeper介紹

TaoKeeper是阿里開源ZooKeeper監控告警框架,提供以下功能:

l  CPU/MEM/LOAD的監控

l  ZK日志目錄所在磁盤剩余空間監控

l  單機連接數的峰值報警

l  單機 Watcher的峰值報警

l  節點自檢:是指對集群中每個IP所在ZK節點上的PATH: /YINSHI.MONITOR.ALIVE.CHECK 定期進行三次如下流程 : 節點連接 - 數據發布 - 修改通知 - 獲取數據 - 數據對比, 在指定的延時內,三次流程均成功視為該節點處於正常狀態。

 

工作原理

Taokeeper通過SSH連接到ZooKeeper部署的機器上,再在上面執行ZooKeeper的四字命令來得到統計信息,再分析保存到mysql數據庫中。
監控目標機器的負載,也是通過SSH連接到目標機器,再執行top
等命令,再分析得到數據。

常見四字命令:

l  echo stat|nc 127.0.0.1 2181 來查看哪個節點被選擇作為follower或者leader

l  echo ruok|nc 127.0.0.1 2181 測試是否啟動了該Server,若回復imok表示已經啟動。

l  echo cons | nc 127.0.0.1 2181 列出所有連接到服務器的客戶端的完全的連接/會話的詳情。

l  echo wchs | nc 127.0.0.1 2181 列出服務器 watch 的詳細信息。

 

注意事項

1 taokeeper通過ssh信道到訪登錄每台機器,需要打開sshpassword登陸方式,不然taokeeper運行時會出現authentication failed錯誤。打開方式如下:

l  對於contos機器(sshd版本為標准OpenSSL):需要把sshd配置文件中(本機為/etc/ssh/sshd_config.l)PasswordAuthentication變量設置成yes

l  對於suse機器(sshd版本為SSH Secure Shell):需要把sshd配置文件中(本機為/etc/ssh2/sshd2_config.l)AllowedAuthentications變量加上passwordAllowedAuthentications publickey,keyboard-interactive,password);

2 監控的每台機器需要安裝nc命令(suse中叫netcat,可以直接做個軟鏈到nc

 

使用TaoKeeper,目前已建立起部門內ZooKeeper的監控視圖

ZooKeeper集群實時狀態

clip_image002

點擊查看按鈕可以查看具體信息

Watch

clip_image004

 

連接數

clip_image006

 

集群狀態趨勢圖

clip_image008

 

新增監控集群

clip_image010

三、ZooKeeper告警

TaoKeeper查看主要針對以下幾個維度:

l  ZooKeeper宕機告警

l  單機連接數超過閥值告警

l  單機Watch數超過閥值告警

l  磁盤,CPU,內存超過閥值告警

 

或自己使用四字命令+nc寫腳本去做告警也行,這里不再詳述。

 


免責聲明!

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



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