06. Springboot admin集成Actuator(二)

这篇具有很好参考价值的文章主要介绍了06. Springboot admin集成Actuator(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、前言

2、快速使用

2.1、服务端集成

2.1.1、添加依赖

2.1.2、配置启动类

2.1.3、配置application.yml

2.1.4、定制security config

2.1.5、启动程序

2.2、客户端集成

2.2.1、添加依赖

2.2.2、配置application.yml

2.2.3、启动程序

2.3、告警通知

2.3.1、邮件通知

2.3.2、Notifier 接口


1、前言

在《Springboot admin集成Actuator(一)》一文中简单演示了Actuator的初步使用,但是可以发现都是json形式返回的结构,那么是否有能够可视化的方式来展示这些指标呢?当然有,就是接下来要说的Springboot Admin。Spring Boot Admin能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。

注:虽然名叫Springboot Admin,但却不是Spring团队研发的。而是由Codecentric公司创建的,代码在Github: spring-boot-admin在新窗口打开上。

2、快速使用

springboot admin分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client)。服务端和客户端之间采用 http 通讯方式实现数据交互;单体项目中需要整合 spring-boot-admin-client 才能让应用被监控。在 SpringCloud 项目中,spring-boot-admin-server 是直接从注册中心抓取应用信息,不需要每个微服务应用整合 spring-boot-admin-client 就可以实现应用的管理和监控。

2.1、服务端集成

2.1.1、添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 添加security模块,可以对spring boot admin设置登录账号密码,添加安全性 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>${spring.boot.admin.version}</version>
</dependency>

2.1.2、配置启动类

启动类需要添加注解@EnableAdminServer。

@EnableAdminServer
@SpringBootApplication
public class SbaServerLauncher {
    public static void main(String[] args) {
        SpringApplication.run(SbaServerLauncher.class, args);
    }
}

2.1.3、配置application.yml

server:
  port: 9001

spring:
  application:
    name: sba-server
  # 配置登录springboot admin管理端的账号密码
  security:
    user:
      name: admin
      password: 123456

# 启动actuator端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

2.1.4、定制security config

