Druid是什么和用StatViewServlet用於展示Druid的統計信息


Druid是一個JDBC組件,它包括三部分:

  • DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的插件體系。 
  • DruidDataSource 高效可管理的數據庫連接池。 
  • SQLParser

Druid可以做什么?

1) 可以監控數據庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對於線上分析數據庫訪問性能有幫助。

2) 替換DBCPC3P0。Druid提供了一個高效、功能強大、可擴展性好的數據庫連接池。

3) 數據庫密碼加密。直接把數據庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。

4) SQL執行日志,Druid提供了不同的LogFilter,能夠支持Common-LoggingLog4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的數據庫訪問情況。

擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。

如下是一個基於Druid內置擴展StatFilter的監控實現:

Druid 的 JavaDoc 文檔請看

http://tool.oschina.net/apidocs/apidoc?api=druid0.26

 

Druid內置提供了一個StatViewServlet用於展示Druid的統計信息。

這個StatViewServlet的用途包括:

  • 提供監控信息展示的html頁面
  • 提供監控信息的JSON API

注意:使用StatViewServlet,建議使用druid 0.2.6以上版本。

1. 配置web.xml

StatViewServlet是一個標准的javax.servlet.http.HttpServlet,需要配置在你web應用中的WEB-INF/web.xml中。

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

根據配置中的url-pattern來訪問內置監控頁面,如果是上面的配置,內置監控頁面的首頁是/druid/index.html

例如:
http://110.76.43.235:9000/druid/index.html
http://110.76.43.235:8080/mini-web/druid/index.html

2. 配置allow和deny

StatViewSerlvet展示出來的監控信息比較敏感,是系統運行的內部情況,如果你需要做訪問控制,可以配置allow和deny這兩個參數。比如:

 <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>128.242.127.1/24,128.242.128.1</param-value> </init-param> <init-param> <param-name>deny</param-name> <param-value>128.242.127.4</param-value> </init-param> </servlet>

判斷規則

  • deny優先於allow,如果在deny列表中,就算在allow列表中,也會被拒絕。
  • 如果allow沒有配置或者為空,則允許所有訪問

ip配置規則

配置的格式

 <IP> 或者 <IP>/<SUB_NET_MASK_size>

其中

 128.242.127.1/24

24表示,前面24位是子網掩碼,比對的時候,前面24位相同就匹配。

不支持IPV6

由於匹配規則不支持IPV6,配置了allow或者deny之后,會導致IPV6無法訪問。

3. 配置resetEnable

在StatViewSerlvet輸出的html頁面中,有一個功能是Reset All,執行這個操作之后,會導致所有計數器清零,重新計數。你可以通過配置參數關閉它。

 <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> <init-param> <param-name>resetEnable</param-name> <param-value>false</param-value> </init-param> </servlet>

4. 按需要配置Spring和Web的關聯監控


免責聲明!

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



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