前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springboot:监控与管理 Actuator

Springboot:监控与管理 Actuator

作者头像
微风-- 轻许--
发布2019-09-25 16:37:46
8480
发布2019-09-25 16:37:46
举报
文章被收录于专栏:java 微风java 微风

原文链接:https://blog.csdn.net/u012326462/article/details/80596051

前言: Actuator是一个暴露自身信息的模块,主要实现对应用系统的监控与管理。主要有三大功能:

应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与Spring Boot应用密切相关的配置类信息。 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如:内存信息、线程池信息、HTTP请求统计等。 操作控制类:提供了对应用的关闭等操作类功能。

加入maven包:

代码语言:javascript
复制
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

在springboot配置文件中配置访问根路径,springboot2.0默认: /actuator,老版本为/ 。

端点(Endpoints) 端点可用于监控应用或者与应用进行交互,Spring Boot包含很多内置的端点,每个断电都可以禁用或者启用,要访问远程端点必须通过JMX或者http进行暴露 。

端点列表:

端点启动不代表可以直接用,必须将其暴露出来。

启用端点: 默认除了shutdown以外,所有端点均已启用,要配置单个端点的启用,需要按照下面方式:

代码语言:javascript
复制
management.endpoint.shutdown.enabled=true

另外可以通过management.endpoints.enabled-by-default来修改全局端口默认配置,以下示例启用info端点并禁用所有其他端点:

代码语言:javascript
复制
management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=tru

暴露端点 由于端点可能包含敏感信息,因此应仔细考虑何时公开它们。默认只有 info、health 自动暴露。 要更改公开哪些端点,请使用以下技术特定的include和exclude属性:

include属性列出了公开的端点的ID,exclude属性列出了不应该公开的端点的ID exclude属性优先于include属性。包含和排除属性都可以使用端点ID列表进行配置。

例如,要停止通过JMX公开所有端点并仅公开health和info端点,请使用以下属性:

代码语言:javascript
复制
management.endpoints.jmx.exposure.include=health,info

可以用来选择所有端点。例如,要通过HTTP公开除env和beans端点之外的所有内容,请使用以下属性:

代码语言:javascript
复制
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans

* 在YAML中有特殊的含义,所以如果你想包含(或排除)所有的端点,一定要加引号,如下例所示:

代码语言:javascript
复制
management:
  endpoints:
    web:
      exposure:
        include: '*'

跨域支持 跨源资源共享(Cross-origin resource sharing,CORS)是W3C规范,允许您以灵活的方式指定授权哪种跨域请求。如果您使用Spring MVC或Spring WebFlux,则可以配置Actuator的Web端点来支持这些场景。

默认情况下,CORS支持处于禁用状态,只有在设置了management.endpoints.web.cors.allowed-origins属性后才能启用。以下配置允许来自example.com域的GET和POST调用:

代码语言:javascript
复制
management.endpoints.web.cors.allowed-origins=http://example.com
management.endpoints.web.cors.allowed-methods=GET,POST

自定义管理服务器地址 您可以通过设置management.server.address属性来自定义管理端点可用的地址。如果您只想在内部网络或面向操作系统的网络上收听,或只收听本地主机的连接,那么这样做会很有用。

只有当端口与主服务器端口不同时,您才可以监听其他地址。

以下示例application.properties不允许远程管理连接:

代码语言:javascript
复制
management.server.port=8081
management.server.address=127.0.0.1

2禁用HTP端点 如果您不想通过HTTP公开端点,则可以将管理端口设置为-1,如以下示例所示:

代码语言:javascript
复制
management.server.port=-1

我的spring配置文件:

代码语言:javascript
复制
management:
  endpoints:
    web:
      base-path: /actuator
      exposure:
        include: '*'

程序启动时则可检测到对应的端点。

参考: Spring Boot Actuator监控端点小结

Spring Boot 2.0官方文档之 Actuator

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年09月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档