docker部署sentinel客户端在dashboard中遇到 Failed to fetch metric from 错误

症状

在dashboard中可以看到微服务的节点,但是没有任何其他数据进来。同时dashboard的控制台打印如下错误

2022-11-29T03:54:56.021835221Z 2022-11-29 11:54:56.021 ERROR 1 --- [pool-2-thread-1] c.a.c.s.dashboard.metric.MetricFetcher   : Failed to fetch metric from <http://***.***.***.***:8719/metric?startTime=1669693960000&endTime=1669693966000&refetch=false> (ConnectionException: Connection timed out)

原因

sentinel客户端的配置文件的该部分

spring:
  cloud:
    sentinel:
        transport:
          dashboard: 192.168.*.*:8858
          client-ip: 192.168.*.*
          port: 8720

dashboard项代表的是dashboard的部署ip和端口,客户端会向dashboard注册,表示自己所在ip为client-ip,通信端口为port。之后dashboard会按照http://{client-ip}:{port}的地址从客户端拉取数据。如果拉取不到则打印上述错误。

如果这两项不配置,则会使用docker内网ip和默认的8719端口进行注册,如果客户端与dashboard不在同一网段则无法访问

解决

通过宿主机IP访问

client-ip项配置为宿主机IP,port项配置为一个没有被占用的端口,同时将该端口映射到宿主机的同一端口

注意,如果客户端与dashboard同处一台宿主机中,由于dashboard自己也会作为客户端注册到自己,而dashboard一般为最先启动的,如果没有修改端口配置则8719会被它自己占用。

猜你喜欢

转载自blog.csdn.net/hjg719/article/details/128095358
今日推荐