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)

    SpringBoot Admin官网 

 

二、Prometheus

  1. Maven依赖

<!-- micrometer核心包,桥接prometheus -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.2.0</version>
</dependency>

  

可参考:Prometheus容器监控

posted @   如幻行云  阅读(1839)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示