• SpringBoot Admin监控spring cloud alibaba nacos微服务


    版本说明

    Spring-Boot版本:2.1.8RELEASE

    Spring-Cloud版本:Greenwich.SR6

    Spring-Cloud-Alibaba版本:2.1.0.RELEASE

    Spring-Boot-Admin-starter-client:2.1.5

    Spring-Boot-Admin-starter-server:2.1.5

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

    创建admin server端

    pom依赖:

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

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

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jetty</artifactId>
            </dependency>
    
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>2.1.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
        </dependencies>
    

    配置文件

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

    server.port=8888 #端口号
    spring.application.name=gulimall-admin #服务名
    spring.security.user.name=admin #账号
    spring.security.user.password=admin #密码
    spring.cloud.nacos.discovery.server-addr=192.168.1.43:8848 #注册中心地址
    management.endpoints.web.exposure.include=* # 选择暴露所有可监控端点
    

    主启动类&&相关配置

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

    security配置:

    @Configuration
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
        private final String adminContextPath;
        public SecurityConfig(AdminServerProperties adminServerProperties) {
            this.adminContextPath = adminServerProperties.getContextPath();
        }
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
            successHandler.setTargetUrlParameter("redirectTo");
            http.authorizeRequests()
                    .antMatchers(new String[]{"/instances/**","/actuator/**"}).permitAll()
                    .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();
        }
    }
    

    创建admin client端(众多需要被监控的微服务)

    其余杂七杂八的依赖这里省略。。。

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
                <version>2.1.8.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
                <version>2.1.5</version>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>2.1.0.RELEASE</version>
            </dependency>
    

    yml配置

    spring:  
      boot:
        admin:
          client:
            url: http://localhost:8888 #admin server的地址
    management:
      endpoints:
        web:
          exposure:
            include: '*' #暴露所有可监控的端点
    

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

    image-20201106205842586

    admin搭建完成

    启动所有client服务和server服务。登陆,账号密码是我们在server端配置文件中配置的。

    登陆成功后(页面还是挺好看的,至少比以前的版本好看!),我们可以在wallboard中看到所有服务的健康状况和实例数

    image-20201106210550954

    我这里有一个红色是因为那个微服务boot版本是2.2,导致依赖冲突(我也懒得改了,影响不大)

    同时我的admin server服务也入驻进nacos注册中心。

    服务详细信息

    点击任意服务,进入服务的详情页,服务详细信息都在下图。

    image-20201106211845183

    日志级别:

    image-20201106212310723

    监控线程:

    image-20201106212352852

    web监控:

    image-20201106212419795

    image-20201106213742059

    网关信息:

    系统缓存:

    image-20201106212823518

    点击clear后,redis中的缓存同时删除

  • 相关阅读:
    iptables详解
    Linux文件结构及基本文件夹
    linux的一些常用命令
    Sql Server REPLACE函数的使用
    MSSQL复制表操作
    MSSQL2005数据库显示单一用户模式,无法进行任何操作
    linux下查看所有用户及所有用户组
    SpringMVC基础-10-拦截器
    SpringMVC基础-09-文件上传(单文件、多文件上传)
    SpringMVC基础-08-数据转换 & 数据格式化 & 数据校验
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/13939105.html
Copyright © 2020-2023  润新知