前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
前言:
?????Actuator是一個暴露自身信息的模塊,主要實現對應用系統的監控與管理。主要有三大功能:
應用配置類:獲取應用程序中加載的應用配置、環境變量、自動化配置報告等與Spring Boot應用密切相關的配置類信息。
度量指標類:獲取應用程序運行過程中用于監控的度量指標,比如:內存信息、線程池信息、HTTP請求統計等。
操作控制類:提供了對應用的關閉等操作類功能。
加入maven包:?
? ? ? <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
在springboot配置文件中配置訪問根路徑,springboot2.0默認: /actuator,老版本為/? 。
端點(Endpoints)
????端點可用于監控應用或者與應用進行交互,Spring Boot包含很多內置的端點,每個斷電都可以禁用或者啟用,要訪問遠程端點必須通過JMX或者http進行暴露 。
端點列表:
端點啟動不代表可以直接用,必須將其暴露出來。
啟用端點:
???默認除了shutdown以外,所有端點均已啟用,要配置單個端點的啟用,需要按照下面方式:
management.endpoint.shutdown.enabled=true
另外可以通過management.endpoints.enabled-by-default來修改全局端口默認配置,以下示例啟用info端點并禁用所有其他端點:
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端點,請使用以下屬性:
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: '*'
跨域支持
跨源資源共享(Cross-origin resource sharing,CORS)是W3C規范,允許您以靈活的方式指定授權哪種跨域請求。如果您使用Spring MVC或Spring WebFlux,則可以配置Actuator的Web端點來支持這些場景。
默認情況下,CORS支持處于禁用狀態,只有在設置了management.endpoints.web.cors.allowed-origins屬性后才能啟用。以下配置允許來自example.com域的GET和POST調用:
management.endpoints.web.cors.allowed-origins=http://example.com
management.endpoints.web.cors.allowed-methods=GET,POST
自定義管理服務器地址
您可以通過設置management.server.address屬性來自定義管理端點可用的地址。如果您只想在內部網絡或面向操作系統的網絡上收聽,或只收聽本地主機的連接,那么這樣做會很有用。
只有當端口與主服務器端口不同時,您才可以監聽其他地址。
以下示例application.properties不允許遠程管理連接:
management.server.port=8081
management.server.address=127.0.0.1
2禁用HTP端點
如果您不想通過HTTP公開端點,則可以將管理端口設置為-1,如以下示例所示:
management.server.port=-1
我的spring配置文件:
management:endpoints:web:base-path: /actuatorexposure:include: '*'
程序啟動時則可檢測到對應的端點。
參考:
Spring Boot Actuator監控端點小結?
Spring Boot 2.0官方文檔之 Actuator
?