mseutil是一个命令行工具,支持在Linux、macOS和Windows客户端运行环境下诊断MSE实例,同时也支持查询和操作MSE实例的数据。本文以Linux系统为例,介绍如何获取和使用mseutil工具,以及mseutil的命令详情。
前提条件
步骤一:下载mseutil工具
mseutil工具支持在Linux、macOS和Windows系统中运行。您可根据自身需要下载使用。
-
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客户端执行命令,下载mseutil工具。结果输出如下:
[root@iZbp14msc182ux1pki2 ~]# wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/linux/x86_64/mseutil
--2024-02-22 10:17:49-- https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/linux/x86_64/mseutil
Resolving msetools.oss-cn-hangzhou.aliyuncs.com (msetools.oss-cn-hangzhou.aliyuncs.com)... 118.31.219.222
Connecting to msetools.oss-cn-hangzhou.aliyuncs.com (msetools.oss-cn-hangzhou.aliyuncs.com)|118.31.219.222|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17477632 (17M) [application/octet-stream]
Saving to: 'mseutil'
mseutil 100%[======================================================================>] 16.67M 33.3MB/s in 0.5s
2024-02-22 10:17:50 (33.3 MB/s) - 'mseutil' saved [17477632/17477632]
步骤二:在MSE控制台获取地址
-
登录MSE注册配置中心控制台,并在顶部菜单栏选择地域。
-
在左侧导航栏,选择注册配置中心 > 实例列表。
-
在实例列表页面,单击目标实例(希望通过mseutil操作的实例)。
-
在基础信息页面,获取实例连接的地址。
此处所示为内网地址,如果需要通过公网访问,请在公网地址区域获取公网地址。
步骤三:使用mseutil工具
mseutil通过指定子产品名以及对应的命令,对实例进行操作。
-
执行如下命令,获取用户文件的执行权限。
chmod +x ./mseutil -
执行如下命令,对实例进行操作。更多命令的详细信息,请参见命令详情。
mseutil [子产品名] [子产品下的子命令] [flags]说明在对实例进行操作时,注意区分子产品名,即引擎类型。
使用示例
以下分别以ZooKeeper和Nacos为例,诊断客户端环境和MSE Server的连通性以及Server的API健康程度。其中,实例的连接地址为步骤二获取的地址。
ZooKeeper:
执行如下代码。
mseutil zk --serverAddr ${实例的连接地址} inspect # 诊断客户端环境和MSE ZooKeeper Server的连通性以及Server的API健康程度
执行结果如下:
[root@iZbp14msc182uxlpki*** ~]# ./mseutil zk --serverAddr mse-cb76xxx-zk.mse.aliyuncs.com inspect
2024-02-22T10:44:54.378+0800 INFO encryption/handler.go:66 successfully create encryption defaultHandler
2024-02-22T10:44:54.378+0800 INFO encryption/handler.go:135 register encryption algorithm [cipher-kms-aes-128] to defaultHandler
2024-02-22T10:44:54.378+0800 INFO encryption/kms_plugins.go:29 successfully register encryption plugin[cipher-kms-aes-128] to defaultHandler
2024-02-22T10:44:54.378+0800 INFO encryption/handler.go:135 register encryption algorithm [cipher-kms-aes-256] to defaultHandler
2024-02-22T10:44:54.378+0800 INFO encryption/kms_plugins.go:34 successfully register encryption plugin[cipher-kms-aes-256] to defaultHandler
2024-02-22T10:44:54.378+0800 INFO encryption/handler.go:135 register encryption algorithm [cipher] to defaultHandler
2024-02-22T10:44:54.378+0800 INFO encryption/kms_plugins.go:39 successfully register encryption plugin[cipher] to defaultHandler
2024-02-22T10:44:54.378+0800 INFO filter/config_filter.go:59 successfully create DefaultConfigFilterChainManager
2024-02-22T10:44:54.378+0800 INFO filter/config_encryption_filter.go:45 successfully create ConfigFilter[defaultConfigEncryptionFilter]
2024-02-22T10:44:54.378+0800 INFO filter/config_filter.go:51 successfully register ConfigFilter[defaultConfigEncryptionFilter] to DefaultConfigFilterChainManager
Inspection for ZooKeeper server
Addr: mse-cb76xxx-zk.mse.aliyuncs.com
Port: 2181
Networking .......... success
- DNS .......... success
- Connection .......... success
rt: 4.5ms
Api .......... success
- create .......... 6.879775ms
- get .......... 6.202625ms
- set .......... 7.383904ms
- delete .......... 14.794774ms
- watch .......... 22.190565ms
Nacos:
执行如下代码。
mseutil nacos --serverAddr ${实例的连接地址} inspect # 诊断客户端环境和MSE Nacos Server的连通性以及Server的API健康程度
示例执行结果:
[root@iZbp14msc182uxlpki ~ ~]# ./mseutil nacos --serverAddr mse-3dfexxx-nacos-ans.mse.aliyuncs.com inspect
2024-02-22T10:30:08.721+0800 INFO encryption/handler.go:66 successfully create encryption defaultHandler
2024-02-22T10:30:08.721+0800 INFO encryption/handler.go:135 register encryption algorithm [cipher-kms-aes-128] to defaultHandler
2024-02-22T10:30:08.721+0800 INFO encryption/kms_plugins.go:29 successfully register encryption plugin[cipher-kms-aes-128] to defaultHandler
2024-02-22T10:30:08.721+0800 INFO encryption/handler.go:135 register encryption algorithm [cipher-kms-aes-256] to defaultHandler
2024-02-22T10:30:08.721+0800 INFO encryption/kms_plugins.go:34 successfully register encryption plugin[cipher-kms-aes-256] to defaultHandler
2024-02-22T10:30:08.721+0800 INFO encryption/handler.go:135 register encryption algorithm [cipher] to defaultHandler
2024-02-22T10:30:08.721+0800 INFO encryption/kms_plugins.go:39 successfully register encryption plugin[cipher] to defaultHandler
2024-02-22T10:30:08.721+0800 INFO filter/config_filter.go:59 successfully create DefaultConfigFilterChainManager
2024-02-22T10:30:08.721+0800 INFO filter/config_encryption_filter.go:45 successfully create ConfigFilter[defaultConfigEncryptionFilter]
2024-02-22T10:30:08.721+0800 INFO filter/config_filter.go:51 successfully register ConfigFilter[defaultConfigEncryptionFilter] to DefaultConfigFilterChainManager
Inspection for Nacos server
Addr: mse-3dfexxx-nacos-ans.mse.aliyuncs.com
Port: 8848
Networking .......... success
- DNS .......... success
- Connection .......... success
rt: 2.5ms
ServerStatus .......... success
- StatusIsUP .......... success
status: UP, rt: 8.04ms
Config .......... success
- PublishConfig .......... success
- ListenConfig .......... success
pushed in 0.49s
- GetConfig .......... success
- CancelListenConfig ......... success
- DeleteConfig .......... success
Naming .......... success
- RegisterInstance .......... success
- Subscribe .......... success
pushed in 2.02s
- UpdateInstanceMetadata .......... success
- ListAllInstances .......... success
- DeregisterInstance ......... success
命令详情
工具迭代更新较快,更多命令请通过在客户端执行mseutil -h查看。
mseutil具备Nacos和ZooKeeper两个产品的基础操作能力,但由于Nacos和ZooKeeper的API参数不完全一致,因此命令有所区别。
mseutil nacos和mseutil zookeeper的所有命令都需要serverAddr参数。
mseutil zookeeper命令
|
命令 |
描述 |
|
|
|
|
|
获取给定path的数据,返回的数据以UTF-8编码形式显示。 例如,执行如下代码,获取
|
|
|
更新给定路径的数据。 例如,执行如下代码,更新
说明
更新成功显示 |
|
|
删除给定路径的数据。 例如,执行如下代码,删除
说明
更新成功显示 |
|
|
列出给定路径的子节点。 例如,执行如下代码,获取
|
|
|
获取给定路径的znode的状态信息。 例如,执行如下代码,获取
|
|
|
支持所有的ZooKeeper四字命令,通过 例如,执行
|
|
|
从指定文件中获取sessionId列表。 说明
指定日志文件的路径目前只支持Java客户端日志中sessionId的提取,Java客户端日志和业务日志默认情况下是同一份日志。 |
mseutil nacos命令
|
Nacos通用选项 |
是否可选 |
默认值 |
描述 |
|
|
可选 |
<空> |
指定命名空间ID。 |
|
|
naming模块必选 |
无 |
指定服务名。 |
|
|
可选 |
|
指定服务的分组。 |
|
|
config模块必选 |
无 |
指定服务名。 |
|
|
可选 |
|
指定配置的分组。 |
|
|
可选 |
无 |
当Nacos开启鉴权时使用。指定RAM鉴权使用的accessKeyId。 |
|
|
可选 |
无 |
当Nacos开启鉴权时使用。指定RAM鉴权使用的accessKeySecret。 |
|
子命令 |
参数 |
描述 |
|
|
无 |
|
|
|
instance |
|
|
|
instance |
将指定的 除继承通用选项,额外选项有如下:
其它选项可通过 |
|
|
诊断问题详解
DNS LookUp失败,显示no such host?
DNS解析失败,请检查输入的serverAddr是否正确。如果为容器环境,请检查CoreDNS是否工作正常。
test Connect error,显示dial tcp ip:port: i/o timeout?
测试连接对应的实例端口超时,请检查网络环境。
-
在MSE基础信息页面的实例节点区域,查看MSE实例的状态是否为运行中。
-
如果通过公网访问,请确保公网白名单中已经加入诊断工具运行环境的公网出口IP。关于如何为实例设置白名单,请参见设置Nacos白名单或设置ZooKeeper白名单。
-
请确保端口号输入正确。ZooKeeper端口号为2181;Nacos端口号为8848。
-
请确保诊断工具运行环境所在的VPC和创建MSE实例时所选的VPC相同。
显示ZooKeeper Api test error: zk: could not connect to a server?
执行如下代码,如果返回This ZooKeeper instance is not currently serving requests,请确保MSE实例处于运行中状态,此时Server端正在选主,请稍后重新执行诊断。
mseutil zk --serverAddr ${实例的连接地址} 4lw stat