SpringBoot 开启Druid监控统计功能

Posted 在奋斗的大道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 开启Druid监控统计功能相关的知识,希望对你有一定的参考价值。

Druid 相关配置属性:

  • 配置Druid数据源(连接池): 如同以前 c3p0、dbcp 数据源可以设置数据源连接初始化大小、最大连接数、等待时间、最小连接数 等一样,Druid 数据源同理可以进行设置;
  • 配置 Druid web 监控 filter(WebStatFilter): 这个过滤器的作用就是统计 web 应用请求中所有的数据库信息,比如 发出的 sql 语句,sql 执行的时间、请求次数、请求的 url 地址、以及seesion 监控、数据库表的访问次数 等等。
  • 配置 Druid 后台管理 Servlet(StatViewServlet): Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面;需要设置 Druid 的后台管理页面的属性,比如 登录账号、密码 等;

现在网络上大多数Druid配置都是log4j作为logger,但是Spring Boot的默认日志实现logback。所以

druid 的配置:在application.properties 配置文件

# 配置监控统计拦截的filters,去掉后监控界面sql无法统计
spring.datasource.druid.filters=stat,wall,slf4j
##### WebStatFilter配置 #######
#启用StatFilter
spring.datasource.druid.web-stat-filter.enabled=true
#添加过滤规则
spring.datasource.druid.web-stat-filter.url-pattern=/*
#排除一些不必要的url
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
#开启session统计功能
spring.datasource.druid.web-stat-filter.session-stat-enable=true
#缺省sessionStatMaxCount是1000个
spring.datasource.druid.web-stat-filter.session-stat-max-count=1000
#spring.datasource.druid.web-stat-filter.principal-session-name=
#spring.datasource.druid.web-stat-filter.principal-cookie-name=
#spring.datasource.druid.web-stat-filter.profile-enable=
##### StatViewServlet配置 #######
#启用内置的监控页面
spring.datasource.druid.stat-view-servlet.enabled=true
#内置监控页面的地址
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
#关闭 Reset All 功能
spring.datasource.druid.stat-view-servlet.reset-enable=false
#设置登录用户名
spring.datasource.druid.stat-view-servlet.login-username=admin
#设置登录密码
spring.datasource.druid.stat-view-servlet.login-password=123
#白名单(如果allow没有配置或者为空,则允许所有访问)
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
#黑名单(deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝)
spring.datasource.druid.stat-view-servlet.deny=

温馨提示:Druid支持配置多种Filter,配置信息保存在druid-xxx.jar!/META-INF/druid-filter.properties

 监控页面:

(1)启动项目后,访问: 项目/druid/login.html 来到登录页面,输入用户名密码登录

(2)数据源页面 是当前DataSource配置的基本信息,上述配置的Filter可以在里面找到,如果没有配置Filter(一些信息会无法统计,例如“SQL监控”,会无法获取JDBC相关的SQL执行信息) 

(3) SQL监控页面,统计了所有SQL语句的执行情况

(4)URL监控页面,统计了所有Controller接口的访问以及执行情况 

(5)Spring 监控页面,利用aop 对指定接口的执行时间,jdbc数进行记录 

6)SQL防火墙页面

druid提供了黑白名单的访问,可以清楚的看到sql防护情况。

(7)Session监控页面

可以看到当前的session状况,创建时间、最后活跃时间、请求次数、请求时间等详细参数。

(8)JSONAPI 页面

通过api的形式访问Druid的监控接口,api接口返回Json形式数据。
 

sql监控

配置 Druid web 监控 filter(WebStatFilter)这个过滤器,作用就是统计 web 应用请求中所有的数据库信息,比如 发出的 sql 语句,sql 执行的时间、请求次数、请求的 url 地址、以及seesion 监控、数据库表的访问次数 等等。

##### WebStatFilter配置 #######
#启用StatFilter
spring.datasource.druid.web-stat-filter.enabled=true
#添加过滤规则
spring.datasource.druid.web-stat-filter.url-pattern=/*
#排除一些不必要的url
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
#开启session统计功能
spring.datasource.druid.web-stat-filter.session-stat-enable=true
#缺省sessionStatMaxCount是1000个
spring.datasource.druid.web-stat-filter.session-stat-max-count=1000
#spring.datasource.druid.web-stat-filter.principal-session-name=
#spring.datasource.druid.web-stat-filter.principal-cookie-name=
#spring.datasource.druid.web-stat-filter.profile-enable=

慢sql记录

系统中有些SQL执行很慢,我们希望使用日志记录下来,可以开启Druid的慢SQL记录功能

spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.stat.db-type=mysql
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=2000

spring 监控

spring监控默认是没有数据,需要导入spring-aop 模块。

<!--SpringBoot 的aop 模块-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

Spring监控AOP切入点,如com.zzg.mapper.*,配置多个英文逗号分隔

 spring.datasource.druid.aop-patterns="com.zzg.mapper.*"

以上是关于SpringBoot 开启Druid监控统计功能的主要内容,如果未能解决你的问题,请参考以下文章

Springboot项目配置druid数据库连接池,并监控统计功能

SpringBoot:spring boot使用Druid和监控配置

springboot集成druid数据源并且监控

SpringBoot 监控统计:SQL监控慢SQL记录Spring监控去广告

SpringBoot 监控统计:SQL监控慢SQL记录Spring监控去广告

SpringBoot 监控统计:SQL监控慢SQL记录Spring监控去广告