MSE 诊断利器上线

BitLogicist
• 阅读 451

作者:子葵

背景

在日常开发和生产环境中,可能会遇到由于网络或者其他因素导致客户端连接 MSE 集群出现异常,此时需要排查集群以及客户端状态,通常需要通过文档查询对应的异常解释来定位问题,排查问题的链路比较长,比较耗时。因此 MSE 提供了一键诊断工具,发现 client -> server 链路上的问题并提供建议,使得问题排查更加快捷。

轻松上手

在日常使用中可能会遇到 MSE 实例端口不通,客户端出现端口不可用的异常日志

MSE 诊断利器上线

此时我们就可以通过 mseutil 快速诊断网络问题。

  1. 通过文档下载对应平台的 mseutil 工具,工具是独立的二进制包可完全独立运行。之后通过 mse 实例详情页面获得 MSE 实例的 serverAddr

MSE 诊断利器上线

  1. 通过以下命令进行快速诊断:
mseutil {子产品名} inspect --serverAddr mse-xxxxx.aliyuncs.com

诊断分为基础网络诊断以及 API 诊断,网络诊断会测试客户端环境和 MSE 实例之间的网络连接是否可达,端口是否可访问。API 诊断针对不同子产品的 API 进行测试,主要测试接口的可用性以及接口调用延时等信息。

mseutil zookeeper inspect --serverAddr mse-xxx-p.zk.mse.aliyuncs.com
mseutil nacos inspect --serverAddr mse-xxx-p.zk.mse.aliyuncs.com

MSE 诊断利器上线

此时我们可知 DNS 解析正常,但是网络连接出现问题,此时我们根据文档中的错误描述可排查到公网白名单未配置,此时只需要配置公网白名单即可。

如果一切正常会输出以下结果:

MSE 诊断利器上线

通过诊断结果我们可知客户端环境到 MSE 实例之间的网络不通,之后可通过 MSE 对应文档排查具体原因,Nacos 诊断步骤和 ZooKeeper 一致。

MSE 实例操作

mseutil 提供对 MSE 实例的数据操作能力,兼容 zkCli,并且提供四字命令查询能力,具体使用可使用 -h 子命名查询使用方法,并且支持查询修改 Nacos 服务信息以及配置信息,使得线上环境排查问题更加便捷,mseutil 可完全独立在 x86 以及 arm64 环境的Windows,Linux,OSX 运行,避免繁琐的环境配置,上手即用。

支持四字命令查询 Server 状态并且兼容 zkCli

mseutil 支持 ZooKeeper 四字命令,例如可通过以下方式进行四字命令查询 Server 当前状态的摘要:

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

MSE 诊断利器上线

mseutil 支持所有的 ZooKeeper 四字命令,可通过 mseuitl zookeeper 4lw -h 查看具体使用。

mseutil 兼容 zkCli,支持对 MSE ZooKeeper 中的数据进行查询和修改。

例如可通过以下命令快捷查询实例中对应 Path 的 Znode 数据:

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

类似的 mseutil 还支持(set,delete,ls,stat)等命令通过 mseutil zookeeper -h 获取更多帮助。

支持对Nacos实例的服务信息查询和更新能力

mseutil 支持对 Naocs 一键诊断,支持查询基础的实例查询注册功能。一键诊断

mseutil nacos inspect --serverAddr ${实例连接地址}

MSE 诊断利器上线

查询服务实例列表

mseutil nacos get instance -n ${namespaceId} -s ${serviceName} -g ${groupName}

注册对应服务的实例

mseutil nacos create instance <IP>:<PORT> -n ${namespaceId} -s ${serviceName} -g ${groupName} -c ${clusterName}

此外,诊断工具支持 Nacos 1.x 客户端协议和 Nacos 2.x 客户端协议,可通过参数切换:

mseutil nacos get instance -s ${serviceName} --v2

从而可以完全覆盖客户端侧所有基本场景,减少问题定位的成本。

未来规划

mseutil 未来还会支持更多的MSE子产品以及更细粒度的,更智能的诊断能力,包括客户端到 MSE 实例的网络报文分析,客户端负载状态分析,具体应用的资源占用水平以及 GC 分析等能力,帮助用户更便捷的排查在使用 MSE 产品过程中遇到的问题,提升运维效率。

折扣活动

MSE 诊断利器上线

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Peter20 Peter20
4年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这