druid监控设置以及常见问题解决方案
来源:互联网 发布:php没有大数据框架吗 编辑:程序博客网 时间:2024/06/05 04:28
配置监控
1.打开监控统计
<!-- 配置数据源 使用的是Druid数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 基本属性 url、user、password -->
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="10" />
<property name="minIdle" value="10" />
<property name="maxActive" value="20" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x' FROM DUAL" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
<!-- 配置监控统计拦截的filters -->
<property name="filters" value="stat,wall" />
</bean>
2.展示监控统计
在web.xml里配置
<!-- 展示Druid的统计信息,统计数据源和sql -->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<!-- 白名单 -->
<param-name>allow</param-name>
<param-value>192.168.1.120/24,111.206.116.68,127.0.0.1</param-value>
</init-param>
<init-param>
<!-- 用户名 -->
<param-name>loginUsername</param-name>
<param-value>account</param-value>
</init-param>
<init-param>
<!-- 密码 -->
<param-name>loginPassword</param-name>
<param-value>tyts</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- 如果需要监控uri,设置Web关联监控配置 -->
<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,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html
注意点
1.访问权限(这里有两层限制)
(1)限定指定的ip可以访问。
如果是限定指定ip,可以直接写完整的ip。例如111.206.116.68。
如果是限定指定的子网里的所有ip都可以访问,那就是ip/子网掩码数。例如 192.168.1.120/24 就相当于192.168.1.*
(2)需要通过用户名和密码才可以进入展示页面(去掉web.xml中的初始化配置用户名和密码则可以不用登陆直接访问)
2.统计的filters
druid提供了一些内置filter实例。这里用的是stat和wall。一个是用于监控,一个是用于防火墙
如果想使用sql防火墙,必须加上wall
3.weburi-detail.html详情页里不能显示带.json后缀的uri详情,因为在druid的代码进行了处理
if (url.startsWith("/weburi-") && url.indexOf(".json") > 0) {
String uri = StringUtils.subString(url, "weburi-", ".json");
return returnJSONResult(RESULT_CODE_SUCCESS, getWebURIStatData(uri));
}
可能遇到的问题以及解决方案
1、如果使用的是druid-1.0.12.jar,可能会遇到sql监控没有数据的问题。
解决:换成druid-1.0.11.jar就可以解决,本人没有试其他版本,另外servlet和其他servlet的前后位置也会影响。
2、Spring监控没有数据
解决:
在spring.xml文件中配置以下代码(不要在spring-mvc.xml中配置)
<!-- druid spring monitor setting -->
<bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor" /><bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype"><property name="patterns">
<list>
<value>cn.XXX.XXX.service.*</value>
<value>cn.XXX.XXX.dao.*</value>
</list>
</property>
</bean>
<aop:config proxy-target-class="true">
<aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />
</aop:config>
- druid监控设置以及常见问题解决方案
- druid监控设置以及常见问题解决方案
- spring boot整合druid以及druid监控
- 数据库中间件druid更换c3p0以及druid数据源监控配置
- 监控工程安装常见问题解决方案
- Girrit常见问题以及解决方案
- 常见问题以及解决方案
- druid之监控设置及问题小记
- druid数据开放监控设置方式
- Druid常见问题
- 水晶报表常见问题以及解决方案
- Hadoop YARN常见问题以及解决方案
- WebView常见问题汇总以及解决方案
- Hadoop YARN常见问题以及解决方案
- linux 软件常见问题以及解决方案
- Hadoop YARN常见问题以及解决方案
- Hadoop YARN常见问题以及解决方案
- Spring Boot 常见问题以及解决方案
- 对于代理performSelector调用和直接调用区别
- XSS攻击及防御
- Android studio引用so文件
- wifi 获取ssid
- shell--100以内的数字累加
- druid监控设置以及常见问题解决方案
- Java 8:CompletableFuture终极指南
- [QNX]telnetd: All network ports in use.
- 解决eclipse中项目红叉的方法:[1]Jre系统库
- 自定义Dialog接口回调参数
- 关于修改注册表之x64和x86错误
- ubuntu(2016.12.12-2016.12.18)
- 位,字节和字的区别
- 语句方式创建数据库