- Spring Boot Actuator 模塊提供了生產級別的功能,比如健康檢查,審計,指標收集,HTTP 跟蹤等,幫助我們監控和管理Spring Boot 應用
- 這個模塊是一個采集應用內部信息暴露給外部的模塊,上述的功能都可以通過HTTP 和 JMX 訪問
- 因為暴露內部信息的特性,Actuator 也可以和一些外部的應用監控系統整合(Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等)
- 在 Actuator 啟用的情況下,如果沒有做好相關權限控制,非法用戶可通過訪問默認的執行器端點(endpoints)來獲取應用系統中的監控信息
- 本文著重于介紹在開啟Actuator情況下,且服務有接入Prometheus、k8s健康檢查情況下配置的實踐
一、springboot 2.0
management:
endpoint:
env:
keys-to-sanitize: non
health:
show-details: always
endpoints:
web:
base-path: /
exposure:
include: health, prometheus # 開放/health、/prometheus接口
- 這種情況下僅將/health、/prometheus接口開放,用于Prometheus、k8s健康檢查
二、springboot 1.5
management:
security:
enabled: false
endpoints:
web:
base-path: /
endpoints:
# 禁用端點
enabled: false
beans:
enabled: false
# 開放/prometheus接口
prometheus:
enabled: true
# 開放/health接口
health:
enabled: true
- 這種情況下僅將/health、/prometheus接口開放,用于Prometheus、k8s健康檢查
- “management.security.enabled” 有部分教程建議設置為“true”,我這邊實踐的結果是,設置為true后,調用/prometheus接口會報“full authentication is required to access this resource”錯誤,無法正常獲取到信息
三、參考資料