alibaba / Sentinel

A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)
https://sentinelguard.io/
Apache License 2.0
22.32k stars 8k forks source link

sentinel控制台没有应用信息 #3360

Open Happy-Socks opened 6 months ago

Happy-Socks commented 6 months ago

spring-cloud-starter-alibaba-sentinel:2022.0.0.0也就是1.8.6。spring.cloud:2021.0.7。java:1.8。mysql:8。 下载jar包启动,application.yml中配置: spring: cloud: sentinel: transport: port: 8719 dashboard: localhost:8080 eager: true 服务启动后访问方法,控制台也不显示该微服务,看了各种攻略,该没解决,目前怀疑是版本问题,谁有时间帮忙看看

sirius19 commented 6 months ago

相关的pom.xml和application.yml 发一下

Happy-Socks commented 6 months ago

配置 依赖1 依赖2 这是依赖截图,和配置截图

Happy-Socks commented 6 months ago

启动命令:java -jar sentinel-dashboard-1.8.6.jar 方法 访问这个方法,控制台一直没有, 控制台 版本 这个是官网查询的毕业版本对应,和我用的版本有不一致的地方,不过sentinel1.8.6对应cloud好多版本都可以使用,我就选用了1.8.6,现在访问方法后,控制台不出来

sirius19 commented 6 months ago

https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0 https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel 仔细查看一下文档。客户端注册到dashboard是通过transport的组件和dashboard进行心跳通讯,有日志记录的,查看一下transport包引用以及日志记录。

Happy-Socks commented 6 months ago

[查看机器列表以及健康情况]:机器列表有我的ip,显示正常。 [监控 (单机和集群聚合)]:在windos10电脑中本机启动jar包,然后某一个微服务启动(已经弄好依赖和配置),访问方法后,控制台没反应,只有自己监控自己的那个, https://github.com/alibaba/Sentinel/wiki/FAQ#q-sentinel-%E6%8E%A7%E5%88%B6%E5%8F%B0%E6%B2%A1%E6%9C%89%E6%98%BE%E7%A4%BA%E6%88%91%E7%9A%84%E5%BA%94%E7%94%A8%E6%88%96%E8%80%85%E6%B2%A1%E6%9C%89%E7%9B%91%E6%8E%A7%E5%B1%95%E7%A4%BA%E5%A6%82%E4%BD%95%E6%8E%92%E6%9F%A5 我根据这个faq进行了排查, 1:接入 Sentinel 的应用应该引入 Sentinel 客户端通信的基础 jar 包,如 sentinel-transport-simple-http, 我引入的是

com.alibaba.cloud spring-cloud-starter-alibaba-sentinel ${spring.cloud.alibaba.version}

里面自带了这个依赖,所以没问题, 2:客户端启动时添加相应的 JVM 参数,包括。。。。 我用了官网提示的那个命令启动的jar包,java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar,改了一下包名,正常启动,访问没问题。 客户端启动的时候在vm参数里面添加了两个参数 vm 3:启动控制台,运行应用,当 首次访问对应的资源后,等待一段时间 即可在控制台上看到对应的应用以及相应的监控信息。可以通过 curl http://ip:port/tree 命令查看调用链,正常情况下会显示出已访问资源的调用链。 我访问了hello方法,等了一会,没有显示对应的应用。然后在浏览器访问http://ip:port/tree,提示404 开始排查问题: 1:控制台推送规则的日志默认位于控制台机器的 ${user.home}/logs/csp/sentinel-dashboard.log sentinel-dashboard 分析了一下,没什么问题 2:接入端接收规则日志默认位于接入端机器的 ${user.home}/logs/csp/sentinel-record.log.xxx sentinel-record logxxx 分析了一下,都是默认状态,没有加载什么规则 3:接入端 transport server 日志默认位于接入端机器的 ${user.home}/logs/csp/command-center.log.xxx command-centerlog 日志显示ip地址是10.122.158.129,然后控制台的机器列表中ip是10.122.158.129,yml的配置文件ip是 localhost:8080 这三个日志没看出什么问题 常用排查问题列表: 确认 Dashboard 已经正常启动并可以正常访问。

  可以正常访问

检查网络配置、防火墙配置,确认控制台与接入端服务双向的网络是否连通。

 目前在同一台电脑,不存在这个问题

若是 Spring Boot / Dubbo 等应用请务必检查是否引入了整合依赖(如 Dubbo 对应 sentinel-dubbo-adapter)并进行了相应配置

 已经引入了整合依赖

检查接入端的启动参数配置是否正确(如控制台地址是否配置正确)。

上面有配置,ip地址用了localhost:8080,感觉没问题

通过 ~/logs/csp/sentinel-record.log 日志排查客户端发送心跳包是否正常,是否正常上报给 Dashboard。

再次查看该日志, 2024-03-12 10:08:59.068 WARNING No SPI configuration file, filename=META- INF/services/com.alibaba.csp.sentinel.metric.extension.MetricExtension, classloader=org.springframework.boot.loader.LaunchedURLClassLoader@6433a2 2024-03-12 10:08:59.069 INFO [MetricExtensionProvider] No existing MetricExtension found 报SPI未找到,不知道与没有影响 若规则保存成功但未在控制台上出现,请确保接入端的 fastjson 的版本是较新版本。

fastjson 是新版的,还没有开始保存规则 若簇点能看到实时数据但监控看不到,请确保控制台系统时间与接入端系统时间保持同步。注意控制台监控只保留最近几分钟的数据。 时间是一致的 若控制台已正常显示应用,但看不到监控、请求链路,机器列表页面显示的 IP 不正确,可以参考 [此 issue] (https://github.com/alibaba/Sentinel/issues/847)。 不显示 通过 curl IP:port/getRules?type=flow 等命令查看结果,查看规则是否推送成功。

sirius19 commented 6 months ago

demo代码推到一个仓库我下载看看

Happy-Socks commented 6 months ago

git@gitee.com:liu-bo-321/seata-demo1.git

Happy-Socks commented 6 months ago

https://gitee.com/liu-bo-321/seata-demo1.git

加我qq可以吗,997178865

sirius19 commented 6 months ago

image spring cloud alibaba版本不对。改成2021可以用。如果要用2022以上注意spring、springboot、springcloud的版本对应。 image 控制台能打印[Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].说明引用没有问题了

Happy-Socks commented 6 months ago

解决了,spring cloud alibaba版本改成2021.0.6.0就好了