Spring Boot Admin的使用详解(Actuator监控接口)

第一部分 Spring Boot Admin 简介

  • Spring Boot Admin用来管理和监控Spring Boot应用程序。
  • 应用程序向我们的Spring Boot Admin Client注册(通过HTTP)或使用SpringCloud®(例如Eureka,Consul)发现。
  • UI是Spring Boot Actuator端点上的Vue.js应用程序。

Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者使用 Eureka注册到admin server中进行展示,Spring Boot Admin UI部分使用AngularJs将数据展示在前端。

Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。

admin-server 服务端(admin-server)

服务端:是指Spring Boot Admin这个应用(通常就是指监控服务器),一个服务端可以监控多个客户端。

客户端

客户端是:被服务端监控的对象(通常就是指你的业务系统)。

第二部分 快速入门

本部分将为您展示SpringBoot ADMIN 的简单应用。

服务端配置(admin-server)

步骤一:搭建springboot maven项目

搭建一个基于SpringBoot的项目。注意您所使用的SpringBoot版本。

步骤二:配置pom.xml文件

     <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>2.3.1</version>
      </dependency>

步骤三:application.properties中配置端口号

此端口号指的是你所搭建的服务器所使用的的版本号,如果服务端和客户端在同一台机器上,注意端口号的设置,以防端口出现冲突的情况。

server.port=8099 

步骤四:主启动类上加注解@EnableAdminServer

@SpringBootApplication
@EnableAdminServer
public class
DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

步骤五:启动项目

访问:http://127.0.0.1:8099/applications。监控首页显示如下

客户端配置(admin-client)

步骤一:在客户端项目(也就是需要监控的springboot项目)中添加jar包

加入Security安全框架的jar包,加入jar需注意版本的问题。有些springboot版本,可能会自动引入失>败。如图:

出现这种情况需指定security的版本号,找个适合你springboot版本的security。

具体如下:

     <!--security-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <version>2.4.1</version>
        </dependency>

引入 spring-boot-admin-starter-client

  <!--admin server 监控-->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.4.1</version>
        </dependency>

步骤二:在启动配置文件中配置如下 application.properties

#开放端点用于SpringBoot Admin的监控
management.endpoints.web.exposure.include=*
# 给client应用取个名字
spring.boot.admin.client.instance.name=zxfdemo
#这里配置admin server 的地址
spring.boot.admin.client.url=http://localhost:8099
#这里配置admin client 的地址(客户端应用程序)
spring.boot.admin.client.instance.service-url=http://localhost:8080

步骤四:测试效果

spring security 安全加固

SpringBoot Admin的管理后台如果没密码就能访问,那实在太不安全了,所以需要引入一个安全加固的jar包。spring-boot-starter-security

Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。提供了完善的认证机制和方法级的授权功能。是一款非常优秀的权限管理框架。它的核心是一组过滤器链,不同的功能经由不同的过滤器。此处就是想通过一个小案例将Spring Security整合到SpringBoot中去。要实现的功能就是在认证服务器上登录,然后获取Token,再访问资源服务器中的资源。

服务端配置(admin-server)

服务端配置修改

1. 服务端添加Spring Security 相关依赖

添加Spring Security 相关依赖

 <!-- security-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <version>2.4.1</version>
        </dependency>

2. 服务端设置账号密码

spring.security.user.name=zxf
spring.security.user.password=123456

3.添加一个Spring Security 配置类

package com.example.springadmintest.config;

import de.codecentric.boot.admin.server.config.AdminServerProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;

/**
 * 配置security验证页面指向SpringBootAdmin提供的UI界面
 *
 *
 */
@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {

    private final String contextPath;

    public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
        this.contextPath = adminServerProperties.getContextPath();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // 跨域设置,SpringBootAdmin客户端通过instances注册,见InstancesController
        http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .ignoringAntMatchers(contextPath + "/instances");

        http.authorizeRequests().antMatchers(contextPath + "/assets/**").permitAll(); // 静态资源
        http.authorizeRequests().anyRequest().authenticated(); // 所有请求必须通过认证

        // 整合spring-boot-admin-server-ui
        http.formLogin().loginPage("/login").permitAll();
        http.logout().logoutUrl("/logout").logoutSuccessUrl("/login");

        // 启用basic认证,SpringBootAdmin客户端使用的是basic认证
        http.httpBasic();
    }
}

