博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Cloud实战系列(八) - 微服务监控Spring Boot Admin
阅读量:6278 次
发布时间:2019-06-22

本文共 7555 字,大约阅读时间需要 25 分钟。

相关

前言

Spring Boot Admin 是一个 管理监控 Spring Boot 应用程序 的一款开源软件。Spring Boot Admin 分为 Server 端和 Client 端,Spring Boot Admin UI 部分使用 AngularJS 将数据展示在前端。

正文

1. 项目结构

  • Eureka Server服务注册中心,端口号为 8761

  • Admin Server:用于对 微服务系统 进行统一的 监控管理

  • Admin Client客户端 集成 Admin

2. 构建Admin Server

新建一个 Spring Boot 的项目模块,取名为 admin-server,其完整依赖如下:

4.0.0
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
io.github.ostenant.springcloud
admin-server
0.0.1-SNAPSHOT
admin-server
Demo project for Spring Boot
1.8
Dalston.RELEASE
de.codecentric
spring-boot-admin-server-ui
1.5.1
de.codecentric
spring-boot-admin-server
1.5.1
org.springframework.boot
spring-boot-starter-actuator
org.springframework.cloud
spring-cloud-starter-eureka
org.jolokia
jolokia-core
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
复制代码

配置 application.yml,设置 management.security.enabled=false,保证 安全验证 关闭,设置 Spring Boot Admin 默认开启的 服务端点

eureka:  client:    service-url:      defaultZone: http://localhost:8761/eureka/server:  port: 5000spring:  application:    name: admin-server  boot:    admin:      routes:        endpoints: env,metrics,dump,jolokia,info,configprops,trace,logfile,refresh,flyway,liquibase,heapdump,loggers,auditevents,hystrix.streammanagement:  security:    enabled: falselogging:  file: "logs/boot-admin-sample.log"复制代码

src/main/resources 目录下新建一个 logback-spring.xml 文件:

复制代码

在应用的 启动类 上通过注解 @EnableAdminServer 开启 Admin Server 的功能。

@EnableEurekaClient@EnableAdminServer@SpringBootApplicationpublic class AdminServerApplication {    public static void main(String[] args) {        SpringApplication.run(AdminServerApplication.class, args);    }}复制代码

Admin Server 创建完成,运行 AdminServerApplication 启动应用程序!

2. 构建Admin Client

新建一个 Spring Boot 的项目模块,取名为 admin-client,其完整依赖如下:

4.0.0
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
io.github.ostenant.springcloud
admin-client
0.0.1-SNAPSHOT
admin-server
Demo project for Spring Boot
1.8
Dalston.RELEASE
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.springframework.cloud
spring-cloud-starter-eureka
org.jolokia
jolokia-core
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
复制代码

配置 application.yml 文件,设置 日志输出路径,并关闭 Actuator 模块的 安全验证

eureka:  client:    service-url:      defaultZone: http://localhost:8761/eureka/server:  port: 8762spring:  application:    name: admin-clientmanagement:  security:    enabled: falselogging:  file: "logs/boot-admin-client.log"复制代码

在应用的 启动类 上加上 @EnableEurekaClient 注解,开启 EurekaClient 的功能。

@SpringBootApplication@EnableEurekaClientpublic class AdminClientApplication {    public static void main(String[] args) {        SpringApplication.run(AdminClientApplication.class, args);    }}复制代码

3. 启动应用程序

依次启动 eureka-serveradmin-serveradmin-client 模块,访问 admin-server 的主页 ,浏览器显示界面如图所示:

JOURNAL 选项为 服务注册下线剔除时间线

4. 添加安全登录界面

Spring Boot Admin 提供了登录界面的组件,并且和 Spring Boot Security 结合使用,需要 用户登录 才能访问。在 Admin Serverpom.xml 文件中引入以下依赖:

de.codecentric
spring-boot-admin-server-ui-login
1.5.0
org.springframework.boot
spring-boot-starter-security
复制代码

admin-server 模块的 application.yml 中完成如下配置,创建一个 securityuser 用户,它的用户名为 admin,密码为 123456。通过 eureka.instance.metadate-map 配置属性 带上该 securityuser 用户信息。

security:  user:    name: admin    password: 123456eureka:  instance:    metadata-map:      user.name: admin      user.password: 123456复制代码

然后在 应用程序 中配置 Spring Boot Security,创建一个 SecurityConfig配置类,给 静态资源 加上 permitAll() 权限,其他的 资源访问 则需要 权限认证,另外这些资源不支持 CSFR跨站请求伪造),所以禁用掉 CSFR,最后需要开启 HTTP 的基本认证,即 httpBasic() 方法。

@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter {    @Override    protected void configure(HttpSecurity http) throws Exception {        http.formLogin().loginPage("/login.html").loginProcessingUrl("/login").permitAll();        http.logout().logoutUrl("/logout");        http.csrf().disable();        http.authorizeRequests()                .antMatchers("/login.html", "/**/*.css", "/img/**", "/third-party/**")                .permitAll();        http.authorizeRequests().antMatchers("/**").authenticated();        http.httpBasic();    }}复制代码

重新启动 admin-server 项目模块,在浏览器中访问 admin-client 的地址 ,在登录界面输入用户名 admin,密码为 123456,登录即可。

参考

  • 方志朋《深入理解Spring Cloud与微服务构建》

欢迎关注技术公众号: 零壹技术栈

本帐号将持续分享后端技术干货,包括虚拟机基础,多线程编程,高性能框架,异步、缓存和消息中间件,分布式和微服务,架构学习和进阶等学习资料和文章。

转载地址:http://yjfva.baihongyu.com/

你可能感兴趣的文章
python string.py 源码分析 一
查看>>
使用delphi 开发多层应用(十九) ios通过soap 访问kbmmw服务器
查看>>
Tomcat 生产服务器性能优化
查看>>
【UML九种图系列】之用例图
查看>>
system.data.sqlite.dll
查看>>
iis 应用程序池看不到 .net framework 4.0
查看>>
深入学习keepalived之一 keepalived的启动
查看>>
CentOS 网络设置修改
查看>>
Windows Phone开发(42):缓动动画
查看>>
JAVA环境变量配置
查看>>
ASP.NET2.0组件控件开发视频 初体验
查看>>
工作经常使用的SQL整理,实战篇(三)
查看>>
MySQL性能、监控与灾难恢复
查看>>
Eclipse远程调试hadoop源码
查看>>
字符串反转
查看>>
SqlServer索引的原理与应用
查看>>
How To: Perl TCP / UDP Socket Programming using IO::Socket::INET
查看>>
Linux命令学习-sed
查看>>
第23章 访问者模式(Visitor Pattern)
查看>>
第21章 策略模式(Strategy Pattern)
查看>>