阿里druid记录

0-前言

存在两个druid一个阿里版 Druid 后台和ApacheDruid 后台

国内大多是阿里版本的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 实时流摄取任务(启动、停止、重置)。