spring boot应用监控和管理

Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控、类加载、健康监控等。

对应用进行监控和管理,我们只需在pom.xml上面增加依赖:

<dependency>

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

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

</dependency>

如果是通过http方式,还需加上下面的依赖:

<dependency>

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

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

</dependency>

一、监控端点的作用:

根据端点的作用,可以将端点分为三大类:

应用配置类:获取应用程序中加载的应用配置,环境变量,自动化配置报告等与应用相关的信息。

度量指标类:获取应用程序运行过程中用于监控的度量指标,比如内存信息,线程信息,http请求等。

操作控制类:提供了对应用的关闭等操作类功能。

1.应用配置类:

(1)/autoconfig:获取应用的自动化配置使用情况,包含所有自动化配置的候选项。同时列出了每个候选项是否匹配成功以及没有匹配成功的原因。positiveMatches返回的是匹配成功的自动化配置,negativeMatches返回的是匹配不成功的自动化配置。

(2)/configprops:获取应用配置所有的配置属性。prefix代表属性前缀,properties表示属性名称和id等。

(3)/beans:获取应用程序中创建的所有Bean。每个Bean包含bean、scope、type、resource、dependencies。

(4)/env:获取应用的环境信息。包含环境变量、JVM属性、应用配置属性、参数、端口等。

(5)/mappings:返回所有控制器映射关系报告,包括业务接口和监控接口。

(6)/info:获取应用自定义信息,默认为空。可自己在application.properties里面配置。

2.度量指标类:

(7)/metrics:返回当前各类重要指标信息,比如内存概要信息、堆内存信息、非堆内存信息、线程使用情况、应用加载和卸载的类统计、垃圾收集器详细信息、tomcat容器使用情况、http请求性能指标等。

(8)/health:获取应用的各类指标信息。也可以自己自定义Health监控。

(9)/dump:用来生成当前线程活动的快照。

(10)/trace:用来返回基本的http跟踪信息。保留最近的100条http请求记录。

3.操作控制类:

(11)/shutdown:它是直接关闭应用程序的端点,它与前面的端点不一样,前面的端点都是默认启用的,而它需要通过属性来配置开启操作。可以在application.properties中配置开启:

endpoints.shutdown.enabled=true

4.(--------

(12)/heapdump:springmvc的端点,用来返回Gzip压缩hprof堆转储文件(以hprof.gz结尾)

(13)/loggers:能够查看所有包类的日志级别,并且能够对其进行修改。

(14)/actuator:所有endpoints的列表,即应用监控的接口列表。

(15)/auditevents:公开当前应用程序的审核事件信息。

***:其中/shutdown是post请求,其他都是get请求。

***:如果对日志级别进行修改,需要post请求,并且需要传送JSON(application/json)的数据格式。对其进行测试,发现如果是通过springboot主程序入口main启动程序,能够动态修改logback日志级别;如果是在linux下打包运行后,动态修改日志级别无效。

二、监控端点的管理

1.如果上面的监控端点都不能访问,可能是你的管理端口经常被防火墙保护,不对外暴露也就不需要保护管理端点。这时候你需要在application.properties里加上:

management.security.enabled=false

也可以单个设置,比如endpoints.mappings.sensitive=false,关闭/mappings的安全限制。

2.自定义端点访问路径和访问端口

默认情况下,监控的接口端口和业务的端口一致。比如

server.context-path=/student,server.port=20000

那么这时候我们访问/info监控接口的url是:http://xxx.xxx.xxx.xxx:20000/student/info。如果刚好你在业务接口里面也有一个/info接口,访问路径刚好就是跟http://xxx.xxx.xxx.xxx:20000/student/info一样,那么得到的信息是监控端点info的信息,这个业务接口无效。如果想让它有效呢?那你可以禁用info监控端点,但是如果info这个端点需要返回一些信息不能禁用,而你的业务info接口别的程序已经调用了,你也不想更改,那怎么才能让它有效呢?这时候我们可以通过在application.properties中进行以下设置:

management.context-path=/manage

management.port=20001

那么此时你的/info监控端点的访问路径变成了什么样的呢?那它应该是这样的:

http://xxx.xxx.xxx.xxx:20001/manage/info

这时候你的业务接口就有效了,它的访问路径还是上面所说的那个。改变端点的访问的端口,也是出于安全性的考虑。

3.禁用单个端点

endpoints.info.enabled=false 禁用/info端点

4.开启所需端点

endpoints.enabled=false      禁用所有端点

endpoints.info.enabled=true  开启所需/info端点

5.修改端点id

endpoints.info.id=myinfo

原来访问url是http://xxx.xxx.xxx.xxx:20000/student/info,那修改之后变成http://xxx.xxx.xxx.xxx:20000/student/myinfo

在上面第2点想要使业务接口/info有效,也可以采用这种方式,更改监控端口的id。

6.关闭http端点

management.port=-1

springboot应用监控和管理的更多相关文章

  1. java框架之SpringBoot(17)-监控管理

    介绍 SpringBoot 提供了监控管理功能的场景启动器,它可以为我们提供准生产环境下的应用监控和管理功能.我们可以通过HTTP.JMX.SSH协议来进行操作,自动得到审计.健康及指标信息等. 使用 ...

  2. Springboot监控之一:SpringBoot四大神器之Actuator之3-springBoot的监控和管理--指标说明

    Spring Boot包含很多其他的特性,它们可以帮你监控和管理发布到生产环境的应用.你可以选择使用HTTP端点,JMX或远程shell(SSH或Telnet)来管理和监控应用.审计(Auditing ...

  3. 170707、springboot编程之监控和管理生产环境

    spring-boot-actuator模块提供了一个监控和管理生产环境的模块,可以使用http.jmx.ssh.telnet等拉管理和监控应用.审计(Auditing). 健康(health).数据 ...

  4. Spring Boot监控与管理的实现

    认识Actuator 在SpringBoot应用中引入spring-boot-starter-actuator依赖,它可以为开发团队提供系统运行的各项监控指标. 在项目中引入依赖配置如下: appli ...

  5. 【spring cloud】【spring boot】网管服务-->配置文件添加endpoints.enabled = false,SpringBoot应用监控Actuator使用的安全隐患

    转载:https://xz.aliyun.com/t/2233 ==================================================================== ...

  6. SpringBoot Actuator监控【转】

    springboot actuator 监控 springboot1.5和springboot2.0 的actuator在启动日志上的差异就很大了. springboot1.5在启动时会打印很多/XX ...

  7. 面试官:聊一聊SpringBoot服务监控机制

    目录 前言 SpringBoot 监控 HTTP Endpoints 监控 内置端点 health 端点 loggers 端点 metrics 端点 自定义监控端点 自定义监控端点常用注解 来,一起写 ...

  8. 监控和管理Cassandra

    了解Cassandra集群的性能特点有助于诊断和维护Cassandra.由于Cassandra使用JAVA开发的,所以它就提供了JMX环境下的一些管理工具来管理Cassandra,它们包括:Cassa ...

  9. 笔记:Spring Boot 监控与管理

    在微服务架构中,我们将原本庞大的单体系统拆分为多个提供不同服务的应用,虽然,各个应用的内部逻辑因分解而简化,但由于部署的应用数量成倍增长,使得系统的维护复杂度大大提升,为了让运维系统能够获取各个为服务 ...

随机推荐

  1. Oracle 12cR1 RAC集群安装(一)--环境准备

    基本环境 操作系统版本 RedHat6.7 数据库版本 12.1.0.2 数据库名称 testdb 数据库实例 testdb1.testdb2 (一)安装服务器硬件要求 配置项目 参数要求 网卡 每台 ...

  2. windiows下搭建python+selenium+unittest+Chrome的Web自动化环境

    一.selenium.unittest概念 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试,并且 ...

  3. OCP培训 Oracle 12c/18c/19c OCP认证实战培训【送OCP优惠名额】

    一.OCP培训 Oracle 12c/18c/19c OCP认证全套实战培训[送OCP优惠名额],本课程内容 课程目标: 为满足想参加Oracle OCP考证的学员,风哥设计的一套比较全面OCP实战培 ...

  4. C#读取Txt大数据并更新到数据库

    环境 Sqlserver 2016 .net 4.5.2 目前测试数据1300万 大约3-4分钟.(限制一次读取条数 和 线程数是 要节省服务器资源,如果调太大服务器其它应用可能就跑不了了), Sql ...

  5. 浅谈UART/12C/TTL的定义与区别与解析

    UART/12C/TTL的定义与区别: UART:UART(Universal Asynchronous Receive Transmitter):也就是我们经常所说的串口,基本都用于调试.主机和从机 ...

  6. SpringMVC源码分析3:DispatcherServlet的初始化与请求转发

    在我们第一次学Servlet编程,学java web的时候,还没有那么多框架.我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转 ...

  7. 16.XML语法、CDATA、约束(DTD、Schema)讲解

    xml主要用来描述数据,比如配置文件,网络之间传输数据等,并且在android中也经常用xml来布局,,接下来便来学习xml常用的东西 1.XML语法 xml语法分为: 1.1 文档声明 必须位于文档 ...

  8. Docker系列之镜像瘦身(五)

    前言 本节我们来讲讲在我们在构建镜像过程中不出问题,同时使得最后所构建的镜像文件大小尽可能最小,温馨提示:文中大图均可点击放大查看详细信息. 缓存(cache) Docker的优势之一在于提供了缓存, ...

  9. 消息中间件——RabbitMQ(八)高级特性全在这里!(下)

    前言 上一篇消息中间件--RabbitMQ(七)高级特性全在这里!(上)中我们介绍了消息如何保障100%的投递成功?,幂等性概念详解,在海量订单产生的业务高峰期,如何避免消息的重复消费的问题?,Con ...

  10. 《Head First 设计模式》笔记

    第一章 策略模式 00设计原则:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码放在一起. 把会变化的部分取出并封装起来,好让其它部分不会受到影响.结果如何?代码变化引起的不经意 ...