`
raymond.chen
  • 浏览: 1438195 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Spring Boot Admin监控Sprint Cloud应用

 
阅读更多

一、创建服务配置中心应用

       注册中心Eureka Server

       注册中心添加用户认证

 

二、创建Spring Boot Admin Server应用

      Admin Server将自身注册到服务注册中心,这样Admin Server就可以通过注册中心获取所有应用,并自动监控这样应用。

1、创建pom.xml文件

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.seasy</groupId>
  <artifactId>spring-boot-admin-server</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>
  
  <parent>
  	<groupId>org.springframework.boot</groupId>
  	<artifactId>spring-boot-starter-parent</artifactId>
  	<version>2.0.8.RELEASE</version>
  	<relativePath/>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
	<!-- sprint boot admin server -->
  	<dependency>
    	<groupId>de.codecentric</groupId>
    	<artifactId>spring-boot-admin-starter-server</artifactId>
    	<version>2.0.5</version>
	</dependency>
	<!-- 启用安全认证功能 -->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-security</artifactId>
	</dependency>
	
	<!-- Admin Server注册到注册中心,通过注册中心自动发现需要监控的应用 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

	<dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
  </dependencies>
  
  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
  </dependencyManagement>
</project>

 

2、创建application.yml配置文件

server:
  port: 3030
  
spring:
  application:
    name: spring-boot-admin-server
  #启用的环境配置
  profiles:
    active:
    - secure

eureka:
  instance:
    hostname: ${spring.cloud.client.ip-address}
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    prefer-ip-address: true
    #
    lease-renewal-interval-in-seconds: 10  #表示eureka client发送心跳给server端的频率 
    health-check-url-path: /actuator/health  #健康检查页面的URL路径
    #注册给eureka时告诉eureka自己的密码
    metadata-map: 
      user.name: ${spring.security.user.name}
      user.password: ${spring.security.user.password}
  client:
    registry-fetch-interval-seconds: 5  #表示eureka client间隔多久去拉取服务注册信息,默认为30秒
    #注册中心地址
    service-url:
      defaultZone:
        http://root:123456@${eureka.instance.hostname}:7001/eureka/

#管理端点的配置
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

#每个环境的配置根据 '---'分隔符隔开      
---
spring:
  profiles: insecure

---
spring:
  profiles: secure
  #登录admin server需要的用户名和密码
  security:
    user:
      name: dev
      password: 123

 

3、启动类

       Spring Security的配置信息也放在启动类中

@SpringBootApplication
@EnableAdminServer //开启监控功能
@EnableEurekaClient //Admin Server也注册到注册中心
public class Main {
	public static void main(String[] args) {
		SpringApplication.run(Main.class, args);
	}
	
	/**
	 * Spring Security配置
	 */
	@Profile("insecure") //对应到application配置文件的spring.profiles属性值
    @Configuration
    public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
        	//permitAll: 无条件允许访问
            http.authorizeRequests().anyRequest().permitAll()
                    .and().csrf().disable();
        }
    }
 
    @Profile("secure")
    @Configuration
    public static 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");
 
            http.authorizeRequests()
                    .antMatchers(adminContextPath + "/assets/**").permitAll()
                    .antMatchers(adminContextPath + "/login").permitAll()
                    .anyRequest().authenticated()
                    .and().formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler)
                    .and().logout().logoutUrl(adminContextPath + "/logout")
                    .and().httpBasic()
                    .and().csrf().disable();
        }
    }
}

 

三、创建Spring Cloud应用

1、创建pom.xml文件

      不需要引入 spring-boot-admin-starter-client 依赖包

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.seasy.springcloud</groupId>
  <artifactId>service-provider-1</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>
  
  <parent>
  	<groupId>org.springframework.boot</groupId>
  	<artifactId>spring-boot-starter-parent</artifactId>
  	<version>2.0.8.RELEASE</version>
  	<relativePath/>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>
  
  <dependencies>
	<!-- spring boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      	<groupId>org.springframework.boot</groupId>
      	<artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
      	<groupId>org.springframework.boot</groupId>
      	<artifactId>spring-boot-starter-test</artifactId>
      	<scope>test</scope>
    </dependency>
    
    <!-- spring cloud -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
  </dependencies>
  
  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
  </dependencyManagement>
    
  <build>
      <plugins>
          <plugin>
              	<groupId>org.springframework.boot</groupId>
              	<artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
          
   		  <plugin>
           		<groupId>org.apache.maven.plugins</groupId>
           		<artifactId>maven-compiler-plugin</artifactId>
           		<configuration>
               		<source>1.8</source>
               		<target>1.8</target>
           		</configuration>
           </plugin>
      </plugins>
  </build>
</project>

 

2、创建application.yml配置文件

      不需要配置 spring.boot.admin.client 相关的参数信息

server:
  port: 8001
  
spring:
  application:
    name: service-provider-1

eureka:
  instance:
    hostname: ${spring.cloud.client.ip-address}
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://root:123456@${eureka.instance.hostname}:7001/eureka/

#开启所有的管理端点给Admin Server进行监控
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

 

3、创建启动类

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

  

 



 

  • 大小: 30.7 KB
  • 大小: 89.1 KB
分享到:
评论

相关推荐

    12Spring Boot Admin:微服务应用监控1

    Spring Boot Admin 微服务应用监控 Spring Boot Admin 是一个基于 Spring Boot 的应用监控工具,可以对 Spring Boot 应用进行监控,提供了详细的应用信息,包括应用运行过程中的概览信息、度量指标信息、环境变量...

    最新Spring Boot Admin 官方参考指南-中文版-2.x

    这可以通过引入`spring-boot-admin-starter-client`依赖来实现,或者如果你正在使用Spring Cloud Discovery,你的应用程序会自动被Spring Boot Admin Server发现。此外,SBA还支持静态配置选项,以便手动管理应用...

    使用Spirng Boot Admin监控Spring Cloud应用项目

    使用Spring Boot Admin监控Spring Cloud应用项目需要一个Spring Boot Admin Server服务,其他被监控的服务即为一个Spring Boot Admin Client,或者是通过Spring Cloud中的服务注册发现组件如Eureka、Consul来进行...

    详解使用spring boot admin监控spring cloud应用程序

    Spring Boot Admin 监控 Spring Cloud 应用程序 Spring Boot Admin 是一个功能强大且灵活的监控工具,特别是在监控 Spring Cloud 应用程序方面。下面将详细介绍 Spring Boot Admin 的使用方法和相关知识点。 ...

    Spring cloud spring boot spring boot admin

    在实际使用中,开发者需要按照官方文档或者示例代码设置相关配置,确保Spring Boot Admin Server能正确发现并监控到Spring Boot应用实例。这对于微服务架构的监控和运维来说非常实用,可以帮助开发者及时发现问题并...

    spring boot admin demo 源码 java 服务器 监控

    Spring Boot Admin 是一个用于监控 Spring Boot 应用的优秀框架,它提供了丰富的界面展示,能够帮助开发者实时了解应用的运行状态、健康检查、日志输出等关键信息。本项目是基于 Spring Boot Admin 的一个演示(Demo...

    基于Spring Boot 3.0、 Spring Cloud 2022 & Alibaba 的微服务RBAC 权限管理系统

    介绍一个基于Spring Boot 3.0、Spring Cloud 2022 & Alibaba的微服务RBAC权限管理系统。该系统可以实现微服务RBAC权限管理,通过RBAC权限管理机制对用户访问系统的权限进行限制,从而提高系统的安全性和可用性。同时...

    10spring boot admin 监控1

    总的来说,Spring Boot Admin 是一个强大且易于使用的监控工具,它为开发者提供了深入了解应用程序运行状况的能力,有助于及时发现和解决问题。通过与 Actuator 的深度集成,它提供了一个全面的视图,包括健康检查、...

    spring boot admin server

    综上所述,Spring Boot Admin Server是一个强大的监控工具,通过集成Spring Boot Admin Client,我们可以实现对Spring Boot应用的全面监控,从而提高系统的稳定性和可维护性。同时,深入源码学习能够帮助我们更好地...

    详解Spring Boot Admin监控服务上下线邮件通知

    "Spring Boot Admin监控服务上下线邮件通知" Spring Boot Admin是一款功能强大且灵活的监控工具,能够实时监控微服务的状态,并提供邮件通知功能以便及时告警。下面是Spring Boot Admin监控服务上下线邮件通知的...

    spring boot、spring cloud、spring boot Alibaba以及配套组件版本关系

    - **Spring Cloud**:建立在Spring Boot之上的一组工具和服务,用于构建云原生应用,包括服务发现、配置管理、断路器、智能路由等功能。 两者之间的关系是:Spring Boot简化了基础配置,而Spring Cloud则在此基础上...

    详解Spring boot Admin 使用eureka监控服务

    "Spring Boot Admin 使用 Eureka 监控服务详解" 本篇文章主要介绍了如何使用 Spring Boot Admin 结合 Eureka 服务注册和发现功能来监控服务。下面将详细介绍 Spring Boot Admin 的搭建过程和关键配置。 Eureka ...

    《Spring Boot 2+Thymeleaf企业应用实战》_杨恩雄.pdf

    内容覆盖了从Spring Boot和Spring MVC基础,到Thymeleaf的深入应用,再到前端JavaScript框架(如jQuery、Bootstrap和Vue.js)的介绍,以及使用Spring Data操作数据库和应用Spring Cloud构建微服务。最后,通过案例将...

    spring-boot使用Admin监控应用的方法

    Spring Boot Admin 提供了多种功能,例如应用监控、日志监控、配置监控等等。这些功能可以帮助我们更好地管理和监控我们的应用。 知识点七:Spring Boot Admin 的优点 使用 Spring Boot Admin 监控应用有很多优点...

    spring 5 , Spring Boot 2.0,Spring cloud

    "Learning Spring Boot 2.0 pdf"可能涵盖的主题包括:Spring Boot的起步,理解其自动配置机制,创建RESTful API,集成数据库(如MySQL、MongoDB),使用Spring Boot进行测试,部署应用,以及如何利用Spring Boot的...

    spring boot 2.6.11+springcloud Swagger3构建微服务项目源码

    在本项目中,我们主要关注的是使用Spring Boot 2.6.11、Spring Cloud以及Swagger3构建微服务架构的过程。这些技术都是现代云应用开发中的核心组件,它们各自提供了强大的功能来简化开发和增强应用的可维护性。 首先...

    Spring Boot Admin 参考指南-2.1.1-SNAPSHOT 谷歌翻译.pdf

    总而言之,Spring Boot Admin是一个功能丰富、易于配置、扩展性好的Spring Boot应用监控工具。它非常适合在生产环境中使用,能够帮助开发者快速定位问题、监控应用性能和状态,从而有效地维护和管理Spring Boot应用...

Global site tag (gtag.js) - Google Analytics