34. 应用监控【监控端点配置】




       当一个 Spring Boot 项目运行时,开发者需要对 Spring Boot 项目进行实时监控来获取项目的运行情况,在项目出错时能够实现自动报警等。 Spring Boot 提供了actuator 来帮助开发者获取应用程序的实时运行数据。开发者可以选择使用 HTTP 端点或JMX来管理和监控应用程序,获取应用程序的运行数据,包括健康状况、应用信息、内存使用情况等。

1、开启端点

       在Spring Boot 中开启应用监控非常容易 ,只需要添spring-boot-starter-actuator 依赖即可。依赖如下:

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

       开发者可以使用执行器中的端点( EndPoints )对应用进行监控或者与应用进行交互,Spring Boot 默认包含许多端点 ,如下图所示:
在这里插入图片描述
       如果系统是一个web应用的话,还会有其他端点:
在这里插入图片描述
       这些端点大部分都是默认开启的, 只有 shutdown 端点未开启,如果需要开启,可以在 application.properties 文件中添加以下配置信息:

#开启shutdown端点
management.endpoint.shutdown.enabled=true

       如果开发者不想暴露这么多端点,那么可以关闭默认配置,然后手动指定需要开启哪些端点, 如下配置表示关闭所有端点,只开启 info 端点:

#关闭所有端点,只开启 info 端点
management.endpoints.enabled-by-default=false 
management.endpoint.info.enabled=true

2、暴露端点

       由于有的端点包含敏感信息,因此端点启用和暴露是两码事,以下图展示了默认暴露的断点情况。
在这里插入图片描述
       在web应用中默认暴露了health和info两个端点,以下是启动日志:
在这里插入图片描述
       通过日志提供的路径访问该地址:localhost:8080/actuator
在这里插入图片描述
       我们可以在配置文件中自定义需要暴露哪些端点,例如要暴露 mappings、metrics 端点,添加如下配置即可:

#暴露指定端点
management.endpoints.web.exposure.include=mappings,metrics

在这里插入图片描述

#暴露所有端点
management.endpoints.web.exposure.include=*

在这里插入图片描述

3、端点保护

       如果这些端点需要对外提供服务,那么最好能够将这些端点保护起来,若 classpath 中存在 Spring Security ,则默认使用 Spring Security 保护,使用 Spring Security 保护的步骤很简单,首先添加 Spring Security 依赖:

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

Java配置文件

import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity httpSecurity) throws Exception{httpSecurity.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests().anyRequest().hasAnyRole("admin").and().httpBasic();}
}

       在 HttpSecurity 中配置 Endpoint 都需要具有 admin 角色才能访问,同时开启 httpBasic 认证。注意, endpointRequest.toAnyEndpoint() 表示匹配所有的 endpoint,例如 shutdown、mappings、health 等,但是不包括开发者通过@RequestMapping 注解定义的接口,这里为了演示方便, Spring Security 就不连接数据 了, 直接在 appIication. properties 定义一个用户进行测试,代码如下:

spring.security.user.name=admin
spring.security.user.password=123456
spring.security.user.roles=admin

       定义完成后启动 Spring Boot 项目 再去访问 health 端点,需要登录后才可以访问
在这里插入图片描述

4、端点晌应缓存

       对于一些不带参数的端点请求会自动进行缓存,我们可以通过如下方式配置缓存时间。这个配置表示 beans 端点的缓存时间为 100s ,如果要配置其他端点,只需将 beans 修改为其他端点名称即可。注意,如果端点添加了 Spring Security 保护 ,此时 Principal 会被视为端点的输入,因此端点响应将不被缓存。

management.endpoint.beans.cache.time-to-live=100s

5、路径映射

       默认情况下 ,所有端点都暴露在/actuator路径下,例如 health 端点的访问路径是/actuator/health ,如果开发者需要对端点路径进行定制,可以通过如下配置进行,访问地址变为:localhost:8080/healthcheck

#路径映射
management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck

6、CORS 支持

       所有端点默认都没有开启跨域,开发者可以通过如下配置快速开启 CORS 支持进而实现跨域。这个配置表示允许端点处理来自 http://localhost:8081 地址的请求,允许的请求方法为 GET、POST

management.endpoints.web.cors.allowed-origins=http://localhost:8081
management.endpoints.web.cors.allowed-methods=GET,POST

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

数据监控平台

数据监控平台 监控平台需要实时监控业务指标数据&#xff0c;系统特点&#xff1a;高并发&#xff0c;大数据&#xff0c;低延迟。主要使用的技术&#xff1a; HBase存储海量数据&#xff0c;ScriptEngine引擎&#xff0c;MySQL分表&#xff0c;Redis集群。 高并发&#xf…

应用监控系统

做这个系统其实当时的想法是开放给开发&#xff0c;然后开发自己做一些自己需要的监控&#xff0c;以便最早发现问题&#xff0c;但是做完发现跟nagios\zabbix重复的相当严重&#xff0c;其实应该在nagios\zabbix上继续开发一下应该会更好&#xff0c;先贴出来吧&#xff01; 一…

大众点评Cat实时应用监控平台服务端部署

关于cat服务端部署的相关文档地址如下&#xff1a; https://github.com/dianping/cat/wiki/readme_server 话不多说&#xff0c;接下来就按照官方文档流程走一遍&#xff0c;我这里是使用的Windows系统进行部署。 第一步确认环境&#xff1a; 我这边使用的是如下环境&#xff…

Skywalking 快速搭建应用监控

今天我们就着重讲一讲如何基于 Skywalking 来快速搭建一套应用性能监控平台 一、Skywaling 介绍 Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的开源项目&#xff0c; 2017年12月SkyWalking成为Apache国内首个个人孵化项目&#xff0c; 2019年4月17日SkyWalking从…

