druid監控配置及sql注入防火牆配置


原文及更多文章請見個人博客:http://heartlifes.com

druid是阿里巴巴開發的為監控而生的數據庫連接池,可以非常直觀的看到當前應用的數據源、sql執行情況、sql防火牆、web應用、uri監控、spring接口調用監控等。

數據源配置:

<bean id="readAccount" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    <!-- 數據源驅動類可不寫,Druid默認會自動根據URL識別DriverClass -->
    <property name="driverClassName" value="${jdbc_read.driver}" />
    <!-- 基本屬性 url、user、password -->
    <property name="url" value="${jdbc_read.url}" />
    <property name="username" value="${jdbc_read.username}" />
    <property name="password" value="${jdbc_read.password}" />
    <!-- 配置初始化大小、最小、最大 -->
    <property name="initialSize" value="${jdbc.pool.minIdle}" />
    <property name="minIdle" value="${jdbc.pool.minIdle}" />
    <property name="maxActive" value="${jdbc.pool.maxActive}" />
    <!-- 配置獲取連接等待超時的時間 -->
    <property name="maxWait" value="30000" />
    <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 -->
    <property name="timeBetweenEvictionRunsMillis" value="30000" />
    <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
    <property name="minEvictableIdleTimeMillis" value="90000" />
    <property name="validationQuery" value="SELECT 'x'" />
    <property name="testWhileIdle" value="true" />
    <property name="testOnBorrow" value="false" />
    <property name="testOnReturn" value="false" />
</bean>

開啟web監控:

在數據源配置中,增加以下屬性

<property name="filters" value="stat" />

在web.xml中增加以下配置

<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>

<servlet>
    <servlet-name>DruidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DruidStatView</servlet-name>
    <url-pattern>/druid/*</url-pattern>
</servlet-mapping>

開啟sql防火牆:

在數據源配置中,增加以下屬性

<property name="filters" value="stat,wall"/>

開啟spring方法調用監控:

在spring配置文件中增加以下配置

<bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean>
<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">
    <property name="patterns">
        <list>
            <value>com.xxx.*</value>
            <value>com.xxx1.*</value>
        </list>
    </property>
</bean>
<aop:config>
    <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />
</aop:config>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM