Druid监控配置

Druid监控配置

一. Druid监控组件简介

Druid内置了强大的监控功能,能够详细统计SQL的执行性能,通过执行次数、执行时间、事务等多个维度来展现,对于线上分析数据库性能及某条SQL的执行效率有很大的帮助。另外,Druid还对SQL防火墙、URI、SESSION等进行监控,在监控信息页面可以很详细地看到这些监控信息。

关于Druid监控组件的更多信息可查看官方文档:Druid官方wiki

配置Druid监控组件主要分为两部分:

  1. 配置一个用于显示监控信息界面和提供监控信息的JSON API的servlet。

  2. 配置一个用于采集web-jdbc关联监控的数据的filter。

配置方式有两种,分别是以代码的方式配置和以配置文件的方式配置。

二. 代码配置Druid监控

开启stat和wall,如果没有该项配置,监控页面就没有sql监控和sql防火墙的信息。线程池的其它配置项这里省略。


koca:

 jdbc:

    defaultDataSourceId: default

    dataSources:

      - id: default

        pool:

          # stat用于监控数据统计,wall用于sql防火墙

          filters: stat,wall

          # mergeSql:是否合并sql,slowSqlMillis:慢sql记录

          connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=3000

注册相关servet和filter


@Configuration

public class DruidConfiguration {

     /**

     * 注册一个:ServletRegistrationBean

     * @return 一个用于显示监控信息界面和提供监控信息的JSON API的servlet

     */

     @Bean

     public ServletRegistrationBean DruidStatViewServlet() {

        //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.

        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");

        //白名单

        servletRegistrationBean.addInitParameter("allow","127.0.0.1");

        //IP黑名单 (存在共同时,deny优先于allow)

        servletRegistrationBean.addInitParameter("deny","192.168.0.114");

        //登录查看信息的账号密码.

        servletRegistrationBean.addInitParameter("loginUsername","admin");

        servletRegistrationBean.addInitParameter("loginPassword","123456");

        //是否能够重置数据.

        servletRegistrationBean.addInitParameter("resetEnable","false");

        return servletRegistrationBean;

        }

    /**

     * 注册一个:filterRegistrationBean

     * @return 一个用于采集web-jdbc关联监控的数据的filter

     */

    @Bean

    public FilterRegistrationBean druidStatFilter(){

        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

        //添加过滤规则.

        filterRegistrationBean.addUrlPatterns("/*");

        //忽略过滤格式

        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

        return filterRegistrationBean;

    }

}

三. 配置文件配置Druid监控

添加依赖


<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>druid-spring-boot-starter</artifactId>

    <version>1.2.5</version>

</dependency>

和代码配置一样需要开启stat和wall。线程池的其它配置项这里省略。

koca:
 jdbc:
    defaultDataSourceId: default
    dataSources:
      - id: default
        pool:
          # stat用于监控数据统计,wall用于sql防火墙
          filters: stat,wall
          # mergeSql:是否合并sql,slowSqlMillis:慢sql记录
          connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=3000

配置StatViewServlet和WebStatFilter

spring:
  datasource:
    druid:
     # 配置StatViewServlet
     stat-view-servlet:
       # 如果缺省或者为false 则不会进行StatViewServlet注册
       enabled: true
       # 登录用户名
       login-username: admin
       # 登录密码
       login-password: 123456
       # 访问路径
       url-pattern: /druid/*
       # 是否允许重置
       reset-enable: false
       # ip白名单 默认127.0.0.1
       allow: 
       # ip黑名单 默认为空;当和白名单重复时,黑名单优先级高
       deny:

       # 配置WebStatFilter 
     web-stat-filter:
       # 如果缺省或者为false 则不会进行WebStatFiltert注册
       enabled: true
       # 过滤规则
       url-pattern: /*
       # 忽略过滤格式
       exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'

四. 访问监控页面

配置权限验证的ignored-url

koca:
  security:
    auth:
      ignored-url:
       - /druid/**

在浏览器中访问http://localhost:8083/studio/druid/login.html 输入登录账户和密码进行登录。

/studio是项目的context-path,根据实际项目进行修改,/druid是配置StatViewServlet时设置的url-pattern

五. 将监控页面集成到门户页面

如果需要在门户页面就能浏览监控页面,可新增一个菜单,菜单路径设置为监控页面首页index.html的访问路径,菜单类型设置为html

点击新增的菜单。

1 个赞