IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring Boot Admin监控搭建-nacos版本 -> 正文阅读

[Java知识库]Spring Boot Admin监控搭建-nacos版本

Spring Boot Admin介绍

Spring Boot Admin 是github上一款用于Spring Boot 的监控管理的开源项目,通过http直接注册或者通过注册中心注册的方式,实现了Spring Boot应用上的一些常见监控项,具体功能点如下:

  • 显示应用程序的监控状态
  • 应用程序上下线监控
  • 查看 JVM,线程信息
  • 可视化的查看日志以及下载日志文件
  • 动态切换日志级别
  • Http 请求信息跟踪
  • 其他监控点

详细监控项可到githup上去查看

地址:https://github.com/codecentric/spring-boot-admin

快速搭建

本文是基于nacos注册中心配置实现,在开始前需要安装好nacos服务端。

搭建服务:

  1. admin-server 监控服务端
  2. admin-client 被监控的客户端

创建Admin-server应用

添加pom依赖:

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <maven.deploy.skip>true</maven.deploy.skip>
    <nacos.version>2.2.4.RELEASE</nacos.version>
    <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
    <spring-boot.admin.version>2.2.2</spring-boot.admin.version>
    <spring-boot-starter-actuator.version>2.2.5.RELEASE</spring-boot-starter-actuator.version>
</properties>

<dependencies>
    <!--监控服务端 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>${spring-boot.admin.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${spring-boot.version}</version>
    </dependency>

    <!--nacos注册中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>${nacos.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>${spring-boot-starter-actuator.version}</version>
    </dependency>
</dependencies>

添加配置

server:
  port: 8012

spring:
  application:
    name: admin-server
  #配置中心
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        service:  ${spring.application.name}


# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
# 日志      
logging:
  file: /application/applogs/admin.log

启动类增加注解

@EnableAdminServer 注解,开启监控服务端的功能

@EnableAdminServer
@SpringBootApplication
public class AdminServerApp {

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

}

启动后,我们就可以看到

在这里插入图片描述

创建Admin-client应用

添加pom依赖

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <maven.deploy.skip>true</maven.deploy.skip>
        <nacos.version>2.2.4.RELEASE</nacos.version>
        <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
        <spring-boot.admin.version>2.3.0</spring-boot.admin.version>
        <spring-boot-starter-actuator.version>2.2.5.RELEASE</spring-boot-starter-actuator.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>

        <!--nacos注册中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>${nacos.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>${spring-boot-starter-actuator.version}</version>
        </dependency>
    </dependencies>

client是通过nacos向admin注册的,所以只需要开启nacos注册服务和actuator监控点的服务就可以了,

配置文件

server:
  port: 8013

spring:
  application:
    name: admin-client
  #配置中心
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        service:  ${spring.application.name}


# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

logging:
  file: /application/applogs/admin.log

启动类

@SpringBootApplication
public class ClientApp {

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

最普通的一个springboot应用,启动之后

在这里插入图片描述

在这里插入图片描述

至此,监控应用已经搭建完成。

设置登录信息

admin默认启动时随机生成秘钥进行验证登录的,我们添加spring security 提供登录验证

admin-server添加依赖

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

增加配置文件

server:
  port: 8012

spring:
  application:
    name: admin-server
  #配置中心
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        service:  ${spring.application.name}
        metadata:
          user.name: admin
          user.password: 654321
  security:
    user:
      name: admin
      password:  654321

# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

logging:
  file: /application/applogs/admin.log

metadata 是向nacos注册时携带用户米密码,以防注册时被权限限制无法获取到数据,增加 security 配置,配置用户名 admin,密码654321

添加拦截配置

@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {

    private final String adminContextPath;

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

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        // 登录成功处理类
        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
        successHandler.setTargetUrlParameter("redirectTo");
        successHandler.setDefaultTargetUrl(adminContextPath + "/");

        http.authorizeRequests()
                //静态文件允许访问
                .antMatchers(adminContextPath + "/assets/**").permitAll()
                //登录页面允许访问
                .antMatchers(adminContextPath + "/login", "/css/**", "/js/**", "/image/*").permitAll()
                //其他所有请求需要登录
                .anyRequest().authenticated()
                .and()
                //登录页面配置,用于替换security默认页面
                .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                //登出页面配置,用于替换security默认页面
                .logout().logoutUrl(adminContextPath + "/logout").and()
                .httpBasic().and()
                .csrf()
                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .ignoringAntMatchers(
                        "/instances",
                        "/actuator/**"
                );
    }

然后启动admin-server,输入用户名密码登录

在这里插入图片描述

在这里插入图片描述


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:11:09  更:2022-04-27 11:14:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:10:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码