zoukankan      html  css  js  c++  java
  • springadmin环境搭建

    一路走过来都是坑,记录下来以后避免在踩

    springboot版本信息2.0.3

    admin服务端

    maven配置信息

    <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <spring-boot-admin.version>2.0.0</spring-boot-admin.version>
            <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <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>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>de.codecentric</groupId>
                    <artifactId>spring-boot-admin-dependencies</artifactId>
                    <version>${spring-boot-admin.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>build-info</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    yml配置文件

    spring:
      application:
        name: claimadmin
      profiles:
        active:
          - secure
    # tag::configuration-eureka[]
    eureka:   #<1>
      instance:
        leaseRenewalIntervalInSeconds: 10
        health-check-url-path: /actuator/health #2.0后actuator的地址发生了变化
      client:
        registryFetchIntervalSeconds: 5
        serviceUrl:
          defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8091}/eureka/
    
    # 2.0开始,actuator默认不开放,所以要设置为开发
    management:
      endpoints:
        web:
          exposure:
            include: "*"
      endpoint:
        health:
          show-details: ALWAYS
    server:
      port: 8181
    # end::configuration-eureka[]
    
    ---
    spring:
      profiles: insecure
    ---
    # admin登录的用户名和密码
    spring:
      profiles: secure
      security:
        user:
          name: user
          password: 123456
    
    # 注册给eureka的时候告诉eureka自己的密码
    eureka:
      instance:
        metadata-map:
          "user.name": ${spring.security.user.name}         #These two are needed so that the server
          "user.password": ${spring.security.user.password} #can access the protected client endpoints

    启动类

    @EnableDiscoveryClient
    @EnableAdminServer
    @SpringBootApplication
    public class ClaimadminApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ClaimadminApplication.class, args);
        }
    
        @Profile("insecure")
        @Configuration
        public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
    
            @Override
            protected void configure(HttpSecurity http) throws Exception {
                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 {
                // @formatter:off
                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();
                // @formatter:on
            }
        }
    }

    总结下来没有多少东西,按官方文档或者找博客按套路来就行,没有什么高深的东西

    admin客户端

    添加maven配置

    <!--监控平台引用  begin-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</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-security</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
            </dependency>
            <!--监控平台引用  end-->

    properties配置添加

    #性能监控 加载所有的端点/默认只加载了 info / health
    management.endpoints.web.exposure.include=*
    management.endpoint.health.show-details=always
    spring.boot.admin.client.url=http://localhost:8181
    spring.boot.admin.client.username=user
    spring.boot.admin.client.password=123456
    spring.boot.admin.client.instance.prefer-ip=true

    特殊说明:

    spring.boot.admin.client.url的配置遇到了一个坑,yml下面添加了"",properties使用""监控平台没有信息,原因待查。

    启动类添加

    @Configuration
        public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
            @Override
            protected void configure(HttpSecurity http) throws Exception {
                http.authorizeRequests().anyRequest().permitAll()
                        .and().csrf().disable();
            }
        }

    到此服务端和客户端全部完成

    在浏览器输入http://localhost:8181

    分别显示了磁盘空间,线程数,堆的大小,非堆占用的内存等

  • 相关阅读:
    mysql5.6 online ddl—索引
    lepus监控OS配置
    mysql字符集问题
    xtrabackup 2.0.8备份mysql5.1.65报错
    子网掩码值
    僵尸进程(待补充)
    libc.so.6重做链接,删除导致的缺失问题(后期需要深入研究),未能成功升级
    atlas
    ./encrypt: error while loading shared libraries: libcrypto.so.10:
    lepus bug
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10276622.html
Copyright © 2011-2022 走看看