springboot admin 监控
Spring Boot Admin
简介
使用
Spring Boot Admin
可以管理和监控你的 Spring Boot 项目。它分为客户端和服务端两部分,客户端添加到你的 Spring Boot 应用增加暴漏相关信息的
HTTP
接口,然后注册到Spring Boot Admin
服务端,这一步骤可以直接向服务端注册,也可以通过Eureka
或者Consul
进行注册。
Spring Boot Admin Server
通过Vue.js
程序监控信息进行可视化呈现。支持多种事件通知操作。
Service 端
引入依赖:
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
编写 application.yml
配置:
spring:
security:
user:
# 登录账号
name: user
# 登录密码
password: 123456
server:
port: 8081
添加 @EnableAdminServer
注解:
@EnableAdminServer @SpringBootApplication public class SystemApplication { public static void main(String[] args) { SpringApplication.run(SystemApplication.class, args); } }
添加安全认证
因为是部署在公网中,所以增加权限账号登录验证。账号密码已经在 application.yml
中配置好了。还需要实现如下权限拦截。
@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { // 跨域设置,SpringBootAdmin客户端通过instances注册 http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .ignoringAntMatchers("/instances"); // 静态资源 http.authorizeRequests().antMatchers("/assets/**").permitAll(); // 所有请求必须通过认证 http.authorizeRequests().anyRequest().authenticated(); // 整合spring-boot-admin-server-ui http.formLogin().loginPage("/login").permitAll(); http.logout().logoutUrl("/logout").logoutSuccessUrl("/login"); // 启用basic认证 http.httpBasic(); } }
至此,Service 端 已完成配置,对应的访问地址:http://localhost:8081
配置 Client 端
引入依赖:
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.1.0</version> </dependency>
编写 application.yml
配置:
spring:
application:
name: springbootadminclient
boot:
admin:
client:
# Spring Boot Admin 服务端地址
url: http://localhost:8081
username: user
password: 123456
instance:
prefer-ip: true
management:
endpoint:
health:
# 端点健康情况,默认值 "never",设置为 "always" 可以显示硬盘使用情况和线程情况
show-details: always
endpoints:
web:
exposure:
# 设置端点暴露的哪些内容,默认 ["health","info"],设置 "*" 代表暴露所有可访问的端点
include: "*"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2018-02-23 逗号分隔的字符串与List互转