springboot 学习笔记(四) 初识actuator

springboot 学习笔记(四) 初识actuator

spring-boot-starter-actuator:

    一、介绍:

        Spring Boot包含许多附加功能,可帮助您在将应用程序投入生产时监视和管理应用程序。 您可以选择使用HTTP端点或JMX来管理和监控您的应用程序。 审计,健康和指标收集也可以自动应用于您的应用程序。

    二、使用:

        在pom中新增一个依赖

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

     三、进一步使用

        他包含很多端点,我们可以通过端点来访问具体的功能,如下

        

ID Description Enabled by default

auditevents

Exposes audit events information for the current application.

Yes

beans

Displays a complete list of all the Spring beans in your application.

Yes

conditions

Shows the conditions that were evaluated on configuration and auto-configuration classes and the reasons why they did or did not match.

Yes

configprops

Displays a collated list of all @ConfigurationProperties.

Yes

env

Exposes properties from Spring’s ConfigurableEnvironment.

Yes

flyway

Shows any Flyway database migrations that have been applied.

Yes

health

Shows application health information.

Yes

httptrace

Displays HTTP trace information (by default, the last 100 HTTP request-response exchanges).

Yes

info

Displays arbitrary application info.

Yes

loggers

Shows and modifies the configuration of loggers in the application.

Yes

liquibase

Shows any Liquibase database migrations that have been applied.

Yes

metrics

Shows ‘metrics’ information for the current application.

Yes

mappings

Displays a collated list of all @RequestMapping paths.

Yes

scheduledtasks

Displays the scheduled tasks in your application.

Yes

sessions

Allows retrieval and deletion of user sessions from a Spring Session-backed session store. Not available when using Spring Session’s support for reactive web applications.

Yes

shutdown

Lets the application be gracefully shutdown.

No

threaddump

Performs a thread dump.

Yes

 如果您的应用程序是一个Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:

ID Description Enabled by default

heapdump

Returns a GZip compressed hprof heap dump file.

Yes

jolokia

Exposes JMX beans over HTTP (when Jolokia is on the classpath, not available for WebFlux).

Yes

logfile

Returns the contents of the logfile (if logging.file or logging.path properties have been set). Supports the use of the HTTP Range header to retrieve part of the log file’s content.

Yes

prometheus

Exposes metrics in a format that can be scraped by a Prometheus server.

Yes

默认情况下,大部分的端点是开启的,如果想要关闭,则可以通过

management.endpoints.enabled-by-default=false

 

出于安全考虑,可以选择公开或隐藏一些端点,下面是springboot默认的端点公开情况

ID JMX Web

auditevents

Yes

No

beans

Yes

No

conditions

Yes

No

configprops

Yes

No

env

Yes

No

flyway

Yes

No

health

Yes

Yes

heapdump

N/A

No

httptrace

Yes

No

info

Yes

Yes

jolokia

N/A

No

logfile

N/A

No

loggers

Yes

No

liquibase

Yes

No

metrics

Yes

No

mappings

Yes

No

prometheus

N/A

No

scheduledtasks

Yes

No

sessions

Yes

No

shutdown

Yes

No

threaddump

Yes

No

 

要更改公开哪些端点,请使用以下技术特定的包含和排除属性:

Property Default

management.endpoints.jmx.exposure.exclude

 

management.endpoints.jmx.exposure.include

*

management.endpoints.web.exposure.exclude

 

management.endpoints.web.exposure.include

info, health

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

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

management.endpoints.jmx.exposure.include=health,info

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

management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans

*在YAML中有特殊含义,因此如果要包含(或排除)所有端点,请务必添加引号,如以下示例中所示:

management:
	endpoints:
		web:
			exposure:
				include: "*"

如果您希望在暴露端点时实施您自己的策略,您可以注册一个EndpointFilter bean。

保护HTTP端点(Securing HTTP Endpoints)

您应该注意保护HTTP端点的方式与使用其他任何敏感网址的方式相同。 如果存在Spring Security,则使用Spring Security的内容协商策略默认保护端点。 例如,如果您希望为HTTP端点配置自定义安全性,则只允许具有特定角色的用户访问它们,Spring Boot提供了一些便捷的RequestMatcher对象,可以与Spring Security结合使用。

