zoukankan      html  css  js  c++  java
  • 37.再谈Spring Boot Actuator

    spring Boot包含许多其他功能,可帮助您在应用程序投入生产时监控和管理它们。 您可以选择使用HTTP端点,JMX甚至远程shell(SSH或Telnet)来管理和监视应用程序。 审计,运行状况和指标收集可以自动应用于您的应用程序.Actuator HTTP端点仅适用于基于Spring MVC的应用程序。 特别是,除非你启用Spring MVC,否则它不适用于Jersey。

    spring-boot-actuator提供了所有投入生产时监控和管理的功能
    Maven项目中增加actuator

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

    actuator允许通过端点访问与程序进行交互。 Spring Boot包含许多内置端点,您也可以添加自己的端点。 例如,健康端点提供基本的应用程序健康信息。公开端点的方式取决于您选择的技术类型。 大多数应用程序选择HTTP监视,其中端点的ID映射到URL.

     

     SpringMvc还提供了以下额外的端点

    根据端点的暴露方式,敏感属性可用作安全提示。 例如,敏感端点在通过HTTP访问时需要用户名/密码(如果未启用Web安全性,则只需禁用)

    通过HTTP监控和管理

    如果您正在开发Spring MVC应用程序,Spring Boot Actuator将自动配置所有已启用的端点以通过HTTP公开。 默认约定是使用端点的id作为URL路径。 例如,健康端点暴露的URL  为/health。

    访问敏感端点

    默认情况下,所有敏感HTTP端点都受到保护,以便只有具有ACTUATOR角色的用户才能访问它们。 使用标准HttpServletRequest.isUserInRole方法强制执行安全性.

    如果想配置其他角色取代ACTUATOR,使用management.security.roles进行属性设置。

    如果要在防火墙后面部署应用程序,您可能希望无需身份验证即可访问所有Actuator端点。 您可以通过更改management.security.enabled属性来执行此操作:

    management.security.enabled=false

    如果您要公开部署应用程序,则可能需要添加“Spring Security”来处理用户身份验证。 添加“Spring Security”时,默认情况下,“基本”身份验证将与用户名用户和生成的密码一起使用(在应用程序启动时打印在控制台上)。您可以使用Spring属性更改用户名和密码,以及更改访问端点所需的安全角色。

    如以下配置:

    #ACTUATOR权限配置
    #默认是没有权限控制的,
    #以下配置权限认证,只有当用户名是admin且密码为123456,且拥有SUPERADMIN角色是才能访问sentitive #default列为true的端点 
    #对于密码,生产上可以配置密文
    management.security.enabled=true
    security.user.name=admin
    security.user.password=123456 
    management.security.roles=SUPERADMIN

    如果您的应用程序具有自定义安全配置,并且您希望无需身份验证即可访问所有Actuator端点,则需要在安全配置中明确配置该端点。 除此之外,您还需要将management.security.enabled属性更改为false。

    自定义管理端点路径

    有时,将所有管理端点分组到单个路径中非常有用。 例如,您的应用程序可能已将/ info用于其他目的。 您可以使用management.contextpath属性为管理端点设置前缀:

    management.context-path=/manage

    上面的application.properties示例会将端点从/ {id}更改为/ manage / {id}(例如/ manage / info)。

    您还可以更改端点的“id”(endpoints.{name} .id),然后更改MVC端点的默认资源路径。 合法端点ID仅由字母数字字符组成(因为它们可以在许多地方公开,包括禁止使用特殊字符的JMX对象名称)。 可以通过配置单独更改MVC路径endpoints.{name} .path,并且没有对这些值进行验证(因此您可以使用URL路径中合法的任何内容)。 例如,要将/ health端点的位置更改为/ ping / me,您可以设置endpoints.health.path = / ping / me。

    自定义管理服务器端口

    使用默认HTTP端口公开管理端点是基于云部署的明智选择。 但是,如果您的应用程序在您自己的数据中心内运行,您可能更喜欢使用不同的HTTP端口公开端点。

    management.port属性可用于更改HTTP端口。

    management.port=8081

    禁用HTTP端点

    如果您不想通过HTTP公开端点,可以将管理端口设置为-1:

    management.port=-1

     微信公众号

     

     

  • 相关阅读:
    MVC3、如何应用EntityFramework 连接MySql 数据库 Kevin
    DEV EXPRESS Summary Footer 不显示 Kevin
    装饰模式 Kevin
    Dev 控件 GridControl 控件 二次绑定数据源的问题。 Kevin
    System.InvalidOperationException 异常 Kevin
    LINQ to XML Kevin
    代理模式——代码版“吊丝的故事” Kevin
    VS2012 中的设备 面板 Kevin
    maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程
    maven 学习笔记(一)eclipse+android+maven
  • 原文地址:https://www.cnblogs.com/niugang0920/p/12190371.html
Copyright © 2011-2022 走看看