客户端命令行工具的安装和使用

mseutil是一个命令行工具,支持在Linux、macOS和Windows客户端运行环境下诊断MSE实例,同时也支持查询和操作MSE实例的数据。本文以Linux系统为例,介绍如何获取和使用mseutil工具,以及mseutil的命令详情。

前提条件

创建Nacos引擎创建ZooKeeper引擎

步骤一:下载mseutil工具

mseutil工具支持在Linux、macOS和Windows系统中运行。您可根据自身需要下载使用。

  • Linux x86_64

    wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/linux/x86_64/mseutil
  • Linux arm64

    wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/linux/arm64/mseutil
  • macOS x86_64

    wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/darwin/x86_64/mseutil
  • macOS arm64

    wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/darwin/arm64/mseutil
  • Windows x86_64

    wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/windows/x86_64/mseutil
  • Windows arm64

    wget https://msetools.oss-cn-hangzhou.aliyuncs.com/mseutil/windows/arm64/mseutil

例如,在Linux客户端执行命令,下载mseutil工具。结果输出如下:

image

步骤二:在MSE控制台获取地址

  1. 登录MSE注册配置中心管理控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择注册配置中心 > 实例列表

  3. 实例列表页面,单击目标实例(希望通过mseutil操作的实例)。

  4. 基础信息页面,获取实例连接的地址。

    下图所示为内网地址,如果需要通过公网访问,请在公网地址区域获取公网地址。

    image

步骤三:使用mseutil工具

mseutil通过指定子产品名以及对应的命令,对实例进行操作。

  1. 执行如下命令,获取用户文件的执行权限。

    chmod +x ./mseutil
  2. 执行如下命令,对实例进行操作。更多命令的详细信息,请参见命令详情

    mseutil [子产品名] [子产品下的子命令] [flags]
    说明

    在对实例进行操作时,注意区分子产品名,即引擎类型。

使用示例

如下所示,分别以ZooKeeper和Nacos为例,诊断客户端环境和MSE Server的连通性以及Server的API健康程度。其中,实例的连接地址为步骤二获取的地址。

ZooKeeper:

执行如下代码。

mseutil zk --serverAddr ${实例的连接地址} inspect  # 诊断客户端环境和MSE ZooKeeper Server的连通性以及Server的API健康程度

执行结果如下:

image

Nacos:

执行如下代码。

mseutil nacos --serverAddr ${实例的连接地址} inspect  #  诊断客户端环境和MSE Nacos Server的连通性以及Server的API健康程度

示例执行结果如下所示:

image

命令详情

工具迭代更新较快,更多命令请通过在客户端执行mseutil -h查看。

mseutil具备Nacos和ZooKeeper两个产品的基础操作能力,但由于Nacos和ZooKeeper的API参数不完全一致,因此命令有所区别。

说明

mseutil nacos和mseutil zookeeper的所有命令都需要serverAddr参数。

mseutil zookeeper命令

命令

描述

inspect

  • 诊断客户端环境与Server的连通性以及Server的API健康程度。

  • 诊断分为多个步骤,包含基础网络环境诊断以及子产品API能力诊断。

  • 其它参数可通过执行mseutil zookeeper inspect -h查看。

get

获取给定path的数据,返回的数据以UTF-8编码形式显示。

例如,执行如下代码,获取/zookeeper路径下的数据。

mseutil zookeeper get /zookeeper --serverAddr mse-xxxx.aliyuncs.com

set

更新给定路径的数据。

例如,执行如下代码,更新/test路径下的数据。

mseutil zookeeper set /test "testdata" --serverAddr mse-xxxx.aliyuncs.com --version=-1  #--version -v 指定操作的数据的版本
说明

更新成功显示success字样。

delete

删除给定路径的数据。

例如,执行如下代码,删除/test路径下的数据

mseutil zookeeper delete /test --serverAddr mse-xxxx.aliyuncs.com --version=-1   #--version -v 指定操作的数据的版
说明

更新成功显示success字样。

ls

列出给定路径的子节点。

例如,执行如下代码,获取/test路径下的所有子节点。

mseutil zookeeper ls /test --serverAddr mse-xxxx.aliyuncs.com

stat

获取给定路径的znode的状态信息。

例如,执行如下代码,获取/zookeeper路径的状态信息。

mseutil zookeeper stat /zookeeper --serverAddr mse-xxxx.aliyuncs.com

4lw

支持所有的ZooKeeper四字命令,通过 mseutil zookeeper 4lw -h获取详细四字命令帮助。

例如,执行stat命令,查看ZooKeeper的状态。

mseutil zookeeper 4lw stat --serverAddr mse-xxxx.aliyuncs.com

gs

从指定文件中获取sessionId列表。

说明

指定日志文件的路径目前只支持Java客户端日志中sessionId的提取,Java客户端日志和业务日志默认情况下是同一份日志。

mseutil nacos命令

Nacos通用选项

是否可选

默认值

描述

--namespaceId/-n

可选

<空>

指定命名空间ID。

--serviceName/-s

naming模块必选

指定服务名。

--groupName/-g

可选

<DEFAULT_GROUP>

指定服务的分组。

--dataId/-D

config模块必选

指定服务名。

--groupName/-G

可选

<DEFAULT_GROUP>

指定配置的分组。

--accessKey/-i

可选

当Nacos开启鉴权时使用。指定RAM鉴权使用的accessKeyId。

--secretKey/-k

可选

当Nacos开启鉴权时使用。指定RAM鉴权使用的accessKeySecret。

子命令

参数

描述

inspect

  • 诊断客户端环境下和Server的连通性以及Server的API可用性验证。

  • 诊断分为多个步骤,每个步骤是否成功,以及失败的原因都会打印出来。

  • 其它选项可通过mseutil nacos inspect -h查看。

get

instance

  • 获取指定命名空间下的指定分组的指定服务的全量实例列表。

  • 继承通用选项,其它选项可通过mseutil nacos get -h查看。

create

instance

将指定的ip:port注册到指定的命名空间下的指定分组中的指定服务中。

除继承通用选项,额外选项有如下:

  • --clusterName/-c:(可选,默认值DEFAULT)指定实例的集群名。

  • --ephemeral:(可选,默认值false)是非持久化实例。

  • --weight:(可选,默认值1.0)实例权重。

其它选项可通过mseutil nacos create -h查看。

put

诊断问题详解

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

相关文档

如何解决MSE Nacos连接超时问题?