阿里druid记录
0-前言
存在两个druid一个阿里版 Druid 后台和Apache 版 Druid 后台
国内大多是阿里版本的druid一个内置在 JAR 包里的 Servlet(通常叫 StatViewServlet)
两者差别是:
阿里版 Druid (数据库连接池)、Apache 版 Druid (分析型数据库)
1-阿里版 Druid
①主要查询接口
| 接口地址 (相对于 /druid/) | 功能描述 | 核心字段说明 |
|---|---|---|
basic.json |
总览信息 | Druid 版本、JVM 版本、操作系统、连接池类型。 |
datasource.json |
数据源统计 | 包含 ActiveCount(活跃连接)、PoolingCount(池内连接)、WaitThreadCount(等待线程)等。 |
sql.json |
SQL 执行详情 | 包含 SQL 语句、执行次数、最慢执行时间、读取行数、错误次数等。 |
wall.json |
防御墙统计 | 记录 SQL 注入防御情况,显示检查次数、被拦截次数等。 |
weburi.json |
URI 请求监控 | 监控每一个 Web 请求(URL)的次数、耗时、并发量。 |
websession.json |
Session 监控 | 监控用户会话状态。 |
spring.json |
Spring 方法监控 | 统计标注了监控注解的 Spring Bean 方法调用次数和耗时。 |
webapp.json |
Web 应用统计 | 整个 Web 应用层面的请求、Session 概览。 |
②“改”与“删”类接口
| 接口地址 | 动作 | 功能说明 |
|---|---|---|
reset-all.json |
重置 | 最常用。清空当前所有监控项(SQL、URI、Session 等)的统计值。 |
log-and-reset-all.json |
日志+重置 | 先将当前的监控快照记录到日志文件,然后执行重置。 |
activeConnectionStackTrace.json |
实时诊断 | 打印当前所有活跃连接的 线程堆栈。这常用于找出是谁占着连接不释放(寻找连接泄漏)。 |
想自己加个接口,可以去源码里的这个包下看: com.alibaba.druid.support.http.StatViewServlet 及其相关的 StatService 实现
注意:遇到sql的话
如果遇到了sql注入且存在druid组件则:Druid WallFilter 绕过浅析
2-Apache 版 Druid
| 类别 | 接口路径 | 功能说明 |
|---|---|---|
| SQL查询 | POST /druid/v2/sql |
最常用接口。发送 SQL 语句进行实时数据分析查询。 |
| 原生查询 | POST /druid/v2 |
发送 Druid 特有的 JSON 格式查询(Native Query),适合复杂聚合。 |
| 任务管理 | POST /druid/indexer/v1/task |
提交数据导入任务(如从 S3 或本地文件导入数据)。 |
| 摄取控制 | POST /druid/indexer/v1/supervisor |
管理 Kafka/Kinesis 实时流摄取任务(启动、停止、重置)。 |