从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin

简介: 从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin

spring-boot-admin 服务端创建与集成入nacos

创建一个项目,我这里放入minicloud 框架内support module下作为一个支撑服务

起名mini-cloud-monitor


d2e910ce814a4c698de28e221c05dc62.png

引入spring boot admin server maven pom

<dependency>

   <groupId>de.codecentric</groupId>

   <artifactId>spring-boot-admin-starter-server</artifactId>

   <version>2.3.1</version>

</dependency>


spring boot 2.2.x 可以引进 spring-boot-admin-starter-server 2.2.x

集成 入nacos

添加 nacos pom 和config pom

<!--注册中心客户端-->

<dependency>

   <groupId>com.alibaba.cloud</groupId>

 <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>

</dependency>

<!--配置中心客户端-->

<dependency>

   <groupId>com.alibaba.cloud</groupId>

   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

</dependency>

application.yml

spring:
  application:
    name: @artifactId@
  cloud:
    nacos:
      discovery:
        server-addr: ${NACOS_HOST:127.0.0.1}:${NACOS_PORT:8848}
        metadata:
          version: xiaoli
        namespace: de7eb781-5e83-4bff-8c52-6f00f6a090d3
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        file-extension: yml
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
        namespace: de7eb781-5e83-4bff-8c52-6f00f6a090d3
  profiles:
    active: @profiles.active@

Application 添加spring-boot-admin @EnableAdminServer 注解

e526d4de98c64cd69ddcc034bea14fe6.png

这时spring boot admin 监控服务其实已经集成完毕了,但是目前是没有登录验证的


为spring boot admin 添加登录验证


引入spring-boot-starter-security


<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-security</artifactId>

</dependency>

设置登录的用户名密码  


spring:
  security:
    user:
      name: admin
      password: 123456

首先启动注册中心,然后启动我们的监控服务并访问 该服务ip 端口  

然后输入用户名密码admin 123456登录

8d110983dfa34b268f826ac2a2792913.png

4e2d58abc2d14daab863f36cb1cca4d3.png

登陆后我们只能看见我们监控服务本身一个服务

因为我们还没有启动其他服务

spring boot admin 是获取注册中心所有服务并监控的,所以注册几个服务就会显示几个

下图是上篇中展示的spring boot admin运行原理 :

35be3f9c38814f46a7137354c1fe7b07.png

客户端集成健康检测

本文举例一个服务说明如何开启健康检测,实际情况应该是所有服务都开启健康检测


客户端服务集成spring  boot actuator,spring cloud 环境下只需要集成actuator即可,


单体spring boot 服务要需要集成spring-boot-admin-client,actuator pom如下


<!--监控-->

<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

配置需要开启或者关闭的检测端点,.yml配置如下  

management:
  health:
    db:
      enabled: false
  endpoint:
    health:
      show-details: always
  endpoints:
    web:
      exposure:
        include: '*'

启动服务,查看结果

可以看到已经显示了我们刚刚启动的服务,可以点击该服务看见详细的监测详情

目前基本的健康监测已经可以了,但我们想要在监控页面直接可以看到各个服务的日志,

每个服务还需要添加一下自己服务的日志地址,配置如下

management:
  endpoint:
    logfile:
      enable: true
      external-file: D:\code\mini-cloud\logs\mini-cloud-upms-center-biz\debug.log

我是在nacos 配置中心配置的,然后我们重启服务,看看结果


可以看到,我们服务的日志已经可以在spring boot admin中看见了,这样做的好处是如果我们是分布式部署的,多个机器上的日志可以通过这个页面统一看见会节省去各个服务器上翻找日志的时间

注意点

1.不要改变客户端的actuator 端点base path

spring boot admin 是使用/actuator 作为访问各个服务的基础path的,如果更改了basepath

那么spring boot admin则无法访问各个客户端服务,如下为改变base path方法



ec7d853461da4996a3dbac1066dd54af.png

2.如果关闭了所有端点,一定要至少开启/health 端点

spring boot admin 是依靠访问各个服务/acuator/health 的接口监测健康情况的,如果关闭了

/health ,那么spring boot admin就认为该服务挂掉了,一般不需要关闭所有端点

26d77700b51c48cdaecba699e8160588.png

所有端点如下,根据自己项目情况选择开启:

HTTP方法 Endpoint 描述
GET /actuator 查看有哪些 Actuator endpoint 是開放的
GET /actuator/auditevent 查看 audit 的事件,例如認證進入、訂單失敗,需要搭配 Spring security 使用,sample code
GET /actuator/beans 查看運行當下裡面全部的 bean,以及他們的關係
GET /actuator/conditions 查看自動配置的結果,記錄哪些自動配置條件通過了,哪些沒通過
GET /actuator/configprops 查看注入帶有 @ConfigurationProperties 類的 properties 值為何(包含默認值)
GET /actuator/env (常用) 查看全部環境屬性,可以看到 SpringBoot 載入了哪些 properties,以及這些 properties 的值(但是會自動*掉帶有 key、password、secret 等關鍵字的 properties 的值,保護安全資訊)
GET /actuator/flyway 查看 flyway DB 的 migration 資訊
GET /actuator/health (常用) 查看當前 SpringBoot 運行的健康指標,值由 HealthIndicator 的實現類提供(所以可以自定義一些健康指標資訊,加到這裡面)
GET /actuator/heapdump 取得 JVM 當下的 heap dump,會下載一個檔案
GET /actuator/info 查看 properties 中 info 開頭的屬性的值,沒啥用
GET /actuator/mappings 查看全部的 endpoint(包含 Actuator 的),以及他們和 Controller 的關係
GET /actuator/metrics(常用) 查看有哪些指標可以看(ex: jvm.memory.max、system.cpu.usage),要再使用/actuator/metrics/{metric.name}分別查看各指標的詳細資訊
GET /actuator/scheduledtasks 查看定時任務的資訊
POST /actuator/shutdown 唯一一個需要 POST 請求的 endpoint,關閉這個 SpringBoot 程式




相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
969 2
|
存储 负载均衡 Java
SpringCloud框架
本文介绍了微服务架构中常用的技术组件与原理,包括Nacos与Eureka的服务注册与发现机制、Nacos的分级存储模型、OpenFeign的远程调用流程、Ribbon与Spring LoadBalancer的负载均衡策略、Hystrix与Sentinel的限流熔断机制、滑动窗口算法原理,以及Spring Cloud Gateway的路由断言与过滤器功能,全面覆盖微服务核心治理能力。
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
5180 14
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
406 12
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
426 0
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
492 3
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
395 2
zabbix agent集成percona监控MySQL的插件实战案例
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
2042 1