# 快速搭建微服务-服务监控
Spring Boot Admin为基于Spring Boot的基础数据安全端口提供了基础的可视化监控功能。还可以通过Spring Boot Admin的服务端程序对Spring Boot程序提供简单的实时管理(例如修改日志输出级别)。
# Spring Cloud集成Spring Boot Admin
# Spring Boot Admin服务端
Spring Cloud中集成Spring Boot Admin比较简单,只需要将服务端程序注册到注册中心即可。
- 服务端Maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server</artifactId>
<version>${admin.server.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
<version>${admin.server.version}</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui-login</artifactId>
<version>${admin.server.version}</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui-turbine</artifactId>
<version>${admin.server.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
- 服务端配置
spring:
application:
name: admin-dashboard
cloud:
consul:
discovery:
instance-id: ${spring.application.name}:${spring.cloud.consul.discovery.instance_id:${random.value}}
boot:
admin:
discovery:
ignored-services: consul
routes:
endpoints: env,metrics,trace,dump,jolokia,info,logfile,refresh,flyway,liquibase,heapdump,loggers,auditevents,hystrix.stream,turbine.stream
turbine:
clusters: default
location: admin-dashboard
management:
security:
enabled: false
turbine:
cluster-name-expression: new String("default")
app-config: service-goods, service-order, service-wechat-admin
security:
user:
name: 登录用户名
password: 登录密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
- 启动类
在服务端的启动类加上 @EnableAdminServer
注解声明当前程序为Spring Boot Admin服务端程序。启动类加上 @EnableTurbine
注解开启断路器监控数据的聚合展示。
- 安全访问控制
上面的 spring-boot-admin-server-ui-login
提供了一个登录界面用于访问Spring Boot Admin。需要搭配 spring-security
一起使用。Spring Security的配置如下:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.formLogin().loginPage("/login.html").loginProcessingUrl("/login")
.successHandler((request, response, exception) -> response.sendRedirect(request.getContextPath() + "/index.html")).permitAll()
.and()
.logout().logoutUrl("/logout")
.and()
.authorizeRequests()
.antMatchers("/login.html", "//*.css", "/img/", "/third-party/").permitAll()
.anyRequest().authenticated()
.and().httpBasic();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 被监控服务的配置
被监控的服务需要配置如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
1
2
3
4
2
3
4