Druid监控平台与SpringBoot的actuator、Admin

news2025/1/22 8:15:06

文章目录

  • 前言
  • Druid监控平台的基础使用
  • actuator基础使用
  • Admin可视化图形监控


前言

Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控,Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。虽然Druid监控平台原则上可以对整个SpringBoot项目进行监控,但是他最好的使用范围还是在数据访问层,使用Druid搭建监控检测平台,可以有效的帮助我们实施SQL语句的优化!
Spring Boot Actuator 是 Spring Boot 的一个子项目,它提供了生产级的应用功能,帮助你监控和管理 Spring Boot 应用。使用 Actuator,你可以获取应用运行时的信息,例如:健康状况、度量、环境信息等,Actuator 是SpringBoot自身为我们提供的监控整个项目的工具


Druid监控平台的基础使用

  1. 添加Druid相关数据源坐标
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.2.8</version>
</dependency>
  1. 在配置文件中配置Druid过滤器
    Druid的实现原理在于通过过滤器的信息拦截,从而达到统计监控的功能。
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/2204db?serverTimezone=GMT
    username: root
    password: 
    #使用Druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    #stat:做统计的过滤去
    #wall:防火墙
    filters: stat,wall
  1. 配置类中配置组件信息
    StatViewServlet:Druid为我们提供的监控页面Servlet,稍作配置就可以使用;
    WebFilter:真正做拦截统计的过滤去,监控平台实现的核心;
@Configuration
public class DruidConfig {

    //1.注入数据源
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource(){
        return new DruidDataSource();
    }

    //2.配置servlet
    @Bean
    public ServletRegistrationBean registrationBean(){
        //1.创建servlet注册类
        ServletRegistrationBean<StatViewServlet>  servletRegistrationBean =  new ServletRegistrationBean<StatViewServlet>();
        //2.创建制作页面的servlet
        StatViewServlet statViewServlet = new StatViewServlet();
        //3.绑定servlet
        servletRegistrationBean.setServlet(statViewServlet);
        servletRegistrationBean.setUrlMappings(Arrays.asList("/druid/*"));
        //4.参数绑定
        Map<String,String> maps = new HashMap<String,String>();
        maps.put(StatViewServlet.PARAM_NAME_USERNAME,"admin");
        maps.put(StatViewServlet.PARAM_NAME_PASSWORD,"123");
        maps.put(StatViewServlet.PARAM_NAME_ALLOW,"");//白名单
        maps.put(StatViewServlet.PARAM_NAME_DENY,"");//黑名单
        servletRegistrationBean.setInitParameters(maps);
        return servletRegistrationBean;
    }

    //3.配置filter
    @Bean
    public FilterRegistrationBean filterRegistrationBean(){

        FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<WebStatFilter>();
        bean.setFilter(new WebStatFilter());
        //所有请求进行监控处理
        bean.setUrlPatterns(Arrays.asList("/*"));

        Map<String, String> initPrams = new HashMap<>();
        //添加不需要忽略的格式信息
        initPrams.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*");
        bean.setInitParameters(initPrams);
        return bean;
    }

}

项目启动后访问http://localhost:8080/druid访问监控平台,根据配置类中的账号密码登录即可;

****

actuator基础使用

  1. 添加actuator依赖坐标
 <dependency>
    <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 添加相关配置信息
#info信息配置
info.name=杨树林
info.sex=#开启健康状态完整信息
management.endpoint.health.show-details=always
#将所有的监控endpoints暴露出来,能看到全局的监控,比如容器中的bean
management.endpoints.web.exposure.include=*
  1. 访问http://localhost:8080/actuator后可以通过json.cn查看json
    注意:使用时一定要先访问一个普通接口,否则不开启监控,报错404
    在这里插入图片描述
    actuator能监控到的信息很多,具体访问只需要在路径下加相应的子路径即可;
    在这里插入图片描述

Admin可视化图形监控

