一直在弄監控,這些個中間件Zookeeper、Kafka......,平時也只知道一點皮毛,也就搭建部署過,沒有真正的用過,一般都是大數據的同學在用,作為運維人員我需要對他做一個監控,由於對他不是知根知底,監控哪些指標就真的是一個大頭了。經過不斷的在網上搜集,看別人是怎么做的,做了以下一個基本的監控。
一、效果圖

二、指標
監控最重要的就是數據,一切皆數據,有了數據想怎么監控就怎么監控。那么哪些數據是重要的?這些數據怎么獲取?監控指標尤其重要。
Zookeeper的監控指標(通過網上收集,等實際情況中遇到了特殊的,再補充)

三、實現
實現這些監控指標我是通過Zabbix的自定義腳本實現的,腳本地址:
https://github.com/Lemon-le/Zookeeper-Monitor-Zabbix
使用的是Zookeeper的四字命令獲取相關的指標,把zookeeper_mntr.sh和zookeeper_ruok.sh兩個腳本分別放在有Zookeeper服務的機器上,我的路徑為:/etc/zabbix/zabbix_agentd.d/shell-script目錄下,把zookeeper.conf放在/etc/zabbix/zabbix_agentd.d/目錄下,然后重啟Zookeeper服務器上的zabbix-agent

四、添加到Zabbix
在Zabbix上導入模板,把上面的Zookeeper_template.xml文件導入,然后把模板連接到Zookeeper服務器上

可以看到監控項有:

觸發器:

五、注意事項
在做Zookeeper監控的時候,發現如下問題,使用ps查看zookeeper進程是存在的,端口也是存在的,但是他的狀態是錯誤的,使用四字命令也是錯的
[root@ip-10-10-1-2 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /data/zookeeper-3.4.13/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
上面的錯誤通過排查是Zookeeper的2888,和3888端口安全組沒打開,但是不知道為什么只有一台報錯,有兩台選舉出了leader與follower
[root@ip-172-30-36-157 bin]# echo mntr|nc 10.10.1.2 2181 This ZooKeeper instance is not currently serving requests
注:監控Zookeeper時,不能只使用監控端口存不存在,得通過狀態監控才能真正的知道是否正常
六、總結
量變產生質變這句話是有道理的,知識面見識也是一個很大的問題,一直在收集收集監控指標,但是就是不知道哪一些是重要的,看再多,查再多,還是要動手做起來才行。
上面的監控只是很基礎的一部分,記錄下來,一是對自己心路歷程的一個總結,而是完成了一件小事情,有結果的完成了會有一點點成就感,會增加自己的信心。