无法访问Spring Boot Actuator“/执行器”端点

时间:2016-02-20 00:49:22

标签: spring spring-boot spring-boot-actuator

我可以访问http://localhost:8081/health/status/env/metrics/shutdown等终端,但 {{ 1}}或/actuator个端点。

获得以下异常。

/loginfo

如何访问http://localhost:8081/actuator端点?

20 个答案:

答案 0 :(得分:17)

从春季启动版本2.0.1开始,使用以下属性可以正常工作

management.endpoints.web.exposure.include=<comma separated endpoints you wish to expose>

如果您不担心安全问题,可以使用*通配符在网络上公开所有执行器端点。

此外,端点似乎已从先前版本移开。对于前者如果你想使用bean,你现在会有/actuator/beans个端点。

只是要确保查看此类端点的启动日志。

有关端点的更多信息,请here

答案 1 :(得分:5)

我收到了一条很有描述性的消息

2017-11-09 23:27:14.572  INFO 30483 --- [nio-8080-exec-2] s.b.a.e.m.MvcEndpointSecurityInterceptor : Full authentication is required to access actuator endpoints. Consider adding Spring Security or set 'management.security.enabled' to false.

所以我将该属性放在applicaiton.properties

management.security.enabled=false 

它会起作用

答案 2 :(得分:3)

Actuator端点在Spring Boot 2.0.0中移动,因此您需要检查/application/health

摇篮:

compile('org.springframework.boot:spring-boot-starter-actuator')
springBootVersion = '2.0.0.M3'*

编辑build.gradle文件并将Boot版本更改为1.5.4.RELEASE。运行应用程序。

curl -i localhost:8080/health

HTTP/1.1 200
X-Application-Context: application
Content-Type: application/vnd.spring-boot.actuator.v1+json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 14 Jun 2017 20:45:51 GMT

{"status":"UP"}

答案 3 :(得分:3)

我花了几个小时后就遇到了同样的问题,可以解决。 首先,我们需要将以下属性设置为*

management.endpoints.web.exposure.include=*
management.endpoints.enabled-by-default=false

,我们需要提供以下属性端口,而不是URL中的server.port。

management.server.port=9000

示例:

http://localhost:9000/actuator/loggers/{package}
http://localhost:9000/actuator/health

这是在具有Spring Boot 2.1.13的微服务中尝试的,具有以下属性,并且运行良好。

management.endpoints.web.exposure.include=*
management.endpoint.loggers.enabled=true
management.endpoint.restart.enabled=true
management.endpoint.refresh.enabled=true
management.endpoint.health.enabled=true
management.security.enabled=false
management.health.db.enabled=true
management.health.diskspace.enabled=true

答案 4 :(得分:2)

截至springboot 2.0.5.RELEASE的运行状况检查端点为http://hostname:portnumber/applicationroot/actuator/health

还要检查是否已添加依赖项

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

答案 5 :(得分:2)

如果您输入list.jsp,您将获得默认情况下公开的端点列表(3个端点),因此为了公开所有端点,您必须在http://localhost:8080/actuator/文件中添加:

application.properties/yml

答案 6 :(得分:2)

检查https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#base-path

为此更改application.properties文件将允许您使用 http://localhost:8080/beans(或/ health,/ env)

server.port=8080
management.endpoints.web.base-path=/
management.endpoints.web.exposure.include=*

答案 7 :(得分:2)

确保那些敏感的&#39;端点已启用。 This doc介绍了如何启用所有敏感端点或单个端点。听起来你启用了某些敏感端点(如关机),但没有其他(如执行器)。

启用所有敏感端点:

endpoints.sensitive=true

单独启用执行器和日志文件:

endpoints.actuator.enabled=true
endpoints.logfile.enabled=true

答案 8 :(得分:1)

我在使用 http://localhost:8080/actuator/ 时遇到了显示问题,并通过添加 hal-explorer 依赖项得到了解决。请确保您的 pom.xml 中有以下 2 个依赖项,以显示执行器的正确内容。

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-rest-hal-explorer</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

还要检查 application.properties 中的以下属性

management.endpoints.web.exposure.include=*
#management.endpoints.enabled-by-default=false
#management.endpoints.web.base-path=/

答案 9 :(得分:1)

我总是喜欢为上下文路径提供应用程序的基本URL。现在要配置执行器,我们应该将以下依赖项包含到我们的pom.xml

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

让它使用Spring引导版本所承担的默认版本。 将以下属性放入您的application.properties

server.servlet.contextPath=/<app-name>
server.port=8080

management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.security.enabled=false
management.health.mongo.enabled=false
management.health.redis.enabled=false
management.health.rabbit.enabled=false
management.endpoint.health.show-details=always

#/metrics endpoint configuration
endpoints.metrics.id=metrics
endpoints.metrics.sensitive=false
endpoints.metrics.enabled=true