actuator能帮助我们对于项目的整体信息做一个监控检测,但是Json格式的信息终究难以阅读,针对整个问题,SpringBoot也为我们提供了解决方案——Spring Boot Admin。
Spring Boot Admin可以帮我们actuator监控的结果收集过来,然后用图像报表的方式呈现给我们,就相当于为actuator提供了一个可视化的图形界面,让我们不必再去面对枯燥的Json
Spring Boot Admin 有两个角色,客户端(Client)和服务端(Server);
应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册;
Spring Boot Admin Server 的UI界面将Spring Boot Admin Client的Actuator Endpoint上的一些
监控信息。

  1. admin-server:
    ① 创建 admin-server 模块
    ② 导入依赖坐标 admin-starter-server
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>

③ 在引导类上启用监控功能@EnableAdminServer
2. admin-client:
① 创建 admin-client 模块
② 导入依赖坐标 admin-starter-client

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.2.0</version>
</dependency>

③ 配置相关信息:server地址等

spring.boot.admin.client.url=http://localhost:8081

④ 启动server和client服务,访问server

访问配置的端口http://localhost:8081即可进入Admin服务器:
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/943041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

暑期实习总结(焊点数据管理软件开发):Python操作MySQL数据库、Django搭建前端网页、以及Excel中数据与MySQL数据库的互转

暑期实习总结&#xff08;焊点数据管理软件开发&#xff09;:Python操作MySQL数据库、Django搭建前端网页、以及Excel中数据与MySQL数据库的互转 ​ 这一周是我在企业实习的最后一周&#xff0c;在企业做的项目已基本完成。这篇博客的目的也是总结一些项目中的一些小问题&…

经典文献阅读之--MobileSAM(比FastSAM更快的SAM框架)

0. 简介 自从MetaAI提出的能够“分割一切”的视觉基础大模型SAM提供了很好的分割效果&#xff0c;为探索视觉大模型提供了一个新的方向。虽然SAM的效果很好&#xff0c;但由于SAM的backbone使用了ViT&#xff0c;导致推理时显存的占用较多&#xff0c;推理速度偏慢&#xff0c…

大数据学习:hive的DQL和DML操作

hive的DQL和DML操作 1. Hive的分桶表 1.1 分桶表原理 分桶是相对分区进行更细粒度的划分 Hive表或分区表可进一步的分桶 分桶将整个数据内容按照某列取hash值&#xff0c;对桶的个数取模的方式决定该条记录存放在哪个桶当中&#xff1b;具有相同hash值的数据进入到同一个文件…

4、监测数据采集物联网应用开发步骤(4)

监测数据采集物联网应用开发步骤(3) 日志或文本文件读写开发 创建全局变量配置代码com.zxy.common.Com_Para.py全局变量根据需要后续补充。 #! python3 # -*- coding: utf-8 -Created on 2023年08月28日 author: zxyong 13738196011#监测数据采集物联网应用--全局变量 impor…

文件名翻译不求人:一键批量翻译,你就是改名专家

文件名翻译不求人&#xff1a;一键批量翻译&#xff0c;你就是改名专家 在日常生活和工作中&#xff0c;我们常常需要处理各种文件&#xff0c;包括文档、图片、视频等。有时候&#xff0c;我们需要对这些文件进行重命名&#xff0c;以便更好地管理和查找。但是&#xff0c;当…

微服务之Nacos

1 版本说明 官网地址&#xff1a; https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 1.1 2021.x 分支 适配 SpringBoot 2.4, Spring Cloud 2021.x 版本及以上的Spring Cloud Alibaba 版本如下表&#xff08;最新版本用*标记&am…

Android实现监听APP启动、前台和后台

Android 实时监听APP进入前台或后台 前言 在我们开发的过程中&#xff0c;经常会遇到需要我们判断app进入后台&#xff0c;或者切换到前台的情况。比如我们想判断app切换到前台时&#xff0c;显示一个解锁界面&#xff0c;要求用户输入解锁密码才能继续进行操作&#xff1b;我…

pdf怎么转换成jpg图片?这几个方法值得一试

pdf怎么转换成jpg图片&#xff1f;PDF格式的文件在我们的日常生活和工作中十分常见&#xff0c;但有时候我们需要将PDF文件转换成图片格式&#xff0c;以便于在网页上进行展示或者存放到手机相册中。那么&#xff0c;PDF怎么转换成JPG图片呢&#xff1f;下面介绍几种方法。 第一…