4.登录页面展示

再次访问http://localhost:8099/ ,发现需要登录

客户端配置(admin-client)

客户端配置

1.客户端添加Spring Security 相关依赖

 <!-- security-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <version>2.4.1</version>
        </dependency>

2. 客户端设置账号密码

# 配置 admin-client 地址
spring.boot.admin.client.instance.service-url=http://localhost:8080
#配置 admin-server地址
spring.boot.admin.client.url=http://localhost:8099
# 配置 admin-server的账号
spring.boot.admin.client.username=zxf
# 配置 admin-server的密码
spring.boot.admin.client.password=123456
#配置 admin-server的密码
spring.security.user.name=zxf
#配置 admin-client的密码
spring.security.user.password=123456
#若在核心配置文件中未添加 management.security.enabled=false 配置,
# 将会导致用户在访问部分监控地址时访问受限,报401未授权错误。
management.security.enabled=false
#监控中心配置, 允许监控所有接口
management.endpoints.web.exposure.include=*

3. 客户端添加Spring Security 配置类

package com.cachedemo.controller;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().permitAll()
                .and().csrf().disable();
    }
}

所有配置完成测试结果

到此这篇关于Spring Boot Admin的使用详解(Actuator监控接口)的文章就介绍到这了,更多相关Spring Boot Admin的使用 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot Admin2.0 集成Arthas的实现步骤

    项目最初使用 Arthas 主要有两个目的: 通过 arthas 解决实现测试环境.性能测试环境以及生产环境性能问题分析工具的问题. 通过使用 jad.mc.redefine 功能组合实现生产环境部分节点代码热更新的能力. 技术选型相关 因为公司还未能建立起较为统一的生产微服务配置以及状态管理的能力,各自系统的研发运维较为独立.现在项目使用了 Spring Cloud 以及 Eureka 的框架结构,和 SBA 的基础支撑能力较为匹配,同时,SBA 已经可以提供服务感知,日志级别配置管理,以及基

  • SpringBoot Admin 使用指南(推荐)

    Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序. 这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现. UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序. 快速开始 首先在 IDEA 创建一个 SpringBoot 项目,把它当作 server 端,工程如下: 然后在 pom.xml 中引入依赖: <

  • 如何用Springboot Admin监控你的微服务应用

    1 简介 目前,微服务大行其道,各大小公司争相学习模仿,把单体应用拆得七零八落.服务多了,运行的实例多了,给运维人员的压力就更大了.如果有十几个应用,单单做Health Check就已经够费时间的了.聪明的Springboot提供了Actuator接口,可以非常好获得应用的内部信息,然而针对数量庞大的服务却无能为力. 得益于开源社区的力量,我们有了Springboot Admin.它能对注册于服务发现的所有应用监控起来,功能包括健康检查.JVM内存.INFO信息.获得线程栈和堆栈信息.提醒(邮件

  • SpringBoot Admin用法实例讲解

    说明 Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序. 这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现. UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序. 创建服务 创建spring boot 项目,引入依赖 <dependency> <groupId>de.codecentric

  • Admin - SpringBoot + Maven 多启动环境配置实例详解

    一:父级pom.xml文件 resources目录下新建指定文件夹,存放Spring配置文件 <profiles> <profile> <id>dev</id> <properties> <profiles.active>dev</profiles.active> </properties> <activation> <activeByDefault>true</activeByD

  • 用SpringBoot Admin监控SpringBoot程序

    项目源码地址:https://github.com/laolunsi/spring-boot-examples/tree/master/02-spring-boot-admin-demo 一.SpringBoot Admin概要 SpringBoot Admin用于监控SpringBoot程序,一个SpringBoot程序通过向SpringBoot Admin Server注册或使用@DiscoveryClient等微服务方式,可以将自身注册到SpringBoot Admin Server. S

  • 如何基于springboot-admin实现后台监控

    一 前言 知识追寻者springboot系列文中又添加一文,springboot后台应用监控,希望广大读者支持,多多关注点赞:如果没有学习过actuator端点暴露文章,建议查询知识追寻者专栏进行学习: 二 springboot admin介绍 Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序:工作方式是 Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringClo

  • Spring Boot Admin的使用详解(Actuator监控接口)

    第一部分 Spring Boot Admin 简介 Spring Boot Admin用来管理和监控Spring Boot应用程序. 应用程序向我们的Spring Boot Admin Client注册(通过HTTP)或使用SpringCloud®(例如Eureka,Consul)发现. UI是Spring Boot Actuator端点上的Vue.js应用程序. Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件.每个应用都认为是一个客户端,通过HT

  • Spring Boot Admin 的使用详解

    一.前言 Spring Boot Admin 用于监控基于 Spring Boot 的应用.官方文档在这里(v1.3.4):<Spring Boot Admin Reference Guide> 实践的过程中,感觉这个 User Guide 结构上还是说的不太明白.所以我就大概写一遍我的实践过程与理解. 阅读此文前提条件是: 使用过 Maven. 你跑过基于 Spring Boot 的 hello world 程序. 第三节需要你会点 Spring Cloud 的 Eureka Server

  • Spring Boot Admin 快速入门详解

    目录 1.介绍 2.服务端搭建 2.1 引入依赖 2.2 添加注解 2.3 进行测试 2.4 测试结果 3.客户端搭建 3.1 引入依赖 3.2 编写配置 3.3 进行测试 4.安全性 4.1 添加依赖 4.2 编写配置 4.3 编写配置类 4.4 修改客户端配置 4.5 进行测试 总结 1.介绍 官网地址 Spring Boot Admin 是开源社区孵化的项目,用于对 Spring Boot 应用的管理和监控.Spring Boot Admin 分为服务端(spring-boot-admin

  • Spring Security 在 Spring Boot 中的使用详解【集中式】

    1.1 准备 1.1.1 创建 Spring Boot 项目   创建好一个空的 Spring Boot 项目之后,写一个 controller 验证此时是可以直接访问到该控制器的. 1.1.2 引入 Spring Security   在 Spring Boot 中引入 Spring Security 是相当简单的,可以在用脚手架创建项目的时候勾选,也可以创建完毕后在 pom 文件中加入相关依赖. <dependency> <groupId>org.springframework

  • Java Spring Boot消息服务万字详解分析

    目录 消息服务概述 为什么要使用消息服务 异步处理 应用解耦 流量削峰 分布式事务管理 常用消息中间件介绍 ActiveMQ RabbitMQ RocketMQ RabbitMQ消息中间件 RabbitMQ简介 RabbitMQ工作模式介绍 Work queues(工作队列模式) Public/Subscribe(发布订阅模式) Routing(路由模式) Topics(通配符模式) RPC Headers RabbitMQ安装以及整合环境搭建 安装RabbitMQ 下载RabbitMQ 安装R

  • Spring boot 使用mysql实例详解

    Spring boot 使用mysql实例详解 开发阶段用 H2即可,上线时,通过以下配置切换到mysql,spring boot将使用这个配置覆盖默认的H2. 1.建立数据库: mysql -u root CREATE DATABASE springbootdb 2.pom.xml: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId&g

  • Dubbo在Spring和Spring Boot中的使用详解

    一.在Spring中使用Dubbo 1.Maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3.6</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artif

  • Spring Boot 集成MyBatis 教程详解

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 在集成MyBatis前,我们先配置一个druid数据源. Spring Boot 系列 1.Spring Boot 入门 2.Spring Boot 属性配置

  • spring boot linux启动方式详解

    前台启动 java -jar XXX.jar 后台启动 java -jar xxx.jar & 区别:前台启动ctrl+c就会关闭程序,后台启动ctrl+c不会关闭程序 制定控制台的标准输出 java -jar xxx.jar > catalina.out 2>&1 & catalina.out将标准输出指向制定文件catalina.out 2>&1 输出所有的日志文件 & 后台启动  脚本启动 #!/bin/sh #功能简介:启动上层目录下的ja

  • 在Linux系统上安装Spring boot应用的教程详解

    Unix/Linux 服务 systemd 服务 操作过程 1. 安装了JDK的centOS7虚拟机 注意下载linux版本JDK的时候不能直接通过wget这种直接链接下载,否则会解压不成功,应该打开原官网,点击同意许可后点击下载(这种方式下载很慢),比较好的方式是复制下载页的地址到迅雷,通过迅雷打开该下载页,同意许可后点击下载. 下载后解压.配置环境变量 tar -zxvf jdk1.8.0_211.jar.gz 环境变量配置:/etc/profile 文件最后添加如下 export JAVA

随机推荐