客戶端命令行工具的安裝和使用
mseutil是一個命令行工具,支持在Linux、macOS和Windows客戶端運行環(huán)境下診斷MSE實例,同時也支持查詢和操作MSE實例的數(shù)據(jù)。本文以Linux系統(tǒng)為例,介紹如何獲取和使用mseutil工具,以及mseutil的命令詳情。
前提條件
步驟一:下載mseutil工具
mseutil工具支持在Linux、macOS和Windows系統(tǒng)中運行。您可根據(jù)自身需要下載使用。
wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/linux/x86_64/mseutil
wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/linux/arm64/mseutil
wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/darwin/x86_64/mseutil
wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/darwin/arm64/mseutil
wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/windows/x86_64/mseutil
wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/windows/arm64/mseutil
例如,在Linux客戶端執(zhí)行命令,下載mseutil工具。結(jié)果輸出如下:
步驟二:在MSE控制臺獲取地址
登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導(dǎo)航欄,選擇注冊配置中心 > 實例列表。
在實例列表頁面,單擊目標(biāo)實例(希望通過mseutil操作的實例)。
在基礎(chǔ)信息頁面,獲取實例連接的地址。
下圖所示為內(nèi)網(wǎng)地址,如果需要通過公網(wǎng)訪問,請在公網(wǎng)地址區(qū)域獲取公網(wǎng)地址。
步驟三:使用mseutil工具
mseutil通過指定子產(chǎn)品名以及對應(yīng)的命令,對實例進行操作。
執(zhí)行如下命令,獲取用戶文件的執(zhí)行權(quán)限。
chmod +x ./mseutil
執(zhí)行如下命令,對實例進行操作。更多命令的詳細(xì)信息,請參見命令詳情。
mseutil [子產(chǎn)品名] [子產(chǎn)品下的子命令] [flags]
說明在對實例進行操作時,注意區(qū)分子產(chǎn)品名,即引擎類型。
使用示例
如下所示,分別以ZooKeeper和Nacos為例,診斷客戶端環(huán)境和MSE Server的連通性以及Server的API健康程度。其中,實例的連接地址為步驟二獲取的地址。
ZooKeeper:
執(zhí)行如下代碼。
mseutil zk --serverAddr ${實例的連接地址} inspect # 診斷客戶端環(huán)境和MSE ZooKeeper Server的連通性以及Server的API健康程度
執(zhí)行結(jié)果如下:
Nacos:
執(zhí)行如下代碼。
mseutil nacos --serverAddr ${實例的連接地址} inspect # 診斷客戶端環(huán)境和MSE Nacos Server的連通性以及Server的API健康程度
示例執(zhí)行結(jié)果如下所示:
命令詳情
工具迭代更新較快,更多命令請通過在客戶端執(zhí)行mseutil -h
查看。
mseutil具備Nacos和ZooKeeper兩個產(chǎn)品的基礎(chǔ)操作能力,但由于Nacos和ZooKeeper的API參數(shù)不完全一致,因此命令有所區(qū)別。
mseutil nacos和mseutil zookeeper的所有命令都需要serverAddr參數(shù)。
mseutil zookeeper命令
命令 | 描述 |
|
|
| 獲取給定path的數(shù)據(jù),返回的數(shù)據(jù)以UTF-8編碼形式顯示。 例如,執(zhí)行如下代碼,獲取
|
| 更新給定路徑的數(shù)據(jù)。 例如,執(zhí)行如下代碼,更新
說明 更新成功顯示 |
| 刪除給定路徑的數(shù)據(jù)。 例如,執(zhí)行如下代碼,刪除
說明 更新成功顯示 |
| 列出給定路徑的子節(jié)點。 例如,執(zhí)行如下代碼,獲取
|
| 獲取給定路徑的znode的狀態(tài)信息。 例如,執(zhí)行如下代碼,獲取
|
| 支持所有的ZooKeeper四字命令,通過 例如,執(zhí)行
|
| 從指定文件中獲取sessionId列表。 說明 指定日志文件的路徑目前只支持Java客戶端日志中sessionId的提取,Java客戶端日志和業(yè)務(wù)日志默認(rèn)情況下是同一份日志。 |
mseutil nacos命令
Nacos通用選項 | 是否可選 | 默認(rèn)值 | 描述 |
| 可選 | <空> | 指定命名空間ID。 |
| naming模塊必選 | 無 | 指定服務(wù)名。 |
| 可選 |
| 指定服務(wù)的分組。 |
| config模塊必選 | 無 | 指定服務(wù)名。 |
| 可選 |
| 指定配置的分組。 |
| 可選 | 無 | 當(dāng)Nacos開啟鑒權(quán)時使用。指定RAM鑒權(quán)使用的accessKeyId。 |
| 可選 | 無 | 當(dāng)Nacos開啟鑒權(quán)時使用。指定RAM鑒權(quán)使用的accessKeySecret。 |
子命令 | 參數(shù) | 描述 |
| 無 |
|
| instance |
|
| instance | 將指定的 除繼承通用選項,額外選項有如下:
其它選項可通過 |
|
診斷問題詳解
DNS LookUp失敗,顯示no such host?
DNS解析失敗,請檢查輸入的serverAddr
是否正確。如果為容器環(huán)境,請檢查CoreDNS是否工作正常。
test Connect error,顯示dial tcp ip:port: i/o timeout?
測試連接對應(yīng)的實例端口超時,請檢查網(wǎng)絡(luò)環(huán)境。
在MSE基礎(chǔ)信息頁面的實例節(jié)點區(qū)域,查看MSE實例的狀態(tài)是否為運行中。
如果通過公網(wǎng)訪問,請確保公網(wǎng)白名單中已經(jīng)加入診斷工具運行環(huán)境的公網(wǎng)出口IP。關(guān)于如何為實例設(shè)置白名單,請參見設(shè)置Nacos白名單或設(shè)置ZooKeeper白名單。
請確保端口號輸入正確。ZooKeeper端口號為2181;Nacos端口號為8848。
請確保診斷工具運行環(huán)境所在的VPC和創(chuàng)建MSE實例時所選的VPC相同。
顯示ZooKeeper Api test error: zk: could not connect to a server?
執(zhí)行如下代碼,如果返回This ZooKeeper instance is not currently serving requests
,請確保MSE實例處于運行中狀態(tài),此時Server端正在選主,請稍后重新執(zhí)行診斷。
mseutil zk --serverAddr ${實例的連接地址} 4lw stat