当前位置:   article > 正文

Spring Boot Admin

Spring Boot Admin

概述

Spirng Boot Admin 登录页面
  • Spring Boot Admin是一个用于管理Spring Boot应用的监控工具,它允许你查看和管理多个Spring Boot应用实例。用于应用信息进行界面化的展示,常常辅助我们开发人员快速查看服务运行状态
  • 在微服务架构中,Spring Boot Admin通常作为一个独立的微服务运行,作为监控服务端可以单独部署和启动
  • 但在我们公司内部微服务架构中,我们使用Spring Boot Admin与Eureka注册中心进行集成,以便自动发现并监控注册在Eureka中的服务实例。这种集成方式可以减少对客户端应用的单独配置,实现更加自动化和集中化的监控管理

监控功能

  • 显示应用程序的监控状态
  • 应用程序上下线监控(部署过50+应用到正式环境时用于确定应用是否发布成功)
  • 查看 JVM,线程信息(遇到OOM时使用过)
  • 可视化的查看日志以及下载日志文件
  • 动态切换日志级别
  • Http 请求信息跟踪
  • 其他功能点……

项目实战

创建一个标准的springboot项目

pom添加依赖

  1. <dependency>
  2. <groupId>de.codecentric</groupId>
  3. <artifactId>spring-boot-admin-starter-server</artifactId>
  4. <version>版本号</version>
  5. </dependency>

yml配置Spring Boot Admin Server属性

bootstrap/application.yml配置SpringBoot Admin Server属性:端口号,服务名,用户登录信息等

  1. # 端口
  2. server:
  3. port: 90040
  4. spring:
  5. application:
  6. name: monitor-server
  7. # config client 配置中心config
  8. profiles:
  9. active: prod
  10. cloud:
  11. config:
  12. fail-fast: true
  13. username: config
  14. password: cofing
  15. label: trunk
  16. profile: ${spring.profiles.active} #prod # 取哪個版本的配置文件
  17. #uri: http://localhost:9090/ # Config Server URI, 无Eureka Server才需要配置
  18. discovery:
  19. enabled: true
  20. service-id: cdp-config-server
  21. inetutils:
  22. ignored-interfaces: # 配置Eureka Client註冊到Eureka服務器時,需要忽略的網卡清單。僅針對運行環境(主機)存在多網卡的情景。
  23. - "docker.*" # 忽略并避免使用docker網卡IP註冊
  24. - "veth.*" # 忽略并避免使用docker環境下容器的虛擬網卡
  25. - "virbr0" # 忽略并避免使用 KVM創建的提供NAT模式網卡IP註冊
  26. - "kbr0" # 忽略并避免使用自定義的基於OpenvSwitch技術構建的docker物理主機通信虛擬網IP註冊
  27. - "VMware.*" # 忽略并避免使用vmware網卡IP註冊
  28. main:
  29. allow-bean-definition-overriding: true
  30. management:
  31. endpoints:
  32. web:
  33. exposure:
  34. include: "*"
  35. endpoint:
  36. health:
  37. show-details: ALWAYS
  38. # 和Eureka instance进行集成
  39. eureka:
  40. instance:
  41. prefer-ip-address: true
  42. instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
  43. # 注意:如果应用存在上下文,则必须设置health-check-url-path和status-page-url-path
  44. #health-check-url: http://${spring.cloud.client.ip-address}:${server.port}${server.servlet.context-path}/actuator/health
  45. health-check-url-path: /actuator/health
  46. #status-page-url: http://${spring.cloud.client.ip-address}:${server.port}${server.servlet.context-path}/actuator/info
  47. status-page-url-path: /actuator/info
  48. home-page-url-path: /
  49. metadata-map:
  50. management:
  51. context-path: /actuator # spring boot admin获取客户端的默认端点路径前缀为"/actuator":因为客户端有上下文路径,故需要通过eureka client告知admin server
  52. user: # 如果不配置则无法获取 /actuator/health信息,提示401
  53. name: monitor #SpringBootAdmin本身作为一个Eureka客户端被发现,这里由于SpringBootAdmin需要进行登录,因此,此处配置SpringBootAdmin登录时使用的用户名
  54. password: monitor2024.
  55. --- # prod为正式Docker配置环境,使用"---"间隔不同环境
  56. spring:
  57. profiles: prod
  58. eureka:
  59. client:
  60. serviceUrl:
  61. defaultZone: http://admin:admin.@peer1:8761/eureka/,http://admin:admin.@peer2:8762/eureka/ # 高可用地址
在config配置中心动态拉取springboot admin服务应用对应的配置文件信息:
  1. spring:
  2. # 安全配置
  3. security:
  4. user:
  5. name: monitor
  6. # password: ENC(YTz0WOWB8fm4wvHNRsjKoHxFNo3T64D1)
  7. password: monitor2024.
  8. #jasypt 正式环境需要加密,对应ENC(YTz0WOWB8fm4wvHNRsjKoHxFNo3T64D1)
  9. #jasypt:
  10. #encryptor:
  11. #password: monitor2024 # 密钥盐/passsword salt

创建启动类

  1. package com.monitor;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  7. import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
  8. import de.codecentric.boot.admin.server.config.EnableAdminServer;
  9. /**
  10. *
  11. * @ClassName: MonitorApplication
  12. * @Description: 应用监控服务端启动类
  13. * @author test
  14. *
  15. */
  16. @SpringBootApplication
  17. @EnableAutoConfiguration
  18. @EnableAdminServer
  19. @EnableDiscoveryClient
  20. @EnableEncryptableProperties
  21. public class MonitorApplication {
  22. public static void main( String[] args ){
  23. SpringApplication.run(MonitorApplication.class, args);
  24. }
  25. }

启动主启动类

Spring Boot Admin Server启动后,通过http:localhost(或者部署的服务器IP):90040/,随后输入正确登录用户信息(monitor/monitor2024),验证通过后我们就可以查看已经正常启动的服务以及对应的运行状态等信息~

应用配置信息
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/518182
推荐阅读
相关标签
  

闽ICP备14008679号