微服务系列Springboot Admin搭配nacos进行服务监控

1.版本说明

 Spring-Boot版本:2.3.7.RELEASE

Spring-Cloud版本:Hoxton.SR9

Spring-Cloud-Alibaba版本:2.2.5.RELEASE

Spring-Boot-Admin-starter-client:2.3.1

Spring-Boot-Admin-starter-server:2.3.1

这里springboot和springboot admin的大小版本最好相同,如boot版本是2.1,admin版本也应该是2.1,否则项目很有可能会报错无法启动。

 

2.创建监控server端:

   2.1.pom依赖

   (1)这里web排除tomcat,引入undertow,是因为用tomcat有可能会在启动时报错。

   (2)引入了security依赖,这样会在admin必须要登陆才可以进入,保证了一定的安全性。

      

        <!-- SpringBoot Admin -->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>${spring-boot-admin.version}</version>
        </dependency>

        <!-- SpringCloud Ailibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- SpringCloud Ailibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- SpringCloud Ailibaba Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

        <!-- SpringBoot Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 使用undertow 作为web服务器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>

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

3.配置文件

注意:如果在properties中,星号不需要打引号,在yml中,需要打单引号!

server:
  port: 9111
spring:
  application:
    # 应用名称
    name: cloud-monitor
  security:
    user:
      name: admin
      password: 123456
  boot:
    admin:
      ui:
        title: 服务状态监控

# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS
    logfile:
      enabled: true         #可在线查看日志

4.主启动类和相关配置

@EnableDiscoveryClient
@EnableAdminServer //开启spring boot admin相关功能
@SpringBootApplication
public class MonitorApplication
{
    public static void main(String[] args)
    {
        SpringApplication.run(MonitorApplication.class, args);
    }
}

5.spring  security配置

@Configuration
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter
{
    private final String adminContextPath;

    public WebSecurityConfigurer(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
            .headers().frameOptions().disable()
            .and().authorizeRequests()
            .antMatchers(adminContextPath + "/assets/**"
                , adminContextPath + "/login"
                , adminContextPath + "/actuator/**"
                , adminContextPath + "/instances/**"
            ).permitAll()
            .anyRequest().authenticated()
            .and()
            .formLogin().loginPage(adminContextPath + "/login")
            .successHandler(successHandler).and()
            .logout().logoutUrl(adminContextPath + "/logout")
            .and()
            .httpBasic().and()
            .csrf()
            .disable();
    }
}

5.创建被监控的client端(微服务):

    5.1pom中添加依赖

<!-- SpringCloud Ailibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- SpringCloud Ailibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

    	<!-- SpringBoot Actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- SpringBoot Admin Client -->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
        </dependency>

    5.22. yml中配置

spring:  

  boot:

    admin:

      client:

        url: http://localhost:8888 #admin server的地址

management:

  endpoints:

    web:

      exposure:

        include: '*' #暴露所有可监控的端点

需要注意的是:如果要监控被security或oauth2所保护的微服务,我们需要在security中配置(如果因为安全,我们可以配置ip白名单,只有指定ip,才可以访问)

6.登录,浏览器输入server端ip+端口

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SpringBootAdmin可以与Nacos进行集成,以实现对Spring Boot应用程序的监控和管理。为了实现这种集成,可以按照以下步骤进行操作: 1. 创建Spring Boot Admin Server:使用Spring Cloud注册中心(例如Nacos)作为Spring Boot Admin Server的注册中心。这可以在创建服务端时进行配置。 2. 配置SpringBootAdminNacos集成:可以通过修改Spring Boot Admin Server的配置文件来配置与Nacos的集成。可以设置Nacos的地址和其他相关配置。具体的配置可以参考相关文档或者参考引用中提供的示例。 3. 认证和授权:SpringBootAdmin提供了登录页面和注销功能,但是它不会提供默认的身份验证和授权方法。因此,在分布式Web应用程序中,可以根据具体需求选择合适的身份验证和授权方法,并进行相应的集成和配置。 使用上述方法,您可以将SpringBootAdminNacos集成,实现对Spring Boot应用程序的监控和管理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBootAdminNacos集成demo](https://download.csdn.net/download/jialiuyang/11069675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [springBoot Admin整合nacos](https://blog.csdn.net/qq_48624152/article/details/123112628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Nacos整合Spring Boot Admin](https://blog.csdn.net/afgasdg/article/details/124332560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值