SpringBoot 整合SpringBoot Admin/Prometheus/Grafana分布预警监控
一、SpringBoot Admin
Server端:
1. Maven依赖
<!-- SpringBoot Admin监控 --> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.3.1</version> </dependency> <!-- Spring Security身份验证 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2. 注解
A. @EnableAdminServer:开启Admin监控功能,作用在启动类上;
3. application.yml配置文件
server:
port: 8070
spring: application: name: web-admin security: user: name: admin password: admin@123456 boot: admin: ui: title: web-admin
4. 登录模块(Spring Security)
package com.ruhuanxingyun.web.admin.config; import de.codecentric.boot.admin.server.config.AdminServerProperties; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; import org.springframework.security.web.csrf.CookieCsrfTokenRepository; /** * @description: Admin监控 配置 * @author: ruphie * @date: Create in 2020/12/26 13:22 * @company: ruhuanxingyun */ @Configuration public class AdminConfig extends WebSecurityConfigurerAdapter { private final String adminContextPath; public AdminConfig(AdminServerProperties adminServerProperties) { this.adminContextPath = adminServerProperties.getContextPath(); } @Override protected void configure(HttpSecurity http) throws Exception { SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setTargetUrlParameter("redirectTo"); successHandler.setDefaultTargetUrl(adminContextPath + "/"); http.authorizeRequests() .antMatchers(adminContextPath + "/assets/**").permitAll() .antMatchers(adminContextPath + "/login").permitAll() .anyRequest().authenticated() .and() .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and() .logout().logoutUrl(adminContextPath + "/logout").and() .httpBasic().and() .csrf() .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .ignoringAntMatchers( adminContextPath + "/instances", adminContextPath + "/actuator/**" ); } }
5. 邮箱报警
Client端:
1. Maven依赖
<!-- SpringBoot Admin监控 --> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.3.1</version> </dependency>
2. application.yml配置文件
server:
port: 8071
spring:
application:
name: admin-client boot: admin: client: enabled: true url: http://127.0.0.1:8070 instance: metadata: user.name: admin user.password: admin@123456 username: admin password: admin@123456 management: endpoints: web: base-path: /management exposure: include: "*" exclude: shutdown endpoint: health: show-details: ALWAYS logfile: enabled: true logging: file: name: path:
界面展示:
可参考:分布式 预警监控(SpringBootAdmin/Prometheus/Grafana)
二、Prometheus
1. Maven依赖
<!-- micrometer核心包,桥接prometheus --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.2.0</version> </dependency>
可参考:Prometheus容器监控
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