SprngBoot Admin (应用监控)

1 简介 SpringBoot应用可以通过Actuator来暴露应用运行过程中的各项指标&#xff0c;Spring Boot Admin通过这些指标来监控SpringBoot应用&#xff0c;然后通过图形化界面呈现出来。Spring Boot Admin不仅可以监控单体应用&#xff0c;还可以和Spring Cloud的注册中心相结合来…

行业分析| anyRTC智慧视频监控的应用

智慧视频监控是安全防范系统的重要组成部分&#xff0c;不仅可以达到一般视频监控系统的远程控制监控、视频回看&#xff0c;满足治安管理、城市管理、交通管理、应急指挥等需求&#xff0c;还具备防盗报警系统的预警信息作用&#xff0c;在预防、发现、控制、打击违法犯罪&…

十四、应用监控(2)

本章概要 监控信息可视化邮件报警 14.2 监控信息可视化 Spring Boot 中提供了监管信息管理段&#xff0c;用来实现监控信息的可视化&#xff0c;这样可以方便开发者快速查看系统运行情况&#xff0c;而不用一个一个地调用接口。 创建 Spring Boot Web 工程&#xff0c;添加以…

Prometheus应用监控

1.主流机器与应用Prometheus,skywalking监控体系分享介绍 应用监控介绍 目前市面上开源应用的APM系统主要有CAT、Zipkin、Pinpoint、SkyWalking。目前市面上机器监控软件有zabbix&#xff0c;Prometheus(也能监控应用&#xff0c;及其他中间件产品)。 Zipkin是Twitter开源的…

系统与应用监控的思路和方法

0、前言 在实际的性能分析中&#xff0c;一个很常见的现象是&#xff0c;明明发生了性能瓶颈&#xff0c;但当你登录到服务器中想要排查的时候&#xff0c;却发现瓶颈已经消失了。或者说&#xff0c;性能问题总是时不时地发生&#xff0c;但却很难找出发生规律&#xff0c;也很…

应用程序服务器监控

什么是应用程序服务器监视 为了确保业务应用程序的最佳性能&#xff0c;必须使用应用程序服务器监视工具&#xff0c;以深入了解应用程序的运行状况和正常运行时间。应用程序服务器监视可帮助您识别性能不足的服务器组件以及性能问题的根本原因&#xff0c;修复它们并确保应用…

应用监控

简介 Spring Boot提供了运行时的应用监控和管理的功能。我们可以通过http、JMX、SSH协议来进行操作。审计、健康及指标信息将会自动得到。 Endpoints 列举一些主要的endpoints &#xff1a; 敏感信息访问限制 根据上面表格&#xff0c;鉴权为false的&#xff0c;表示不敏…

应用监控以及告警实现

前言 一个Java应用 可以不优秀&#xff0c;但是一定不能没有监控方案。否则极大影响排查线上问题的效 以及系统故障的及时告警 。试想 核心应用挂了一个 但是没有配置告警 理想情况几个小时 被自己人发现了 但是万一自己人也没看到或者没关注 那难道让服务一直挂下去么 &#…

十四、应用监控(1)

本章概要 监控端点配置&#xff08;开启端点&#xff0c;暴露端点&#xff0c;端点保护&#xff0c;端点响应缓存&#xff0c;路径映射&#xff0c;CORS支持&#xff0c;健康信息&#xff0c;应用信息&#xff09; 当一个Spring Boot 项目运行时&#xff0c;开发者需要对 Spr…

一篇文章讲透线上应用监控

“线上服务停了&#xff0c;要重启一下”&#xff1f;久经职场做研发的程序员&#xff0c;视线会逐渐转移到线上应用的运行状态。设想一下&#xff0c;如果你在半夜两点正在酣眠美梦时&#xff0c;微信群里突然炸开锅&#xff1a;“服务停了&#xff0c;先重启。。。”&#xf…

如何设置时间倒计时

开发工具与关键技术&#xff1a;Visual Studio 2015、SQL Server 2014 作者&#xff1a;黄世豪 撰写时间&#xff1a;2019年01月31号相信很多小伙伴在做项目时会遇到过要用到时间倒计时的效果&#xff0c;下面我们来实现一下如何将自己设置的时间来让其进行时间倒计。 jsp调用…

js倒计时读秒

1.需求及分析 最近,接到一个接收手机验证码的功能&#xff0c;大体就是设置一个定时器&#xff0c;在每次执行的时候将秒数&#xff0c;逐个减去1&#xff0c;小于0的时候&#xff0c;清除定时器&#xff0c;然后完善一下功能&#xff0c;例如&#xff0c;加上一下状态的变化&…

C#实现倒计时的功能

软件界面&#xff1a; 软代码&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;na…

android studio高考倒计时,高考倒计时app排行榜

编辑推荐 时间管理倒计时 v1.3.0 大小&#xff1a;13.7MB 更新时间&#xff1a;21-04-14 下载 时间管理倒计时&#xff0c;一款专为小伙伴打造的手机时间规划工具&#xff0c;为小伙伴提供更强大的规划服务&#xff0c;在这里小伙伴可以自由规划自己的时间&#xff0c;为小伙伴…

VS2015+C#实现倒计时小程序

最近疫情严重&#xff0c;在家呆着也是呆着&#xff0c;于是就想学一下上位机的编写&#xff0c;权衡利弊之后&#xff0c;选择了C#语言&#xff0c;原因是据说它写出来的上位机比较小&#xff0c;不占内存。开发环境就用VS吧&#xff0c;用的人挺多的。好了&#xff0c;进入正…