druid开启stat后sql监控没生效(druid连接池配置详解)

Neue”, “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei UI”, “Microsoft YaHei”, Arial, sans-serif;’>虽然 HikariCP 的速度稍快,但是,Druid能够提供强大的监控和扩展功能,也是阿里巴巴的开源项目。

druid开启stat后sql监控没生效(druid连接池配置详解)

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等等等,秒杀一切。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>Spring Boot 默认数据源 HikariDataSource 与 JdbcTemplate中已经介绍 Spring Boot 2.x 默认使用 Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>而Druid已经在阿里巴巴部署了超过600个应用,经过好几年生产环境大规模部署的严苛考验!

  • Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>statNeue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>:Druid内置提供一个StatFilter,用于统计监控信息。

  • Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>wallNeue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>:Druid防御SQL注入攻击的WallFilter就是通过Druid的SQL Parser分析。Druid提供的SQL Parser可以在JDBC层拦截SQL做相应处理,比如说分库分表、审计等。

  • Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>log4j2Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>:这个就是 日志记录的功能,可以把sql语句打印到log4j2 供排查问题。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>2 添加依赖

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>推荐一个 Spring Boot 基础教程及实战示例:

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>

pom.xml

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;color: rgb(53, 179, 120);font-weight: bold;’>3. 配置相关属性

配置Druid数据源(连接池): 如同以前 c3p0、dbcp 数据源可以设置数据源连接初始化大小、最大连接数、等待时间、最小连接数 等一样,Druid 数据源同理可以进行设置;

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

配置 Druid 后台管理 Servlet(StatViewServlet): Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面;需要设置 Druid 的后台管理页面的属性,比如 登录账号、密码 等;

注意:

Druid Spring Boot Starter 配置属性的名称完全遵照 Druid,可以通过 Spring Boot 配置文件来配置Druid数据库连接池和监控,如果没有配置则使用默认值。

application.yml

上述配置文件的参数可以在Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’> Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatPropertiesNeue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’> 和 Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>org.springframework.boot.autoconfigure.jdbc.DataSourcePropertiesNeue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>中找到;

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;color: rgb(53, 179, 120);font-weight: bold;’>3.1 如何配置 Filter

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>可以通过 Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>spring.datasource.druid.filters=stat,wall,log4j ...Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>的方式来启用相应的内置Filter,不过这些Filter都是默认配置。如果默认配置不能满足需求

目前为以下 Filter 提供了配置支持,根据(spring.datasource.druid.filter.*)进行配置。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>不想使用内置的 Filters,要想使自定义 Filter 配置生效需要将对应 Filter 的 enabled 设置为 true ,Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>Druid Spring Boot StarterNeue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’> 默认禁用 StatFilter,可以将其 enabled 设置为 true 来启用它。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;font-weight: bold;color: rgb(68, 67, 67);’>4 监控页面

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(1)启动项目后,访问Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>/druid/login.htmlNeue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>来到登录页面,输入用户名密码登录

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(2)数据源页面 是当前DataSource配置的基本信息,上述配置的Filter可以在里面找到,如果没有配置Filter(一些信息会无法统计,例如“SQL监控”,会无法获取JDBC相关的SQL执行信息)

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(3) SQL监控页面,统计了所有SQL语句的执行情况

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(4)URL监控页面,统计了所有Controller接口的访问以及执行情况

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(5)Spring 监控页面,利用aop 对指定接口的执行时间,jdbc数进行记录

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(6)SQL防火墙页面

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>druid提供了黑白名单的访问,可以清楚的看到sql防护情况。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(7)Session监控页面

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>可以看到当前的session状况,创建时间、最后活跃时间、请求次数、请求时间等详细参数。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(8)JSONAPI 页面

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>通过api的形式访问Druid的监控接口,api接口返回Json形式数据。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;font-weight: bold;color: rgb(68, 67, 67);’>5 sql监控

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>配置 Druid web 监控 filter(WebStatFilter)这个过滤器,作用就是统计 web 应用请求中所有的数据库信息,比如 发出的 sql 语句,sql 执行的时间、请求次数、请求的 url 地址、以及seesion 监控、数据库表的访问次数 等等。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;font-weight: bold;color: rgb(68, 67, 67);’>6. 慢sql记录Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>有时候,系统中有些SQL执行很慢,我们希望使用日志记录下来,可以开启Druid的慢SQL记录功能

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>启动后,如果遇到执行慢的SQL,便会输出到日志中。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;font-weight: bold;color: rgb(68, 67, 67);’>7. spring 监控

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>访问之后spring监控默认是没有数据的;这需要导入SprngBoot的AOP的Starter

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>需要在 application.yml 配置:

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>Spring监控AOP切入点,如Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;'>com.springboot.template.dao.*Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>,配置多个英文逗号分隔

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;color: rgb(68, 67, 67);’>8. 去 Ad(广告)

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(1) 直接手动注释这段代码

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>(2) 使用过滤器过滤

Neue”, “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei UI”, “Microsoft YaHei”, Arial, sans-serif;’>虽然 HikariCP 的速度稍快,但是,Druid能够提供强大的监控和扩展功能,也是阿里巴巴的开源项目。

Neue”, Helvetica, “Hiragino Sans GB”, “Microsoft YaHei”, Arial, sans-serif;font-size: 14px;’>Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池

<

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。