前言
spring-boot-actuator是一個spring-boot提供的用于監(jiān)控組件,只需要在代碼中加入依賴就可以了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
遇到的一些小問題
1.可以加入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
來保證actuator暴露接口的安全性,可以通過 -u 'user:password'
方式來訪問basic auth
2.如果項目依賴的是springmvc框架,并且基礎(chǔ)的配置文件是 application.yaml
的話,可以增加 application.properties
文件來配置安全性的配置.
3.如果加入了security
依賴拂檩,則所有的接口默認(rèn)都需要被驗(yàn)證,如果只想 /admin
路徑下的請求進(jìn)行驗(yàn)證,則需要加入配置
security.basic.enabled=true
security.basic.path=/admin
security.user.name=admin
security.user.password=password
4.如果項目依賴的是非springmvc框架的話槽奕, 需要在依賴中加入mvc的依賴
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
5.如果management.security.enabled
的值是false的話,除開health接口還依賴endpoints.health.sensitive
的配置外房轿,其他接口都不需要輸入用戶名和密碼了粤攒。
6.actuator暴露的health接口權(quán)限是由兩個配置: management.security.enabled
和 endpoints.health.sensitive
組合的結(jié)果進(jìn)行返回的。
management.security.enabled | endpoints.health.sensitive | Unauthenticated | Authenticated |
---|---|---|---|
false | false | Full content | Full content |
false | true | Status only | Full content |
true | false | Status only | Full content |
true | true | No content | Full content |
7.actuator組件里面除開上面提到的metrics和health接口以外囱持,還有很多默認(rèn)的其他接口夯接,如果它默認(rèn)的接口不能滿足你的需求的話,還可以通過繼承它的 AbstractEndpoint
類來實(shí)現(xiàn)自己的Endpoint
最后附加一個配置文件例子:
security.basic.enabled=true
security.basic.path=/admin #針對/admin路徑進(jìn)行認(rèn)證
security.user.name=admin #認(rèn)證使用的用戶名
security.user.password=password #認(rèn)證使用的密碼
management.security.roles=SUPERUSER
management.port=11111 #actuator暴露接口使用的端口纷妆,為了和api接口使用的端口進(jìn)行分離
management.context-path=/admin #actuator暴露接口的前綴
management.security.enabled=true #actuator是否需要安全保證
endpoints.metrics.sensitive=false #actuator的metrics接口是否需要安全保證
endpoints.metrics.enabled=true
endpoints.health.sensitive=false #actuator的health接口是否需要安全保證
endpoints.health.enabled=true