#/health endpoint configuration (Comment when you are using customized health check)
endpoints.health.id=health
endpoints.health.sensitive=false
endpoints.health.enabled=true

info.app.name=@project.name@
info.app.description=@project.description@
info.app.version=@project.version@
info.app.encoding=@project.build.sourceEncoding@
info.app.java.version=@java.version@

在完成上述配置后,一旦启动服务器,就可以轻松地检查指标,如下http呼叫-

 # curl http://localhost:8080/myapp/actuator/metrics
 {
  "names": ["jvm.buffer.memory.used", "jvm.gc.memory.allocated", 
  "jvm.memory.committed", "jvm.memory.used", "http.server.requests", 
  "jvm.gc.max.data.size", "logback.events", "system.cpu.count", 
  "jvm.memory.max", "jvm.buffer.total.capacity", "jvm.buffer.count", 
  "process.files.max", "jvm.threads.daemon", "process.start.time", 
  "jvm.gc.live.data.size", "process.files.open", "process.cpu.usage", 
  "process.uptime", "system.load.average.1m", "jvm.gc.pause", 
  "system.cpu.usage", "jvm.threads.live", "jvm.classes.loaded", 
  "jvm.classes.unloaded", "jvm.threads.peak", "jvm.gc.memory.promoted"]
}

有关详细信息,您可以观看我的博客here

答案 10 :(得分:0)

For spring boot 2.x.x please add below property value in application.property file.

management.endpoint.health.show-details=ALWAYS
management.endpoints.web.exposure.include=*
management.endpoint.beans.enabled=true

Access below url from your local system[either browser or postman] from where you are running a application.

http://localhost:8080/actuator/metrics
http://localhost:8080/actuator/health
http://localhost:8080/actuator/beans

答案 11 :(得分:0)

您可以像这样尝试base-path配置

management:
  endpoints:
    web:
      base-path: /actuator
      exposure:
        include: info, health

答案 12 :(得分:0)

首先,您应该确保pom.xml中具有以下依赖项

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

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

然后,您应在应用程序中进行以下配置。yml

 management:
      endpoint:
        health:
          enabled: true
          show-details: always
      endpoints:
        web:
          exposure:
            include: '*'
        jmx:
          exposure:
            include: '*'

您可以使用应用程序中的以下配置在信息库中自定义信息。yml

info:
    app:
        name: @project.name@
        description: @project.description@
        version: @project.version@
        encoding: @project.build.sourceEncoding@
        java:
            version: @java.version@

之后,您可以转到URL localhost:8080 并查看端点列表,如下所示:

enter image description here

希望这个答案可以帮助某人

答案 13 :(得分:0)

这里是application.yml文件,用于将基本路径更改为/并禁用/ info。

management:
  endpoints:
    web:
      base-path: /
  endpoint:
    #Disable /info
    info:
      enabled: false
    health:
      show-details: always
  health:
      defaults:
        enabled: false

答案 14 :(得分:0)

基于@Vinod的答案,我添加了application.yml内容。
对于Spring Boot 2.1.0,请在application.yml文件中添加以下属性值。

management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
    beans:
      enabled: true

从运行应用程序的本地系统(浏览器或邮递员)访问以下url。

http://localhost:8080/actuator/metrics
http://localhost:8080/actuator/health
http://localhost:8080/actuator/beans

更多端点,请参见链接:
Part V. Spring Boot Actuator: Production-ready features

答案 15 :(得分:0)

似乎您已将Actuator端点映射到基本路径/。检查您的配置中是否包含以下行:

management.endpoints.web.base-path=/

因此,如果省略此行,则将访问actuator路径下的所有端点,例如:

http://localhost:8081/actuator/health

,执行器本身将在此处可用:

http://localhost:8081/health

答案 16 :(得分:0)

从Spring Boot 2.1.5.RELEASE

开始的

运行状况检查端点

http://localhost:8080/actuator/health

检查是否已添加依赖项

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

检查是否添加了 application.properties

management.endpoints.web.exposure.include = *

答案 17 :(得分:0)

弹簧靴1.5.6

  

执行器   为其他端点提供基于超媒体的“发现页面”。要求Spring HATEOAS位于类路径上。

请参阅:https://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/html/production-ready-endpoints.html

答案 18 :(得分:0)

我猜根据docs

,没有名为/ loginfo的端点

for / actuator endpoint,请参阅类似answer

上的question

答案 19 :(得分:0)

我遇到了同样的问题。

  1. 在您的控制台中检查“无效的LOC标头(错误的签名)”之类的错误。 “mvn spring-boot:run”来获取日志 我的sprint-boot-starter-actuator损坏了!

  2. 在我的情况下,执行器URL是

  3. 希望有所帮助