码迷,mamicode.com
首页 > 编程语言 > 详细

springcloud-Spring Boot Admin服务监控(十三)

时间:2021-06-02 12:05:42      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:cti   ble   min   admin   eureka   res   连接   cat   efault   

推荐文章

前言

Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序。这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现。UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序。

? 原理:Spring Boot Actuator 模块为监控Spring Boot 应用程序暴露的大量的管理端点[ENDPOINT],在Spring Boot Actuator的基础上提供简洁的可视化WEB UI,是用来管理 Spring Boot 应用程序的一个简单的界面。

? 在springcloud中我们监控微服务的时候,服务数量众多,我们肯定想统一管理微服务,我可以将服务全部注册到注册中心上,admin会自己拉取Eureka上注册的应用信息,主动去注册。这也是唯一区别之前手动注册(SBA连接方式)的地方,就是client端不需要admin-client的依赖,也不需要配置admin地址了,一切全部由admin-server自己实现。这样的设计对环境变化很友好,不用改了admin-server后去改所有应用的配置了。

示例

新建springboot-admin-server模块 作为服务端

  1. pom.xml
 <!--web-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <!--添加springboot admin服务端依赖-->
 <dependency>
     <groupId>de.codecentric</groupId>
     <artifactId>spring-boot-admin-starter-server</artifactId>
     <version>2.1.0</version>
 </dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 主启动类
package com.dong.adminserver;

@SpringBootApplication
@EnableAdminServer
@EnableEurekaClient
public class AdminServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminServerApplication.class,args);
    }
}
  1. application.yml
server:
  port: 8788
spring:
  application:
    name: springboot-admin-server

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/
    #客户端每隔30秒从Eureka服务上更新一次服务信息
    registry-fetch-interval-seconds: 30
    #需要将我的服务注册到eureka上
    register-with-eureka: true
    #需要检索服务
    fetch-registry: true
  #心跳检测检测与续约时间
  instance:
    #告诉服务端,如果我10s之内没有给你发心跳,就代表我故障了,将我剔除掉,默认90s
    #Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己)
    lease-expiration-duration-in-seconds: 10
    #每隔2s向服务端发送一次心跳,证明自已依然活着,默认30s
    #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则)
    lease-renewal-interval-in-seconds: 2
    # 启用ip配置 这样在注册中心列表中看见的是以ip+端口呈现的
    prefer-ip-address: true
    # 实例名称  最后呈现地址:ip:2002
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    health-check-url-path: /actuator/health

    #Eureka 中的 metadataMap 是专门用来存放一些自定义的数据,
    # 当注册中心或者其他服务需要此服务的某些配置时可以在 metadataMap 里取。
    # 实际上,每个 instance 都有各自的 metadataMap,map 中存放着需要用到的属性。
    # 例如,上面配置中的 eureka.instance.metadata-map.username,当这个服务成功注册到 Eureka 上,
    # Spring Boot Admin 就会取拿到这个 instance,进而拿到 metadataMap 里的属性,
    # 然后放入请求头,向此服务发送请求,访问此服务的 Actuator 开放的端点。
    #说白了,这个为了连接到自己,把密码告诉eureka,spring boot admin server 拿着密码去连接客户端应用,监控信息
    metadata-map:
      user.name: ${spring.security.user.name}
      user.password: ${spring.security.user.password}

#使用注册中心后,他admin也可以监控自身服务状况
management:
  endpoints:
    web:
      exposure:
        #开放所有页面节点  默认只开启了health、info两个节点
        include: ‘*‘
  endpoint:
    health:
      #显示健康具体信息  默认不会显示详细信息
      show-details: always
# 利用info端点,加入版本等信息
info:
  versin: ‘@project.version@‘
  name: ‘@project.artifactId@‘
  group: ‘@project.groupId@‘
  description: ‘@project.description@‘
  #还可以自定义信息
  author: dong
  blog: https://www.cnblogs.com/lanxinren/

新建springcloud-admin-client作为客服端

  1. pom.xml
 <!--web-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <!--添加springboot admin客户端依赖-->
 <dependency>
     <groupId>de.codecentric</groupId>
     <artifactId>spring-boot-admin-starter-client</artifactId>
     <version>2.1.0</version>
 </dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 主启动类
@SpringBootApplication
@EnableEurekaClient
public class AdminClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminClientApplication.class,args);
    }
}
  1. application.yml
server:
  port: 8080
spring:
  application:
    name: springcloud-admin-client
  boot:
    admin:
      client:
        #springboot admin client连接 spring boot admin server 端点地址springboot admin client连接 spring boot admin server 端点地址
        url: http://localhost:8788
        instance:
          #默认使用的是主机名注册,改为使用ip注册
          prefer-ip: true
management:
  endpoints:
    web:
      exposure:
        #开放所有页面节点  默认只开启了health、info两个节点
        include: ‘*‘
  endpoint:
    health:
      #显示健康具体信息  默认不会显示详细信息
      show-details: always
# 利用info端点,加入版本等信息
info:
  versin: ‘@project.version@‘
  name: ‘@project.artifactId@‘
  group: ‘@project.groupId@‘
  description: ‘@project.description@‘
  #还可以自定义信息
  author: dong
  blog: https://www.cnblogs.com/lanxinren/

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/

新建客服端 springcloud-admin-client2

代码参考springcloud-admin-client,只需将端口改为8081,再给组启动类重命名就行。

运行

运行程序springcloud-eureka-7001,springboot-admin-server,springcloud-admin-client和springcloud-admin-client2

访问:http://localhost:8788

结果如夏天,再wallboard中三个服务(一个服务端加两个客服端)都是绿色的,表明它是健康的。

技术图片

点击这些绿色六边形可以查看相关服务的相关信息。

技术图片

springcloud-Spring Boot Admin服务监控(十三)

标签:cti   ble   min   admin   eureka   res   连接   cat   efault   

原文地址:https://www.cnblogs.com/lanxinren/p/14814976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!