Spring boot Actuator监控管理的快速入门和实战

1、Spring Boot Actuator的介绍

Spring Boot Actuator是Spring Boot提供的一个用于监控和管理Spring Boot应用程序的功能模块。

你可以选择通过使用HTTP端点或使用JMX来管理和监控你的应用程序。 审计、健康和指标收集也可以自动应用于你的应用程序。

Actuator的定义:

actuator(执行器) 是一个制造术语,指的是用于移动或控制某物的机械装置。actuator 可以从一个小的变化中产生大量的运动。

Actuator的官网为:
生产就绪功能

2、Spring Boot Actuator的快速实战

使用的技术栈版本为:spring boot3.1.0

2.1、新建一个Actuator-parent的maven聚合工程,然后在这个聚合工程下完成我们对于Spring Boot Actuator的实战入门;

在Actuator-parent下新建一个actuator-test模块,在这个模块中引入Spring Boot Actuator的依赖,并启动这个模块;

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>

直接启动actuator-test模块,并访问http://localhost:8080/actuator路径,可以看到actuator默认暴露的一些端口:

默认情况下,只有health端点是通过HTTP暴露的。 由于端点可能包含敏感信息,你应该仔细考虑何时暴露它们。

要改变哪些端点被暴露,可以在yml配置文件中修改 include 和 exclude 属性。

include 属性列出了被暴露的端点的ID。 exclude 属性列出了不应该被公开的端点的ID。 exclude 属性优先于 include 属性。 你可以用一个端点ID列表来配置 include 和 exclude 属性。

暴露所有的端点:
 

management:endpoints:web:exposure:include: '*'
server:port: 8080

actuator默认的端点有:

auditevents

公开当前应用程序的审计事件信息。 需要一个 AuditEventRepository bean。

beans

显示你的应用程序中所有Spring Bean的完整列表。

caches

显示可用的缓存。

conditions

显示对配置和自动配置类进行评估的条件,以及它们符合或不符合的原因。

configprops

显示所有 @ConfigurationProperties 的整理列表。

env

暴露Spring的 ConfigurableEnvironment 中的属性。

flyway

显示任何已经应用的Flyway数据库迁移。 需要一个或多个 Flyway bean。

health

显示应用程序的健康信息。

httpexchanges

显示 HTTP exchange 信息(默认情况下,最后 100 个 HTTP request/response exchange)。 需要一个 HttpExchangeRepository bean。

info

显示任意的应用程序信息。

integrationgraph

显示Spring集成图。 需要依赖 spring-integration-core

loggers

显示和修改应用程序中logger的配置。

liquibase

显示任何已经应用的Liquibase数据库迁移。 需要一个或多个 Liquibase Bean。

metrics

显示当前应用程序的 “metrics” 信息。

mappings

显示所有 @RequestMapping 路径的整理列表。

quartz

显示有关Quartz Scheduler Job的信息。

scheduledtasks

显示你的应用程序中的计划任务。

sessions

允许从Spring Session支持的会话存储中检索和删除用户会话。 需要一个使用Spring Session的基于Servlet的Web应用程序。

shutdown

让应用程序优雅地关闭。只在使用jar打包时有效。默认情况下是禁用的。

startup

显示由 ApplicationStartup 收集的启动步骤数据。要求 SpringApplication 被配置为 BufferingApplicationStartup

threaddump

Performs a thread dump.

2.2、可视化工具spring-boot-admin

我们当然可以使用默认的actuator来进行我们项目的追踪,但是这样只能通过路径来监控我们的项目,这样就不太方便与我们实时的进行监控。

spring-boot-admin可视化监控平台,是一个基于Spring Boot Actuator端点之上的一个vue.js应用程序,可以帮助我们动态的看到spring boot项目的变化。

spring-boot-admin的GitHub地址:

Spring Boot Admin – Getting started

由于spring-boot-admin是一个单独的服务,所以我们需要在Actuator-parent聚合工程下新建一个admin模块。(注意spring-boot-admin的版本要与spring-boot-actuator一致)

<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

在启动类上加上@EnableAdminServer注解

在client模块加上spring-boot-admin-client依赖,并在yml配置文件中声明spring-boot-admin-server的地址。

 <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>3.1.0</version></dependency>
spring:boot:admin:client:url: http://localhost:9090

现在,将两个模块都启动,直接访问server模块的地址,就可以看到client模块被注入到server模块中了。

现在,我们已经启动了admin模块和actuator模块并成功监控到了actuator模块,但是,现在这个admin模块是所有人都可以访问的,这不安全,所以我们可以添加一些安全措施。

2.2.3整合nacos注册中心

当我们在微服务项目中要监控所有的服务,那么使用注册中心是个很好的选择,我们只需要将admin这个模块注册到nacos中,那么所有曾经使用过admin客户端的服务都会自动被监控到

如果你不了解nacos服务注册,可以看一下这篇文章:
springboot3整合nacos实现注册中心和配置中心(详细入门)_springboot3 nacos-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/615043.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应用实战|从头开始开发记账本2:基于模板快速开始

