javascript
springboot监控服务器信息,面试官:聊一聊SpringBoot服务监控机制
目錄
前言
任何一個服務如果沒有監控,那就是兩眼一抹黑,無法知道當前服務的運行情況,也就無法對可能出現的異常狀況進行很好的處理,所以對任意一個服務來說,監控都是必不可少的。
就目前而言,大部分微服務應用都是基于 SpringBoot 來構建,所以了解 SpringBoot 的監控特性是非常有必要的,而 SpringBoot 也提供了一些特性來幫助我們監控應用。
本文基于 SpringBoot 2.3.1.RELEASE 版本演示。
SpringBoot 監控
SpringBoot 中的監控可以分為 HTTP 端點和 JMX 兩種方式來監控當前應用的運行狀況和指標收集
HTTP Endpoints 監控
執行器端點允許您監視應用程序并與之交互。SpringBoot 包括許多內置的端點,并允許我們添加自己的端點。可以通過 HTTP 或 JMX 啟用或禁用每個端點,并公開(使其可以遠程訪問)。每個端點都有一個唯一的 id,訪問時可以通過如下地址進行訪問:http:ip:port/{id}(SpringBoot 1.x ),而在 SpringBoot 2.x 版本中,默認新增了一個 /actuator 作為基本路,訪問地址則對應為 :http:ip:port/actuator/{id}。
使用 HTTP 監控非常簡單,在 SpringBoot 項目中,引入如下依賴:
org.springframework.boot
spring-boot-starter-actuator
默認就可以通過地址 http:localhost:8080/actuator/health,訪問之后得到如下結果:
SpringBoot 中提供了非常多的默認端點監控,但是出于安全考慮,默認情況下有些端點并不是開啟狀態,如 shutdown 端點就是默認關閉的。
內置端點
SpringBoot 中默認提供的常用內置端點如下:
端點 id
描述
auditevents
公開當前應用程序的審計事件信息,需要 AuditEventRepository Bean。
beans
展示程序中所有的 Bean。
caches
公開可用的緩存。
conditions
展示配置類或者自動裝配類中的條件,以及它們匹配或者不匹配的原因。
configprops
顯示所有 @ConfigurationProperties 中的配置屬性。
env
顯示 ConfigurableEnvironment 中的所有環境。
health
顯示應用程序運行狀況信息。
httptrace
顯示 HTTP 跟蹤信息(默認情況下統計最近 100 次請求),需要 HttpTraceRepository Bean。
info
顯示任意程序信息。
integrationgraph
顯示 Spring 集成圖,需要依賴 spring-integration-core。
loggers
展示和修改應用中的 loggers 配置。
metrics
展示當前應用監控指標的度量。
mappings
展示所有 @RequestMapping 路徑。
scheduledtasks
展示應用中的所有定時任務信息。
sessions
允許從 Spring 會話支持的會話存儲中檢索和刪除用戶會話。需要使用基于 Spring Session web應用程序。
shutdown
優雅的關閉程序,默認禁止了該端點的訪問。
雖然說這里的大部分端點都是默認開啟的,但是默認暴露(允許對外訪問)的只有 health 和 info 端點,所以如果需要允許端點對外暴露,可以通過如下配置(如果想要暴露所有的端點,則可以直接配置 "*" ):
management:
endpoints:
web:
exposure:
include: [health,info,mappings] //或者直接配置 "*"
另外,開啟或禁用某一個端點,也可以通過通過如下配置進行動態控制:
management.endpoint..enabled=true
接下來我們挑選幾個重點的端點來介紹一下。
health 端點
health 斷點默認只是展示當前應用健康信息,但是我
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的springboot监控服务器信息,面试官:聊一聊SpringBoot服务监控机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农行信用卡年费多少 想省钱的多刷卡
- 下一篇: chrome jsp 显示不正常_JSP