配置Druid的监控页面和WebStatFilter,以通过指定的路径访问Druid的监控页面,并且采集web-jdbc关联监控的数据
创始人
2025-01-15 01:03:03
0
   /**      * 配置 druid的监控页功能      * @return      */ //    @Bean     public ServletRegistrationBean statViewServlet(){         StatViewServlet statViewServlet = new StatViewServlet();         ServletRegistrationBean registrationBean = new ServletRegistrationBean<>(statViewServlet, "/druid/*");          registrationBean.addInitParameter("loginUsername","admin");         registrationBean.addInitParameter("loginPassword","123456");           return registrationBean;     }      /**      * WebStatFilter 用于采集web-jdbc关联监控的数据。      */ //    @Bean     public FilterRegistrationBean webStatFilter(){         WebStatFilter webStatFilter = new WebStatFilter();          FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean<>(webStatFilter);         filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));         filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");          return filterRegistrationBean;     }

这段代码是用于配置Druid监控页面和WebStatFilter的功能。让我来解释一下这段代码的作用:

  1. statViewServlet 方法用于配置Druid的监控页面功能。它创建了一个 StatViewServlet 实例,并使用 ServletRegistrationBean 将其注册到Servlet容器中,指定了监控页面的访问路径为 "/druid/"。同时,设置了监控页面的登录用户名和密码为 "admin" 和 "123456"。这样做的目的是为了能够通过访问 "/druid/" 路径来查看Druid监控页面,同时需要提供登录用户名和密码进行访问。

  2. webStatFilter 方法用于配置Druid的WebStatFilter,用于采集web-jdbc关联监控的数据。它创建了一个 WebStatFilter 实例,并使用 FilterRegistrationBean 将其注册到Servlet容器中,设置了URL模式为 "/*",并且设置了一些排除项,例如排除了一些静态资源和Druid监控页面的访问路径。

综合来说,这段代码的作用是配置Druid的监控页面和WebStatFilter,使得可以通过指定的路径访问Druid的监控页面,并且采集web-jdbc关联监控的数据。


 

当使用Spring Boot 2.x版本及以上时,可以使用application.propertiesapplication.yml文件来配置Druid数据源和监控页面。以下是一个示例:

使用application.properties配置文件的示例:

 

# 数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Druid监控页面配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 spring.datasource.maxWait=60000 spring.datasource.timeBetweenEvictionRunsMillis=60000 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.filters=stat,wall,log4j spring.datasource.useGlobalDataSourceStat=true spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # Druid监控页面配置 spring.datasource.druid.statViewServlet.loginUsername=admin spring.datasource.druid.statViewServlet.loginPassword=123456 spring.datasource.druid.filter.web.stat-filter.enabled=true spring.datasource.druid.filter.web.stat-filter.url-pattern=/* spring.datasource.druid.filter.web.stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*

使用application.yml配置文件的示例:

 

spring:   datasource:     url: jdbc:mysql://localhost:3306/mydb     username: root     password: 123456     driver-class-name: com.mysql.cj.jdbc.Driver     type: com.alibaba.druid.pool.DruidDataSource     initialSize: 5     minIdle: 5     maxActive: 20     maxWait: 60000     timeBetweenEvictionRunsMillis: 60000     minEvictableIdleTimeMillis: 300000     validationQuery: SELECT 1     testWhileIdle: true     testOnBorrow: false     testOnReturn: false     poolPreparedStatements: true     maxPoolPreparedStatementPerConnectionSize: 20     filters: stat,wall,log4j     useGlobalDataSourceStat: true     connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000     druid:       statViewServlet:         loginUsername: admin         loginPassword: 123456       filter:         web:           stat-filter:             enabled: true             url-pattern: /*             exclusions: *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*

在这个示例中,我们使用了spring.datasource前缀来配置Druid数据源,以及spring.datasource.druid前缀来配置Druid的监控页面和WebStatFilter。这种配置方式更加直观和易于维护,推荐在Spring Boot 2.x及以上版本中使用。





 

 
stat-view-servlet:  # 监控页配置   enabled: true  # 是否启用监控页   login-username: admin  # 登录用户名   login-password: admin  # 登录密码   resetEnable: false  # 是否允许重置监控配置  web-stat-filter:  # Web监控   enabled: true  # 是否启用Web监控   urlPattern: /*  # URL匹配模式   exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'  # 排除项,不进行Web监控的URL  filter:   stat:  # SQL监控     slow-sql-millis: 1000  # SQL执行时间阈值,超过该阈值将被记录     logSlowSql: true  # 是否记录慢SQL     enabled: true  # 是否启用SQL监控   wall:  # 防火墙     enabled: true  # 是否启用防火墙     config:       drop-table-allow: false  # 是否允许执行删除表的操作

