美文网首页
记一次Druid连接池监控页面无法打开的乌龙及处理方案

记一次Druid连接池监控页面无法打开的乌龙及处理方案

作者: 我菠菜今天就是要为所欲为 | 来源:发表于2020-10-03 10:43 被阅读0次

    下午的时候同事反映Druid连接池无法登录,随后查看现象为:

    1. 服务无异常。
    2. 使用账号密码登录Druid后,http状态为302,跳转回登录页面。
    3. 后台无日志输出。

    初步判断是账号密码不正确,或者白名单没有设置。

    检查了账号密码,与白名单发现没有问题。

    于是查看以前的项目,发现配置和之前的几个项目相同,而其他项目并无异常。

    回忆项目之间的差别:

    1. 项目使用了Docker搭建。
    2. 项目为分布式服务。
    3. Docker容器部署在同一台VM中,为了避免端口冲突所以直接使用一个Nginx容器从内部使用Docker交换机做负载均衡。
    image.png

    逐步分析后猜测:

    1. Nginx给Druid监控做了负载均衡
    2. 负载均衡导致单个实例的Cookie失效
    3. 产生重复登录现象

    验证:
    干掉了一台服务后重新尝试登录,发现登录成功。

    分析:Druid是针对单个实例的监控,理应直接访问单个服务的监控页面,无需负载均衡。

    解决方案:由于无法将端口映射至宿主VM,所以拟采用url参数的访问方式,使用http://{ip}/{instance_id}/druid/*的方式,根据实例id将请求分发至不同的容器,达到访问指定容器的目的。

    相关文章

      网友评论

          本文标题:记一次Druid连接池监控页面无法打开的乌龙及处理方案

          本文链接:https://www.haomeiwen.com/subject/ghamuktx.html