JMX是對運行中的JAVA系統進行管控。目前ZK使用標准的JMX接口。
修改ZK的啟動腳本
Zookeeper默認開啟JMX,但是只能從本地連接無法從遠程連接。
zkServer.sh這個啟動腳本進行修改,第一句不是必須的,但是第二句是必須的
在conf目錄下新建java.env文件
重新啟動
為什么要在conf里面建立一個java.env呢?其實你都寫在zkServer.sh中也行,但是很不利於管理,其實這個腳本本身就考慮使用變量。至於為什么是java.env,那就要看bin目錄下面的zkEnv.sh腳本了。根據變量你可以找到它加載zoo.cfg的路徑,那么它這里有一個java.env,而且還進行了加載(.),因為默認沒有,所以它這里有一個判斷。那么你需要的JAVA變量比如調整JVM的參數還有JMX的參數都可以寫在這里。之后需要做的就是在zkServer.sh里面使用變量就好了。這樣也利於維護。
通過Jconsole連接
這里說明我們當前連接的是id為3的那台服務器。
查看ID為3的屬性,這里它有一個Follower節點,說明當前我們連接的這台ZK是從服務器角色。如果出現的是Leader那么該節點就是主服務器。
通過JMX可以查看到當前ZK服務器所配置的所有參數以及當前運行狀態。