标签: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模块 作为服务端
<!--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>
package com.dong.adminserver;
@SpringBootApplication
@EnableAdminServer
@EnableEurekaClient
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class,args);
}
}
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作为客服端
<!--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>
@SpringBootApplication
@EnableEurekaClient
public class AdminClientApplication {
public static void main(String[] args) {
SpringApplication.run(AdminClientApplication.class,args);
}
}
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
结果如夏天,再wallboard中三个服务(一个服务端加两个客服端)都是绿色的,表明它是健康的。
点击这些绿色六边形可以查看相关服务的相关信息。
springcloud-Spring Boot Admin服务监控(十三)
标签:cti ble min admin eureka res 连接 cat efault
原文地址:https://www.cnblogs.com/lanxinren/p/14814976.html