解释:

  • stat-view-servlet部分配置了Druid的监控页面相关参数。enabled指定是否启用监控页面,login-usernamelogin-password分别为登录用户名和密码,resetEnable表示是否允许重置监控配置。
  • web-stat-filter部分配置了Web监控相关参数。enabled指定是否启用Web监控,urlPattern指定URL匹配模式,exclusions指定不进行Web监控的URL。
  • filter部分配置了Druid的过滤器,包括SQL监控和防火墙。stat部分配置了SQL监控的参数,包括slow-sql-millis指定SQL执行时间阈值,logSlowSql指定是否记录慢SQL,enabled指定是否启用SQL监控。wall部分配置了防火墙的参数,包括enabled指定是否启用防火墙,config中的drop-table-allow指定是否允许执行删除表的操作。


 

  1. stat-view-servlet

    • enabled: 指定是否启用Druid的监控页面,允许通过浏览器访问监控数据。
    • login-usernamelogin-password: 用于设置访问监控页面时的登录用户名和密码,用于保护监控页面不被未授权的访问所获取。
    • resetEnable: 指定是否允许重置监控配置,即允许动态修改监控配置。
  2. web-stat-filter

    • enabled: 指定是否启用Druid的Web监控功能,用于监控Web请求的性能和SQL执行情况。
    • urlPattern: 指定需要进行Web监控的URL匹配模式。
    • exclusions: 指定不进行Web监控的URL,可以排除一些静态资源或特定URL,避免监控数据被干扰。
  3. filter

    • stat:用于配置Druid的SQL监控功能。

      • slow-sql-millis: 指定SQL执行时间的阈值,超过该阈值的SQL将被记录下来。
      • logSlowSql: 指定是否记录慢SQL,用于分析和优化SQL性能。
      • enabled: 指定是否启用SQL监控功能。
    • wall:用于配置Druid的防火墙功能,用于防止SQL注入等安全问题。

      • enabled: 指定是否启用防火墙功能。
      • config中的drop-table-allow: 指定是否允许执行删除表的操作,可以增强数据库的安全性。

这些配置项可以帮助开发人员监控数据源的性能、SQL执行情况和Web请求情况,同时提供了一些安全防护措施,有助于优化系统性能和保障数据安全。






这样的配置方式更加直观和易于理解,可以方便地配置Druid的监控页面和过滤器功能。

相关内容

热门资讯

第1分钟辅助!兴动互娱辅助器视... 第1分钟辅助!兴动互娱辅助器视频(辅助挂)竟然是有挂(详细辅助教你教程)1、很好的工具软件,可以解锁...
透视辅助!wpk插件,情怀游戏... 透视辅助!wpk插件,情怀游戏字牌辅助,德州教程(有挂插件)在进入情怀游戏字牌辅助辅助挂后,参与本局...
玩家必备科技“友间十三道有什么... 玩家必备科技“友间十三道有什么窍门”其实真的有挂(辅助挂)详细辅助新版2025教程1、下载好辅助软件...
4分钟辅助!广东闲来辅助软件(... 4分钟辅助!广东闲来辅助软件(辅助挂)原先存在有挂(详细辅助可靠技巧);是一款可以让一直输的玩家,快...
透视中牌率!智星德州插件怎么下... 透视中牌率!智星德州插件怎么下载,新九五有没有脚本,wpk教程(有挂揭秘)所有人都在同一条线上,像星...
推荐一款“威信茶馆透视挂”都是... 推荐一款“威信茶馆透视挂”都是是有挂(辅助挂)详细辅助黑科技教程;1、这是跨平台的黑科技,在线的操作...
第四分钟辅助!透视辅助功能插件... 第四分钟辅助!透视辅助功能插件下载(辅助挂)真是是真的有挂(详细辅助线上教程)1、透视辅助功能插件下...
透视有挂!hhpoker透视工... 透视有挂!hhpoker透视工具,随意玩有辅助吗,AI教程(有挂细节);1、随意玩有辅助吗系统规律教...
每日必看推荐“四川点点长牌系统... 每日必看推荐“四川点点长牌系统”切实有挂(辅助挂)详细辅助必赢教程1、打开软件启动之后找到中间准星的...
第八分钟辅助!凑一桌游戏关春天... 第八分钟辅助!凑一桌游戏关春天辅助器(辅助挂)固有真的有挂(详细辅助扑克教程)凑一桌游戏关春天辅助器...