热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

应用监控_springboot应用监控和管理

篇首语:本文由编程笔记#小编为大家整理,主要介绍了springboot应用监控和管理相关的知识,希望对你有一定的参考价值。spring boot

篇首语:本文由编程笔记#小编为大家整理,主要介绍了springboot应用监控和管理相关的知识,希望对你有一定的参考价值。



spring boot应用监控和管理

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

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

        

            org.springframework.boot

            spring-boot-starter-actuator

        

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

org.springframework.boot

spring-boot-starter-web


一、监控端点的作用:

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

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

度量指标类:获取应用程序运行过程中用于监控的度量指标,比如内存信息,线程信息,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


推荐阅读
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Elasticsearch1Elasticsearch入门1.1Elasticsearch术语1.1.16.0以前的Elasticsearch术语1.1.26.0以后的Elasti ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
author-avatar
rwp4677210
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有