@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/**"
                );
    }
}

2.1.5、启动程序

接下来就可以启动程序。访问地址http://localhost:9001

06. Springboot admin集成Actuator(二),Spring Boot,spring boot,java,后端

输入账号密码admin/123456,进入控制台首页,服务端集成到此就好了。

06. Springboot admin集成Actuator(二),Spring Boot,spring boot,java,后端

2.2、客户端集成

服务端集成后,我们发现其应用数为0。这里的应用就是需要我们客户端集成后注册进去。

2.2.1、添加依赖

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

2.2.2、配置application.yml

server:
  port: 9001

spring:
  boot:
    admin:
      client:
        # 这里就是注册服务端的地址
        url: http://localhost:9001
        username: ${spring.security.user.name}
        password: ${spring.security.user.password}
        instance:
          service-host-type: ip
          metadata:
            user.name: ${spring.security.user.name}
            user.password: ${spring.security.user.password}

2.2.3、启动程序

启动程序,访问下控制台地址:http://localhost:9001,可以发现我们的服务已经注册上去了。因为我这边服务端和客户端是在同一套工程上,因此可以看到我们自己的应用服务。

06. Springboot admin集成Actuator(二),Spring Boot,spring boot,java,后端

点击sba-server应用,可以进去详情查看各个端点信息:

06. Springboot admin集成Actuator(二),Spring Boot,spring boot,java,后端

这些信息其实就是前面介绍的actuator各个端点的数据以可视化方式呈现。到此我们的集成就算是完成了。

除此之外,我们还可以自定义springboot admin的导航菜单,通过view-setting配置。以及其他一些可扩展的东西,这里就不赘述,需要感兴趣的小伙伴们慢慢探索。

2.3、告警通知

当检测到状态发生变化时, 我们需要发送一些消息通知。sba-server中内置了如email、消息等通知。

2.3.1、邮件通知

我们以为发送email为例,需要添加如下配置:

添加依赖:

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

添加email配置:

spring:
  mail:
    host: ${MAIL_HOST:邮箱服务器地址}
    port:
    username: ${MAIL_USERNAME:邮箱服务器用户名}
    password: ${MAIL_PWD:邮箱服务器密码}
    protocol: ${MAIL_PROTOCOL:smtp}
    default-encoding: UTF-8
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true
      mail.smtp.socketFactory.port: ${MAIL_SMTP_SOCKETFACTORY_PORT:465}
      mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
      mail.smtp.socketFactory.fallback: false
      mail.smtp.ssl.protocols: ${MAIL_SMTP_SSL_PROTOCOLS:TLSv1}

添加spring boot admin邮件告警配置:

spring:
  boot:
    admin:
      notify:
        mail:
          to: ${NOTIFY_MAIL_TO:邮箱接收人,多个用,隔开}
          from: ${NOTIFY_MAIL_FROM:邮箱发送人}

配置完,当客户端出现异常时,就会收到邮件告警。

2.3.2、Notifier 接口

除了内置的一些通知类型外,还可以自定义通知功能。自定义的通知可以实现 AbstractStatusChangeNotifier 抽象类,或者 Notifier 接口。我们以继承AbstractStatusChangeNotifier类为例,使用Notifier接口类似:文章来源地址https://www.toymoban.com/news/detail-772405.html

public class CustomNotifier extends AbstractStatusChangeNotifier {
    }

到了这里,关于06. Springboot admin集成Actuator(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot中的Actuator是什么?Spring Boot中的Starter依赖是什么?

    在Spring Boot中,Actuator是一种用于监控和管理应用程序的工具。它提供了一些额外的端点和功能,使开发人员能够更好地了解和控制他们的应用程序。 Actuator提供了以下功能: 指标收集:Actuator可以收集并显示有关应用程序的指标,例如内存使用情况、线程数、请求处理时间等

    2024年02月09日
    浏览(43)
  • spring boot actuator 禁用后,/actuator仍可正常访问

    项目上线后,被测试出actuator没有关闭,关闭后,仍可正常访问/actuator端点,只是类似/actuator/env这样的无法访问,现在就想把/actuator端点也给禁用了。 spring boot 2.x关闭actuator配置,关闭后,仍可正常访问/actuator端点 说明spring boot 2.x无法通过配置的方式禁用/actuator端点 大部分

    2024年01月19日
    浏览(37)
  • Spring Boot自带监控组件—Actuator介绍

    Actuator是Spring Boot提供的应用系统监控的开源框架,它是Spring Boot体系中非常重要的组件。它可以轻松实现应用程序的监控治理,支持通过众多REST接口、远程Shell和JMX收集应用的运行情况。 Actuator的核心是端点(Endpoint),它用来监视、提供应用程序的信息,Spring Boot提供的sp

    2024年02月04日
    浏览(40)
  • Spring Boot Actuator未授权访问漏洞

    Spring Boot Actuator 端点的未授权访问漏洞是一个安全性问题,可能会导致未经授权的用户访问敏感的应用程序信息。 可是并不用太过担心,Spring Boot Actuator 默认暴漏的信息有限,一般情况下并不会暴露敏感数据。 注册中心有些功能集成了actuator,如果同时使用eureka和actuator,可

    2024年02月13日
    浏览(39)
  • 关于Spring Boot Actuator漏洞补救方案

    在浏览器中范围于http://192.168.0.119:81/dev-api/actuator(http://IP:端口/actuator),如下图 几个漏洞属于配置不当引起路由暴露。 1.读取用户的认证字段获取敏感信息 可以直接尝试访问网站目录下的/trace 路径,读取用户认证字段信息,比如在trace 路径下,会有用户的敏感信息,可能

    2024年02月04日
    浏览(38)
  • spring boot集成Elasticsearch-SpringBoot(25)

      搜索引擎(search engine )通常意义上是指:根据特定策略,运用特定的爬虫程序从互联网上搜集信息,然后对信息进行处理后,为用户提供检索服务,将检索到的相关信息展示给用户的系统。   而我们讲解的是捜索的索引和检索,不涉及爬虫程序的内容爬取。大部分公司

    2023年04月09日
    浏览(110)
  • Spring Boot2.xx开启监控 Actuator

                            docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升维: 道、法

    2024年02月14日
    浏览(49)
  • 【SpringBoot3】Spring Boot 3.0 集成 Redis 缓存

    Redis缓存是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它主要用于作为数据库、缓存和消息中间件,以快速读写和丰富的数据结构支持而著称。 在应用程序和数据库之间,Redis缓存作为一个中间层起着关键

    2024年02月21日
    浏览(52)
  • spring boot学习第六篇:SpringBoot 集成WebSocket详解

    1、WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 2、为什么需要WebSocket HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接。 无状态:每次连

    2024年01月21日
    浏览(50)
  • 如何解决 Spring Boot Actuator 的未授权访问漏洞

    Spring Boot Actuator  的作用是提供了一组管理和监控端点,允许你查看应用程序的运行时信息,例如健康状态、应用程序信息、性能指标等。这些端点对于开发、 测试  和运维团队来说都非常有用,可以帮助快速诊断问题、监控应用程序的性能,并采取必要的措施来维护和管理

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包