Java【手撕滑动窗口】LeetCode 209. “长度最小子数组“, 图文详解思路分析 + 代码

文章目录 前言一、长度最小子数组1, 题目2, 思路分析3, 代码 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 &#x1f4d7; Java数据结构: 顺序表, 链…

达梦数据配置兼容

修改数据库实例的dm.ini配置文件COMPATIBLE_MODE的值&#xff0c;0:none, 1:SQL92, 2:Oracle, 3:MS SQL Server, 4:MySQL, 5:DM6, 6:Teradata, 7:PG COMPATIBLE_MODE 4 #Server compatible mode, 0:none, 1:SQL92, 2:Oracle, 3:MS SQL Server,…

如何设置让软件开机自启动

电脑重置&#xff0c;一些软件能正常使用&#xff0c;但是系统开机自启动选项中并没有它&#xff0c;这就很郁闷 有些极简软件没有直接设置开机自启&#xff0c;需要手动设置&#xff0c;所以我们就需要手动去设置一下它。 1、如果你在任务管理器里能找到它&#xff0c;也可以…

怎么把m4a转换成mp3?音频格式转换方法分享

M4A格式音频文件通常比MP3格式音频文件具有更高的音质&#xff0c;因为它使用了先进的编码技术。但是&#xff0c;M4A文件在某些设备上可能无法播放。将M4A文件转换为MP3格式可以增加音频文件的兼容性&#xff0c;并使其可以在更广泛的设备上播放&#xff0c;如移动设备和汽车音…

解决 git clone 时出现Failed to connect to 127.0.0.1 port 1573问题

今天去拉一个仓库代码&#xff0c;往常都是一下就拉下来了&#xff0c;今天却报错&#xff0c;报错信息如下&#xff1a; 原因&#xff1a;这种情况是因为代理在git中配置的&#xff0c;但是本身环境就有SSL协议了&#xff0c;所以取消git的https或者http代理即可 方法如下&…

文件夹无法删除?简单3招,轻松解决问题!

“我电脑里有一个文件夹占用了很大的内存&#xff0c;我想将它删除来释放一些内存&#xff0c;但是根本没法删除&#xff0c;为什么会这样呢&#xff1f;文件夹无法删除应该怎么办呢&#xff1f;” 在日常电脑使用中&#xff0c;有时候会遇到文件夹无法删除的情况&#xff0c;这…

iTween安装

1. 找到Package Manager面板&#xff0c;Packages选择MyAssets-右上角搜索iTween-找到后点DownLoad-点Import 导入 2. 导入后Assets面板结构如下图。 3. 编译器中输入iTween有提示&#xff0c;安装成功。

DataFrame.plot函数详解(六)

DataFrame.plot函数详解&#xff08;六&#xff09; 使用subplot()做子图&#xff0c;定位每一个子图&#xff0c;设置数据和图形&#xff0c;理解fig和ax(axs)的意义和作用。 1. subplot() matplotlib.pyplot.subplots(nrows1, ncols1, *, sharexFalse, shareyFalse, squee…

Spring Boot框架以及它的优势

文章目录 介绍1. **简化配置**2. **快速启动**3. **自动配置**4. **集成第三方库和框架**5. **微服务支持**6. **内嵌式数据库支持**7. **健康监控和管理**8. **可插拔的开发工具**9. **丰富的社区和生态系统**10. **良好的测试支持&#xff1a;** 核心特性**1. 依赖注入&#…

解决Python中的循环引用和内存泄漏问题

在Python编程中&#xff0c;循环引用和内存泄漏是两个常见的问题。本文将详细介绍如何识别和解决这些问题&#xff0c;并提供详细的代码示例。 1、什么是循环引用&#xff1f; 循环引用是指两个或多个对象之间相互引用的情况。这种情况可能导致内存泄漏&#xff0c;因为Python…

无涯教程-Android - 环境设置

您可以从Oracle的Java网站下载最新版本的Java JDK-Java SE下载&#xff0c;您将在下载的文件中找到有关安装JDK的说明,按照给定的说明安装和配置安装程序。最后,将PATH和JAVA_HOME环境变量设置为引用包含 java 和 javac 的目录,通常分别是java_install_dir/bin和java_install_d…