By Zikui
Clients may fail to connect to the Microservices Engine (MSE) cluster in daily development and production environments due to network failure or other factors. If this is the case, you need to check the status of the cluster and the client. In most cases, you need to query the corresponding exception interpretation in the document to locate the problem, which is complicated and time-consuming. Therefore, MSE provides a quick diagnostic tool to find problems on the client → server link and provide suggestions, making troubleshooting faster.
In daily use, there may be an exception log that says the MSE instance port and the client port are unavailable.
At this time, we can use mseutil to diagnose network problems quickly.
1. Download the mseutil tool of the corresponding platform through the documentation. The tool is an independent binary package that can run independently. Then, you can obtain the serverAddr of the MSE instance on the details page.
2. Run the following command to perform a quick diagnosis:
mseutil {subproduct name} inspect --serverAddr mse-xxxxx.aliyuncs.com
Diagnostics include basic network issue diagnostics and API diagnostics. Network issue diagnostics tests whether the network connection between the client environment and the MSE instance is available and whether the port is accessible. API diagnostics tests APIs of different sub-products. It mainly tests the availability of APIs and the latency of API calls.
mseutil zookeeper inspect --serverAddr mse-xxx-p.zk.mse.aliyuncs.com
mseutil nacos inspect --serverAddr mse-xxx-p.zk.mse.aliyuncs.com
At this time, we know that the DNS resolution is normal, but there is a problem with the network connection. We can find that the public network whitelist is not configured according to the exception description in the document. In this case, we only need to configure the public network whitelist.
If all goes well, the following results will be output:
Based on the diagnosis results, we can see that the network between the client environment and the MSE instance is not connected. Then, we can troubleshoot the specific causes through the corresponding documents of MSE. The diagnostic procedure of Nacos is the same as that of ZooKeeper.
mseutil provides the ability to do operations on the data of MSE instances. It is compatible with zkCli and provides the Four Letter Word query capability. For specific usage, -h can be used to query the usage method. mseuti also supports querying and modifying Nacos service information and configuration information, making it easier to troubleshoot problems in online environments. mseutil can run independently on Windows, Linux, and OSX in x86 and arm64 environments with no complicated environment configuration, so it is easy to use.
mseutil supports the Four Letter Words of ZooKeeper. For example, you can query the summary of the current status of the Server through the following command:
mseutil zookeeper 4lw --serverAddr mse-xxx.aliyuncs.com stat
mseutil supports all Four Letter Words of ZooKeeper. You can view the specific usage through mseuitl zookeeper 4lw -h.
mseutil is compatible with zkCli and allows you to query and modify the data in MSE ZooKeeper.
For example, you can query the Znode data of the corresponding Path in the instance with the following command:
mseutil zookeeper get --serverAddr=mse-xxxx.aliyuncs.com /zookeeper
mseutil also supports commands (such as set, delete, ls, and stat) for more help through mseutil zookeeper -h.
mseutil supports quick diagnostics of Naocs and basic instance query and instance registration features.
Quick diagnostics:
mseutil nacos inspect --serverAddr ${Instance Connection Address}
Querying the list of service instances:
mseutil nacos get instance -n ${namespaceId} -s ${serviceName} -g ${groupName}
Registering the instance of the corresponding service:
mseutil nacos create instance <IP>:<PORT> -n ${namespaceId} -s ${serviceName} -g ${groupName} -c ${clusterName}
In addition, the diagnostics tool supports the Nacos 1.x client protocol and the Nacos 2.x client protocol. These two protocols can be switched by parameters:
mseutil nacos get instance -s ${serviceName} --v2
This way, all basic scenarios on the client can be fully covered, reducing the cost of troubleshooting.
mseutil will support more MSE sub-products and more fine-grained and intelligent diagnostic capabilities (including network message analysis from clients to MSE instances, client load status analysis, resource occupancy level of specific applications, and GC analysis) to help users more easily troubleshoot problems during the use of MSE products and improve O&M efficiency.
HEROZ Creates a Professional AI Shogi Service with Alibaba Cloud Function Compute
ACK and MSE Ingress Makes Cluster Ingress Traffic Management Easier
206 posts | 12 followers
FollowAliware - March 30, 2022
Alibaba Cloud Native Community - February 22, 2023
Alibaba Cloud Native Community - December 6, 2022
Alibaba Cloud Native - April 7, 2023
Alibaba Cloud Native - May 11, 2022
Alibaba Cloud Native Community - May 17, 2022
206 posts | 12 followers
FollowMSE provides a fully managed registration and configuration center, and gateway and microservices governance capabilities.
Learn MoreAlibaba Cloud Function Compute is a fully-managed event-driven compute service. It allows you to focus on writing and uploading code without the need to manage infrastructure such as servers.
Learn MoreAccelerate and secure the development, deployment, and management of containerized applications cost-effectively.
Learn MoreLindorm is an elastic cloud-native database service that supports multiple data models. It is capable of processing various types of data and is compatible with multiple database engine, such as Apache HBase®, Apache Cassandra®, and OpenTSDB.
Learn MoreMore Posts by Alibaba Cloud Native