上期视频我们创建好了BaaS服务的后端应用。从这期视频开始&#xff0c;我们将从头开发一个互联网记账本应用。本期视频我们介绍一下如何使用模板快速开启我们的应用开发之旅。 应用实战&#xff5c;从头开始开发记账本2&#xff1a;基于模板快速开始 相关代码 本期视频我们介绍…

langchain agent 使用外部工具示例

示例1 室外计算机器与天气搜索引擎&#xff0c;但在使用天气查询的时候好像不可以用了 提示词模版&#xff1a;LangSmith import os from dotenv import load_dotenv from langchain_community.llms import Tongyi load_dotenv(key.env) # 指定加载 env 文件 key os.geten…

ChatGPT Plus国内升级实测

必要条件 有美国节点环境一个还没升级的ChatGPT账号一张美国的虚拟卡&#xff0c;点击获取美区苹果账户&#xff08;手机使用&#xff09; 开一张卡即可升级&#xff0c;按图片步骤开卡即可&#xff0c;此卡0年费0月费 开好卡之后登录ChatGPT升级&#xff0c;点击Upgrade to …

再谈C语言——理解指针(一)

内存和地址 内存 在讲内存和地址之前&#xff0c;我们想有个⽣活中的案例&#xff1a; 假设有⼀栋宿舍楼&#xff0c;把你放在楼⾥&#xff0c;楼上有100个房间&#xff0c;但是房间没有编号&#xff0c;你的⼀个朋友来找你玩&#xff0c; 如果想找到你&#xff0c;就得挨个房…

吴恩达机器学习-实践实验室:协同过滤推荐系统(Collaborative Filtering Recommender Systems)

在本练习中&#xff0c;您将实现协作过滤&#xff0c;以构建电影推荐系统。 文章目录 1-概念2-推荐系统3-电影评分数据集4-协作过滤学习算法4.1协同过滤成本函数 5-学习电影推荐6-建议7-祝贺 软件包 我们将使用现在熟悉的NumPy和Tensorflow软件包。 import numpy as np import…

谷歌推出适用于安卓设备的“Find My Device”网络,功能类似苹果Find My

谷歌今日推出了适用于安卓设备的“Find My Device”网络&#xff0c;其功能类似于苹果的“Find My”网络&#xff0c;旨在帮助用户定位丢失、被盗的安卓产品。 安卓的“Find My Device”网络可以利用数以亿计运行 Android 9 或更高版本的安卓设备&#xff0c;通过蓝牙信号追踪丢…

Vue 移动端(H5)项目怎么实现页面缓存(即列表页面进入详情返回后列表页面缓存且还原页面滚动条位置)keep-alive缓存及清除keep-alive缓存

一、需求 产品要求&#xff1a;Vue移动端项目进入列表页&#xff0c;列表页需要刷新&#xff0c;而从详情页返回列表页&#xff0c;列表页则需要缓存并且还原页面滚动条位置 二、实现思路 1、使用Vue中的keep-alive组件&#xff0c;keep-alive提供了路由缓存功能 2、因为我项…

紧急!揭秘:我的网站流量大幅下滑,立即采取这些对策挽救局面!

这是办公室里平常的一天。你刚刚发送完几封邮件&#xff0c;决定看一眼网站的最新指标。但当你读完数据后&#xff0c;眼睛瞪得大大的。"哦&#xff0c;不&#xff0c;"你大声说。"我的网站流量正在下降。 也许你的情况并非如此。即便如此&#xff0c;你也可能…

AIGC的崛起:定义未来内容创作的新纪元

&#x1f31f;文章目录 &#x1f31f;AIGC简介&#x1f31f; AIGC的相关技术与特点&#x1f31f;AIGC有哪些应用场景&#xff1f;&#x1f31f;AIGC对其他行业影响&#x1f31f;面临的挑战与问题&#x1f31f;AIGC未来发展 &#x1f31f;AIGC十大热门网站推荐&#xff1a; 文心…

pyplot+pandas实现操作excel及画图

1、安装jupyter lab pip install jupyterlab # 启动 建议在指定的项目文件夹下 开启cmd窗口并执行 jupyter lab 启动后会自动打开浏览器访问 2、安装依赖 pip install matplotlib pip install xlrd pip install pandas 3、读取excel import pandas as pddf pd.read_excel(hi…

多因子模型的数据处理

优质博文&#xff1a;IT-BLOG-CN 数据处理的基本目的是从多量的、可能是杂乱无章的、难以理解的数据中抽取并推导出有价值、有意义的数据。特别是金融数据&#xff0c;存在数据缺失&#xff0c;不完整以及极端异常值等问题&#xff0c;对于我们的分析和建模影响很多。 对于我…

pbootcms百度推广链接打不开显示404错误页面

PbootCMS官方在2023年4月21日的版本更新中&#xff08;对应V3.2.5版本&#xff09;&#xff0c;对URL参数添加了如下判断 if(stripos(URL,?) ! false && stripos(URL,/?tag) false && stripos(URL,/?page) false && stripos(URL,/?ext_) false…