ZooKeeper JMX
JMX
Apache ZooKeeper 廣泛支援 JMX,讓您可以檢視和管理 ZooKeeper 服務集合。
本文檔假設您具備 JMX 的基本知識。請參閱 Sun JMX 技術 頁面,以開始使用 JMX。
請參閱 JMX 管理指南,以取得有關設定 VM 實例的本機和遠端管理的詳細資訊。預設情況下,包含的 zkServer.sh 僅支援本機管理 - 檢閱連結的文件以啟用遠端管理(不在本文檔的範圍內)。
在啟用 JMX 的情況下啟動 ZooKeeper
類別 org.apache.zookeeper.server.quorum.QuorumPeerMain 將啟動可由 JMX 管理的 ZooKeeper 伺服器。此類別會在初始化期間註冊適當的 MBean,以支援 JMX 監控和管理實例。請參閱 bin/zkServer.sh,以取得使用 QuorumPeerMain 啟動 ZooKeeper 的範例。
執行 JMX 主控台
有許多 JMX 主控台可連線到正在執行的伺服器。在此範例中,我們將使用 Sun 的 jconsole。
Java JDK 附帶一個名為 jconsole 的簡單 JMX 主控台,可連線到 ZooKeeper 並檢查正在執行的伺服器。在您使用 QuorumPeerMain 啟動 ZooKeeper 後,請啟動 jconsole,它通常位於 JDK_HOME/bin/jconsole
當顯示「新連線」視窗時,請連線到本機程序(如果 jconsole 在與伺服器相同的主機上啟動)或使用遠端程序連線。
預設情況下,會顯示 VM 的「概觀」標籤(這是深入了解 VM 的好方法)。選取「MBean」標籤。
您現在應該在左手邊看到 org.apache.ZooKeeperService。展開此項目,並根據您啟動伺服器的不同方式,您將能夠監控和管理各種與服務相關的功能。
Logback MBean 註冊 (3.8.0 中的新功能)
自版本 3.8.0 以來,Logback 是 ZooKeeper 的預設記錄後端。它可以透過將 <jmxConfigurator />
加入 logback.xml 來設定註冊 JMX MBean。可以在 Logback 的 網站 上找到更多資訊。
Log4j MBean (已棄用)
另外請注意,如果 log4j1 被設定為 SLF4j 的記錄後端,ZooKeeper 也會註冊 log4j MBean。在左手邊的相同區段中,您會看到「log4j」。展開它以透過 JMX 管理 log4j。特別值得注意的是,它能夠透過編輯附加程式和根臨界值來動態變更記錄層級。可以在啟動 ZooKeeper 時將 -Dzookeeper.jmx.log4j.disable=true 傳遞給 JVM 來停用 Log4j MBean 註冊。此外,我們可以使用 -Dzookeeper.jmx.log4j.mbean=log4j:hierarchy=default 選項來指定 MBean 的名稱,萬一我們需要使用舊 MBean 名稱(log4j:hierarchy = default
)來升級整合系統。
ZooKeeper MBean 參考
此表格詳述了參與複製品 ZooKeeper 群集(即非獨立)的伺服器的 JMX。這是生產環境的典型情況。
MBean、其名稱和說明
MBean | MBean 物件名稱 | 說明 |
---|---|---|
法定人數 | ReplicatedServer_id<#> | 代表法定人數或群集 - 所有群集成員的父項。請注意,物件名稱包括 JMX 代理程式已連線的伺服器「myid」(名稱字尾)。 |
LocalPeer/RemotePeer | replica.<#> | 代表本機或遠端同儕(即參與群集的伺服器)。請注意,物件名稱包括伺服器「myid」(名稱字尾)。 |
LeaderElection | LeaderElection | 代表正在進行的 ZooKeeper 群集領導人選舉。提供有關選舉的資訊,例如選舉開始的時間。 |
Leader | Leader | 表示父項複製品是領導人,並提供該伺服器的屬性/操作。請注意,Leader 是 ZooKeeperServer 的子類別,因此它提供通常與 ZooKeeperServer 節點相關的所有資訊。 |
Follower | Follower | 表示父項複製品是追隨者,並提供該伺服器的屬性/操作。請注意,Follower 是 ZooKeeperServer 的子類別,因此它提供通常與 ZooKeeperServer 節點相關的所有資訊。 |
DataTree | InMemoryDataTree | 記憶體中 znode 資料庫的統計資料,以及存取更精細(且計算密集)的資料統計資料(例如臨時計數)的操作。InMemoryDataTrees 是 ZooKeeperServer 節點的子項。 |
ServerCnxn | <session_id> | 每個用戶端連線的統計資料,以及對這些連線的操作(例如終止)。請注意,物件名稱是連線的十六進位制格式的會話 ID。 |
此表格詳述了獨立伺服器的 JMX。獨立通常只用於開發情況。
MBean、其名稱和說明
MBean | MBean 物件名稱 | 說明 |
---|---|---|
ZooKeeperServer | StandaloneServer_port<#> | 正在執行伺服器的統計資料,以及重設這些屬性的操作。請注意,物件名稱包括伺服器的用戶端連接埠(名稱字尾)。 |
DataTree | InMemoryDataTree | 記憶體中 znode 資料庫的統計資料,以及存取更精細(且計算密集)的資料統計資料(例如臨時計數)的操作。 |
ServerCnxn | < session_id > | 每個用戶端連線的統計資料,以及對這些連線的操作(例如終止)。請注意,物件名稱是連線的十六進位制格式的會話 ID。 |