您的位置:

druid监控详解

一、druid监控页面

druid监控页面是一个监控druid集群的Web界面。访问该页面可以查看集群中的数据源、监控指标、配置等信息。在浏览器中输入druid集群的IP地址和监控端口(默认8081),即可打开druid监控页面。

<http://your.druid.path:8081>

二、druid监控页面未授权访问

为了保证druid监控页面的安全性,druid默认不允许未经授权的访问。如果客户端和druid集群不在同一机器上,或者需要对druid监控页面进行授权访问,则需要修改druid的配置文件。在druid配置文件中,找到以下代码段:

druid.extensions.security=druid-basic-security
druid.auth.authenticatorChain=["default"]

将上述代码段修改为:

druid.extensions.security=druid-basic-security
druid.auth.authenticatorChain=myCustomAuth

其中,{@code myCustomAuth}是授权验证模块的实现类名。授权验证模块可以继承{@code com.alibaba.druid.support.http.WebStatFilter}类,并重写其方法,实现授权验证。例如:

public class MyCustomAuth extends WebStatFilter {
    @Override
    public boolean isPermitted(HttpServletRequest request) {
        //授权验证逻辑
        return true; //通过验证
    }
}

三、druid监控指标

druid监控页面可以查看druid集群的监控指标,包括HTTP请求、JVM信息、SQL执行信息等。其中,SQL执行信息是druid监控的核心部分,可以帮助开发人员快速发现SQL语句的性能问题。

以下是查看SQL执行信息的步骤:

  1. 在druid监控页面中,选择数据源。
  2. 在数据源页面中,点击“SQL”选项卡。
  3. 在SQL页面中,可以查看SQL语句、执行时间、执行次数、平均执行时间等信息。

四、druid监控平台登录

如果开启了druid监控页面的授权验证,访问页面时需要进行登录验证。默认情况下,druid监控平台的用户名和密码可以在配置文件中进行设置:

druid.monitor.username=admin
druid.monitor.password=123456

如果需要将用户名和密码存储在数据库中,则需要实现自定义登录逻辑。在druid配置文件中添加如下代码段:

druid.extensions.security=myCustomAuth
druid.auth.authenticatorChain=myCustomAuth

其中,{@code myCustomAuth}是自定义登录模块的实现类名。自定义登录模块可以继承{@code com.alibaba.druid.support.http.WebStatFilter}类,并重写其{@code getUserPrincipal}方法,实现登录认证。例如:

public class MyCustomAuth extends WebStatFilter {
    @Override
    public Principal getUserPrincipal(HttpServletRequest request) {
        //登录认证逻辑
        return new Principal() {
            @Override
            public String getName() {
                return "customUser"; //返回自定义用户名
            }
        };
    }
}

五、druid监控配置

druid监控的配置信息存储在{@code application.yml}文件中。以下是常见的监控配置属性:

  • {@code spring.datasource.druid.stat-view-servlet.url-pattern}:druid监控页面的访问路径,可修改为其他路径。
  • {@code spring.datasource.druid.stat-view-servlet.allow}:允许访问druid监控页面的IP地址。支持IP地址段(用*代替),多个地址之间用逗号分隔。
  • {@code spring.datasource.druid.stat-view-servlet.deny}:禁止访问druid监控页面的IP地址。支持IP地址段(用*代替),多个地址之间用逗号分隔。
  • {@code spring.datasource.druid.stat-view-servlet.login-username}:druid监控平台的用户名。
  • {@code spring.datasource.druid.stat-view-servlet.login-password}:druid监控平台的密码。

六、druid监控默认密码

如果没有在配置文件中指定druid监控平台的用户名和密码,则可以使用默认密码进行登录。默认情况下,用户名为“admin”,密码为“admin”。如果需要修改默认密码,则可以在druid配置文件中添加如下代码段:

druid.monitor.username=admin
druid.monitor.password=admin123

七、druid监控页面打不开

如果无法访问druid监控页面,则可能存在以下原因:

  • druid监控模块未正确引入到应用程序中。
  • druid监控页面的访问地址错误。
  • druid监控模块的版本与应用程序不兼容。
  • 防火墙或其他网络安全措施阻止了访问。

解决方法分别是:

  • 将druid监控模块添加到应用程序的依赖中。
  • 检查druid监控页面的访问地址是否正确。
  • 使用与应用程序兼容的druid监控模块版本。
  • 允许访问该地址的网络策略。

八、druid监控登录验证

当访问druid监控页面时,需要进行登录验证。可以通过配置文件设置登录用户名和密码,或者实现自定义的登录验证。以下是登录验证的步骤:

  1. 在浏览器中输入druid监控页面的地址。
  2. 输入登录用户名和密码。
  3. 提交表单进行认证。
  4. 如果认证通过,则可以访问druid监控页面。

九、druid监控页面如何关闭

关闭druid监控页面的方法取决于应用程序的运行方式和druid监控模块的配置方式。

如果应用程序以嵌入式Tomcat方式运行,则可以通过停止Tomcat来关闭druid监控页面:

bin/shutdown.sh #Linux/MacOS
bin/shutdown.bat #Windows

如果应用程序以外部Tomcat方式运行,则可以在Tomcat的Web应用程序管理界面中停止druid监控应用程序。

如果druid监控模块通过应用程序的依赖方式进行引入,则可以在应用程序中停用该模块,以关闭druid监控页面。

十、druid监控不显示数据源选取

如果在druid监控页面中无法看到数据源选项卡,则需要检查配置文件中是否已经设置了要监控的数据源。

在druid配置文件中,添加以下代码段:

spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin

其中,{@code spring.datasource.druid.filter.stat.enabled=true}表示开启统计监控。如果仍未显示数据源选项卡,则需检查数据源是否已经成功连接。

以上是druid监控的详细介绍,包括页面访问、授权验证、监控指标、登录验证、配置、默认密码、页面打开失败、页面关闭和数据源选取等方面,希望能为开发人员提供帮助。