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 监控统计:SQL监控慢SQL记录Spring监控去广告