一个典型的Spring Security配置可能看起来像下面的例子:

@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
				.anyRequest().hasRole("ENDPOINT_ADMIN")
				.and()
			.httpBasic();
	}

}

上例使用EndpointRequest.toAnyEndpoint()将请求与任何端点进行匹配,然后确保所有端点都具有ENDPOINT_ADMIN角色。 EndpointRequest上还有其他几种匹配器方法。 有关详细信息,请参阅API文档(HTML或PDF)。

如果您在防火墙后面部署应用程序,您可能更喜欢所有的执行器端点都可以在无需验证的情况下进行访问。 您可以通过更改management.endpoints.web.exposure.include属性来完成此操作,如下所示

management.endpoints.web.exposure.include=*

此外,如果存在Spring Security,则需要添加自定义安全配置,以允许对端点进行未经身份验证的访问,如以下示例所示:

@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
			.anyRequest().permitAll()
	}

}

四、配置端点

端点自动缓存响应以读取不带任何参数的操作。 要配置端点缓存响应的时间量,请使用其cache.time-live属性。 以下示例将Bean端点缓存的生存时间设置为10秒:

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

 

如果您想要了解更多关于 spring-boot-starter-actuator的信息,请参考官网链接

https://docs.spring.io/spring-boot/docs/2.0.3.BUILD-SNAPSHOT/actuator-api//html/

转载于:https://my.oschina.net/u/1178126/blog/1811726

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101667.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python变量命名规则

    Python变量命名规则Python变量命名规则变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头,例如,可将变量命名为message_1,但不能将其命名为1_message。变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greetingmessage会引发错误。不要将Python关键字和函数名用作变量名,即不要使用P…

    2022年6月12日
    32
  • 数据库——自然连接、内连接、外连接(左外连接、右外连接、全外连接)、交叉连接「建议收藏」

    数据库——自然连接、内连接、外连接(左外连接、右外连接、全外连接)、交叉连接「建议收藏」1.自然连接(*naturaljoin)*自然连接不用指定连接列,也不能使用ON语句,它默认比较两张表里相同的列,`SELECT*FROMstudentNATURALJOINscore;`显示结果如下:2.内连接(innerjoin)和自然连接区别之处在于内连接可以自定义两张表的不同列字段。内连接有两种形式:显式…

    2022年8月30日
    2
  • 酒店管理系统源码_客户管理系统源码

    酒店管理系统源码_客户管理系统源码(1)资源完全开放型:系统所有的资源,功能交由用户管理,权限控制到按钮,针对不同的用户,组装不同的界面,分配不同的使用功能.不放心再加权限到按钮。(2)系统突出以营销、预订、房源、房价等对营销具有影响力的信息处理。房价码可按年,季,月,周,日设定。(3)强化以客源为中心的信息完整性、长久性、可操作性。建立了客档为中心的用户信息管理系统。(4)使用数据穿透查询技术,对数据进行多元,多层次的查询.从汇中数据到明细发生,紧密联系在一起,灵活实用。(5)客档、角色、佣金、房价方案、授权折扣、操作权

    2022年9月24日
    2
  • pycharm上传代码到git_gitee收费吗

    pycharm上传代码到git_gitee收费吗前提:1、在码云https://gitee.com/ 中已经注册了账号,并且已经创建了仓库2、已经安装了git客户端: 3、在settings中设置gitee账户,登入:  、 3、在pycharm中安装gitee插件:file–setttings–plugins–搜索gitee,安装:  4、安装成功后检查:  5、提价本地项目代码到gitee:选中要提交的项目后VCS-…

    2022年8月26日
    5
  • vs2010密钥

    vs2010密钥vs2010密钥YCFHQ-9DWCY-DKV88-T2TMH-G7BHP转载于:https://www.cnblogs.com/andy_tigger/archive/2010/09/27/1837082.html

    2022年6月6日
    98
  • XML指南——XML 屬性

    XML指南——XML 屬性

    2021年7月26日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号