首页 > 其他分享 >Arthas线上排障

Arthas线上排障

时间:2023-08-07 17:44:25浏览次数:29  
标签:配置 Nacos 上排 nacos 密码 Client Arthas server

Arthas线上排障

场景1. Nacos Client访问不到配置中心

Nacos-Server/Nacos-Client: v2.0.4

背景

Nacos-Server因安全需要需要开启鉴权, 所有Client访问配置中心都需要提供控制台账户和密码.

  • Server配置
nacos.core.auth.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false
nacos.core.auth.server.identity.key=serverAuthKey
nacos.core.auth.server.identity.value=serverAuthValue
  • Client配置
java -jar app.jar -Dnacos.username=nacos -Dnacos.password=大写密码

现象

服务启动后,日志一直报403 unknow user!!, 滚动一段时间后, 应用退出。

使用Client启动命令中配置的用户名密码能够正常登录nacos-server控制台。

过程

  1. 能正常登录控制台,证明密码没问题。
  2. 本次部署是初次部署,考虑到配置可能有误,拷贝测试环境的nacos-server配置到部署环境,重新部署,问题依旧存在。
  3. 根据错误信息,定位nacos-server源码com.alibaba.nacos.console.security.nacos.NacosAuthManager#resolveTokenFromUser是执行校验的主要方法,用户名和密码通过参数传入。
  4. 使用Arthas监听该方法,看Client传过来的到底是个什么玩意
watch com.alibaba.nacos.console.security.nacos.NacosAuthManager resolveTokenFromUser '{params,returnObj,throwExp}' -x 3
  1. 启动Client后,Client发送过来的请求中,初次携带的鉴权信息是正确的,第二次及以后的密码变成了小写。

result

  1. 去官方issue列表查询,未发现类似问题,源码也没发现有改变配置大小写的地方,从上一步可知Client启动后有一次请求的鉴权信息是正确的, 这次访问配置中心是成功的, 而后续鉴权信息就发生变更了, 可能是来自配置中心的配置覆盖了本地配置, 经排查, Client依赖的配置文件内, 确实存在同名的配置
nacos:
  username: nacos
  password: 小写密码
  1. 去除该配置后, Client启动正常

场景2. Nacos Client突发数据库连接异常,错误日志剧增

标签:配置,Nacos,上排,nacos,密码,Client,Arthas,server
From: https://www.cnblogs.com/longkang/p/17612031.html

相关文章

  • Java 诊断工具 Arthas 教程学习笔记
    Java诊断工具Arthas教程学习笔记 Java诊断利器Arthas,是阿里的一款开源工具。Github-alibaba/arthas 上可以看到它的介绍。了解它,主要是最近对分析Java错误堆栈比较感兴趣,机缘巧合看到了它。本文记录的内容,就是基于它官网的文档摘抄的,涉及的截图可能由于篇幅有限,不是......
  • Arthas学习实践
    Arthas是一款线上jvm诊断工具,能够查看java应用到资源使用信息、函数调用统计等,同时还能在不停止jvm运行的情况下,修改运行时代码,查看方法的调用、入参、返回值等。Arthas的关键技术有两方面:java-agent机制与字节码修改(与rasp相同)Arthas采用命令行的方式与用户交互,Arthas的安装过......
  • Arthas访问bean对象
    在使用Arthas中ognl命令时需要指定加载目标类的ClassLoader,所以需要先得到classLoader的hashCodesc-dcn.seenew.habe.business.payorder.utils.UniPayParamFromDB#1.通过目标类名获取classLoader的hashCode【31cefde0】,利用这个hashCode访问beanvmtool-x3--actiongetI......
  • Java 诊断工具 Arthas 常见命令(超详细实战教程)
    基本概念  云原生这么多微服务,当然需要一个诊断利器来排查问题。  Arthas是阿里开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。Arthas支持JDK6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab......
  • arthas 使用教程
    https://blog.csdn.net/qq_19524879/article/details/126116050简介Arthas是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作。支持JDK6+,支持Linux/Mac/Windows。这个工具真的很好用,而且入门超简单,十......
  • Arthas浅用
    安装curl-Ohttps://arthas.aliyun.com/arthas-boot.jar使用java-jararthas-boot.jar--target-ip192.168.150.38##可以在浏览器上访问http://192.168.150.38:3658/##常用命令##看板dashboard##dump文件heapdump--live/tmp/dump.hprof##火焰图profilers......
  • 一文带你读懂Arthas实现原理
    一.前言Arthas相信大家已经不陌生了,肯定用过太多次了,平时说到Arthas的时候都知道是基于JavaAgent的,那么他具体是怎么实现呢,今天就一起来看看。首先Arthas是在GitHub开源的,我们可以直接去GitHub上获取源码:Arthas。本文基于Arthas3.6.7版本源码进行分析,具体源码注......
  • 记录Arthas在一次性能调优过程中实践
    背景 使用jmeter对系统进行压力测试,该业务流程请求大致调用:jmeter压力机——> A系统 ——> B系统——>A系统.  A系统作为基础平台,请求先到A系统,然后转到具体的B业务系统,B接口逻辑中需要调用A系统查询基础数据。问题描述 当使用高并发访问系统时,整个系统卡住......
  • arthas
    arthas下载执行wgethttps://arthas.aliyun.com/arthas-boot.jarwgethttps://arthas.aliyun.com/math-game.jarjava-jararthas-boot.jar可以看到已执行的文件,选择需要查看的服务nohupjava-jarmath-game.jar>1.log2>&1&后台启动所有命令https://arth......
  • 中小型系统必要可行的性能测试实践--ArtHas调优实战
    一、参考arthas用户实例,积累arthas调优经验。二、arthas命令汇总图 参考:arthas官网文档arthas在线教程arthas用户案例一图掌握Artha ......