Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql连接池druid监控配置

mysql连接池druid监控配置小结

作者:abcnull

Druid连接池提供慢SQL、连接泄漏等监控功能,适用于Java+MySQL项目,本文就来详细的介绍一下mysql连接池druid监控配置,感兴趣的可以了解一下

前置

连接池有很多类型,比如 c3p0,比如 hikariCP,比如 druid。c3p0 一些历史项目可能用的比较多,hikariCP 需要高性能的项目比较多,druid 性能也很好,而且还提供连接池的监控面板

现在你使用 java,使用 mysql,配置好了基本的 mysql 数据库的驱动配置,配置好了 druid 连接池基本内容

你想要监控 mysql 连接池的慢 sql 情况,连接泄漏等详细情况,可以考虑使用 druid 提供的监控能力

模块功能描述
数据源查看数据库连接池的状态(活跃连接数、空闲连接数、连接等待时间等)。
SQL 监控显示 SQL 执行次数、总耗时、慢查询(默认慢查询阈值为 1000ms)。
Session 统计监控用户的会话信息(如最大并发连接数、会话超时时间等)。
Web 统计查看 HTTP 请求的统计信息(如请求次数、平均响应时间、失败次数等)。
系统信息显示 JVM 内存、线程、GC 状态等系统级监控数据。

依赖

如果你配置了 druid 的一些基本连接池的内容,这里不赘述,那么你肯定引入了 druid 的依赖了

启用配置

Springboot 配置
如果你是 Springboot 项目,在 application.yml 中配置即可

其中 stat-view-servlet 表示承接 /druid/ 请求的 servlet,web-stat-filter 表示滤过哪些请求以及排查哪些请求

spring:
  datasource:
    druid:
      # 启用监控页面
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username: admin       # 登录用户名
        login-password: admin123    # 登录密码
        reset-enable: false         # 是否允许重置数据(生产环境建议关闭)
      web-stat-filter:
        enabled: true
        url-pattern: /*             # 监控所有请求
        exclusions: "*.js,*.css,/druid/*"  # 排除静态资源

只用了 mybatis 没用 spring
如果你不是 springboot 项目,你只用了 mybatis:
mybatis-config.xml 中配置好 druid 连接池的基本连接信息后,多配置上:

<property name="filters" value="stat,wall" /> <!-- 启用监控和防御SQL注入 -->

然后你的项目还是老的 WEB-INF 项目,其中有 web.xml 文件,那么其中要配置 servlet 和 filter

<!-- Druid 监控 Servlet -->
    <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
        <init-param>
            <param-name>loginUsername</param-name>
            <param-value>admin</param-value> <!-- 登录用户名 -->
        </init-param>
        <init-param>
            <param-name>loginPassword</param-name>
            <param-value>admin123</param-value> <!-- 登录密码 -->
        </init-param>
        <init-param> <!-- 允许访问的IP(可选) -->
            <param-name>allow</param-name>
            <param-value>127.0.0.1</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

    <!-- Druid Web 监控 Filter -->
    <filter>
        <filter-name>DruidWebStatFilter</filter-name>
        <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
        <init-param>
            <param-name>exclusions</param-name>
            <param-value>*.js,*.css,/druid/*</param-value> <!-- 排除静态资源 -->
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>DruidWebStatFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

然后如果项目使用 Servlet 3.0+ 并支持注解,可以通过 Java 配置类注册来代替上方的在 web.xml 中的配置:你可以写一个 DruidWebConfig 类来继承 ServletContextListener,再重写其中 contextInitialized 方法,其中你可以注册 StatViewServlet 和 WebStatFilter,然后再 web.xml 配置一个监听即可

<listener>
    <listener-class>com.test.config.DruidWebConfig</listener-class>
</listener>

访问监控

你本地启动项目的话,你可以浏览器访问:

http://localhost:8080/druid

如果你设置了 your-app-context(Web 应用部署到服务器上的应用上下文路径),则你需要访问

http://localhost:8080/your-app-context/druid

一些问题

页面 404:一般是 stat-view-servlet 或者 web-stat-filter 没配置对,一些常见的比如其他 filter 把这个请求拦截了

到此这篇关于mysql连接池druid监控配置小结的文章就介绍到这了,更多相关mysql连接池druid监控配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文