經過zabbix trapper方式監控,以前看到網友們都是經過定時任務進行主動上傳數據,可是,zabbix還有另一神器--自動發現,也能達到一樣的功能。java
一、準備腳本node
二、安裝依賴包git
#Centos6 rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm #Centos7 rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum install -y nc yum install -y zabbix-sender
三、實現原理github
echo ruok|nc 127.0.0.1 2181 imok 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 6 zk_min_latency 0 zk_packets_received 93114 zk_packets_sent 93113 zk_num_alive_connections 4 zk_outstanding_requests 0 zk_server_state leader zk_znode_count 29 zk_watch_count 0 zk_ephemerals_count 14 zk_approximate_data_size 1087 zk_open_file_descriptor_count 39 zk_max_file_descriptor_count 1000000 zk_followers 4 zk_synced_followers 4 zk_pending_syncs 0 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/6 Received: 93121 Sent: 93120 Connections: 4 Outstanding: 0 Zxid: 0x900000020 Mode: leader Node count: 29
ZooKeeper 經常使用四字命令:web
ZooKeeper 支持某些特定的四字命令字母與其的交互。它們大可能是查詢命令,用來獲取 ZooKeeper 服務的當前狀態及相關信息。用戶在客戶端能夠經過 telnet 或 nc 向 ZooKeeper 提交相應的命令服務器
1. 能夠經過命令:echo stat|nc 127.0.0.1 2181 輸出服務器的詳細信息:接收/發送包數量、鏈接數、模式(leader/follower)、節點總數、延遲。 全部客戶端的列表。 2. 使用echo ruok|nc 127.0.0.1 2181 測試服務是否處於正確運行狀態。若是正常返回"imok",不然返回空。 3. echo dump| nc 127.0.0.1 2181 ,列出未經處理的會話和臨時節點(只在leader上有效)。 4. echo kill | nc 127.0.0.1 2181 ,關掉server 5. echo conf | nc 127.0.0.1 2181 (New in 3.3.0)輸出相關服務配置的詳細信息。好比端口、zk數據及日誌配置路徑、最大鏈接數,session超時時間、serverId等 6. echo cons | nc 127.0.0.1 2181 ,(New in 3.3.0)列出全部鏈接到這臺服務器的客戶端鏈接/會話的詳細信息。包括「接受/發送」的包數量、session id 、操做延遲、最後的操做執行等信息。 7. echo envi |nc 127.0.0.1 2181 ,輸出關於服務器的環境詳細信息(不一樣於conf命令),好比host.name、java.version、java.home、user.dir=/data/zookeeper-3.4.6/bin之類信息 8. echo reqs | nc 127.0.0.1 2181 ,列出未經處理的請求。 9. echo wchs | nc 127.0.0.1 2181 ,(New in 3.3.0)列出服務器watches的簡潔信息:鏈接總數、watching節點總數和watches總數 10. echo wchc | nc 127.0.0.1 2181 ,(New in 3.3.0)經過session分組,列出watch的全部節點,它的輸出是一個與 watch 相關的會話的節點列表。若是watches數量很大的話,將會產生很大的開銷,會影響性能,當心使用。 11. echo wchp | nc 127.0.0.1 2181 ,(New in 3.3.0)經過路徑分組,列出全部的 watch 的session id信息。它輸出一個與 session相關的路徑。若是watches數量很大的話,將會產生很大的開銷,會影響性能,當心使用。 12.echo mntr | nc localhost 2181 (New in 3.4.0)列出集羣的健康狀態。包括「接受/發送」的包數量、操做延遲、當前服務模式(leader/follower)、節點總數、watch總數、臨時節點總數。 13.echo srvr | nc localhost 2181 (New in 3.3.0)輸出服務器的詳細信息。zk版本、接收/發送包數量、鏈接數、模式(leader/follower)、節點總數。 14.echo crst | nc localhost 2181 (New in 3.3.0)重置當前這臺服務器全部鏈接/會話的統計信息 15.echo srst | nc localhost 2181 重置服務器的統計信息
四、配置agent端session
安裝:將腳本zookeeper-monitor-lld.py放置在/etc/zabbix/externalscripts目錄下app
配置文件中添加:性能
UserParameter=zookeeper.discovery,python /etc/zabbix/externalscripts/zookeeper-monitor-lld.py all
五、web配置模板(Template App For Zookeeper Traper LLd)
特別注意地方!!!配置發現規則,設置數據發送間隔,很重要!!!
六、應用模板,查看數據
七、設置觸發器