Druid监控平台与SpringBoot的actuator、Admin

文章目录

  • 前言
  • Druid监控平台的基础使用
  • actuator基础使用
  • Admin可视化图形监控


前言

Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控,Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。虽然Druid监控平台原则上可以对整个SpringBoot项目进行监控,但是他最好的使用范围还是在数据访问层,使用Druid搭建监控检测平台,可以有效的帮助我们实施SQL语句的优化!
Spring Boot Actuator 是 Spring Boot 的一个子项目,它提供了生产级的应用功能,帮助你监控和管理 Spring Boot 应用。使用 Actuator,你可以获取应用运行时的信息,例如:健康状况、度量、环境信息等,Actuator 是SpringBoot自身为我们提供的监控整个项目的工具


Druid监控平台的基础使用

  1. 添加Druid相关数据源坐标
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.2.8</version>
</dependency>
  1. 在配置文件中配置Druid过滤器
    Druid的实现原理在于通过过滤器的信息拦截,从而达到统计监控的功能。
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/2204db?serverTimezone=GMT
    username: root
    password: 
    #使用Druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    #stat:做统计的过滤去
    #wall:防火墙
    filters: stat,wall
  1. 配置类中配置组件信息
    StatViewServlet:Druid为我们提供的监控页面Servlet,稍作配置就可以使用;
    WebFilter:真正做拦截统计的过滤去,监控平台实现的核心;
@Configuration
public class DruidConfig {

    //1.注入数据源
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource(){
        return new DruidDataSource();
    }

    //2.配置servlet
    @Bean
    public ServletRegistrationBean registrationBean(){
        //1.创建servlet注册类
        ServletRegistrationBean<StatViewServlet>  servletRegistrationBean =  new ServletRegistrationBean<StatViewServlet>();
        //2.创建制作页面的servlet
        StatViewServlet statViewServlet = new StatViewServlet();
        //3.绑定servlet
        servletRegistrationBean.setServlet(statViewServlet);
        servletRegistrationBean.setUrlMappings(Arrays.asList("/druid/*"));
        //4.参数绑定
        Map<String,String> maps = new HashMap<String,String>();
        maps.put(StatViewServlet.PARAM_NAME_USERNAME,"admin");
        maps.put(StatViewServlet.PARAM_NAME_PASSWORD,"123");
        maps.put(StatViewServlet.PARAM_NAME_ALLOW,"");//白名单
        maps.put(StatViewServlet.PARAM_NAME_DENY,"");//黑名单
        servletRegistrationBean.setInitParameters(maps);
        return servletRegistrationBean;
    }

    //3.配置filter
    @Bean
    public FilterRegistrationBean filterRegistrationBean(){

        FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<WebStatFilter>();
        bean.setFilter(new WebStatFilter());
        //所有请求进行监控处理
        bean.setUrlPatterns(Arrays.asList("/*"));

        Map<String, String> initPrams = new HashMap<>();
        //添加不需要忽略的格式信息
        initPrams.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*");
        bean.setInitParameters(initPrams);
        return bean;
    }

}

项目启动后访问http://localhost:8080/druid访问监控平台,根据配置类中的账号密码登录即可;

Druid监控平台与SpringBoot的actuator、Admin_第1张图片

actuator基础使用

  1. 添加actuator依赖坐标
 <dependency>
    <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 添加相关配置信息
#info信息配置
info.name=杨树林
info.sex=#开启健康状态完整信息
management.endpoint.health.show-details=always
#将所有的监控endpoints暴露出来,能看到全局的监控,比如容器中的bean
management.endpoints.web.exposure.include=*
  1. 访问http://localhost:8080/actuator后可以通过json.cn查看json
    注意:使用时一定要先访问一个普通接口,否则不开启监控,报错404
    Druid监控平台与SpringBoot的actuator、Admin_第2张图片
    actuator能监控到的信息很多,具体访问只需要在路径下加相应的子路径即可;
    Druid监控平台与SpringBoot的actuator、Admin_第3张图片

Admin可视化图形监控

actuator能帮助我们对于项目的整体信息做一个监控检测,但是Json格式的信息终究难以阅读,针对整个问题,SpringBoot也为我们提供了解决方案——Spring Boot Admin。
Spring Boot Admin可以帮我们actuator监控的结果收集过来,然后用图像报表的方式呈现给我们,就相当于为actuator提供了一个可视化的图形界面,让我们不必再去面对枯燥的Json
Spring Boot Admin 有两个角色,客户端(Client)和服务端(Server);
应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册;
Spring Boot Admin Server 的UI界面将Spring Boot Admin Client的Actuator Endpoint上的一些
监控信息。

  1. admin-server:
    ① 创建 admin-server 模块
    ② 导入依赖坐标 admin-starter-server
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>

③ 在引导类上启用监控功能@EnableAdminServer
2. admin-client:
① 创建 admin-client 模块
② 导入依赖坐标 admin-starter-client

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.2.0</version>
</dependency>

③ 配置相关信息:server地址等

spring.boot.admin.client.url=http://localhost:8081

④ 启动server和client服务,访问server

访问配置的端口http://localhost:8081即可进入Admin服务器:
Druid监控平台与SpringBoot的actuator、Admin_第4张图片


你可能感兴趣的:(spring,boot,后端,java)