spring-boot-route(十八)spring-boot-adtuator監控應用

Spring Boot提供了良好的服務監控模塊,只須要經過簡單的配置即可以完成服務監控和管理。可是服務監控這塊內容每每是最容易被忽略的一塊內容,今天咱們一塊兒來學習一下使用spring-boot-actuator進行服務監控。spring-boot-actuator提供了監控端點,這些端點直接返回JSON字符串,經過這些端點能夠查詢服務運行情況,爲了防止端點直接暴露,通常狀況下會使用安全框架,如Spring Security來管理這些端點的安全性。html

一 經常使用的端點

端點地址 描述 默認啓用
auditevents 獲取當前應用暴露的審計事件信息
beans 獲取應用中全部的bean的完整關係列表
caches 獲取公開能夠用的緩存
conditions 獲取自動配置條件信息,記錄哪些自動配置條件經過和沒經過的緣由
configprops 獲取全部配置屬性,包括默認配置,顯示一個全部 @ConfigurationProperties 的整理列版本
env 獲取全部環境變量
flyway 獲取已應用的全部Flyway數據庫遷移信息,須要一個或多個 Flyway Bean
health 獲取應用程序健康指標(運行情況信息)
httptrace 獲取HTTP跟蹤信息(默認狀況下,最近100個HTTP請求-響應交換)。須要 HttpTraceRepository Bean
info 獲取應用程序信息
integrationgraph 顯示 Spring Integration 圖。須要依賴 spring-integration-core
loggers 顯示和修改應用程序中日誌的配置
liquibase 獲取應用的全部Liquibase數據庫遷移。須要一個或多個 Liquibase Bean
metrics 獲取系統度量指標信息
mappings 顯示全部@RequestMapping路徑的整理列表
scheduledtasks 顯示應用程序中的計劃任務
sessions 容許從Spring Session支持的會話存儲中檢索和刪除用戶會話。須要使用Spring Session的基於Servlet的Web應用程序
shutdown 關閉應用
threaddump 獲取系統線程轉儲信息

默認狀況下,除了shutdown,其餘端點都是啓動狀態。git

1.1 如何使用

在項目中引入spring-boot-actuator的依賴,就能夠正常使用了github

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

1.2 如何訪問

/actuator+端點地址

例如想要訪問health端點,則訪問http://ip:port/actuator/health;web

1.3 端點開啓/關閉

management:
  endpoint:
  	# 開啓shutdown端點
    shutdown:
      enabled: true

啓用/禁用全部端點redis

management:
  endpoints:
    enabled-by-default: true

1.4 端點暴露

默認狀況下,只有healthinfo暴露了http端口,這些端點支持經過httpJMX訪問,若是須要訪問具體的端點則須要配置暴露。spring

暴露http端點數據庫

management:
  endpoints:
    web:
      exposure:
        include: health,info

暴露JMX端點緩存

management:
  endpoints:
	jmx:
      exposure:
        include: health,info

二 經常使用端點解析

2.1 health

health包含的健康檢查項有DataSourceHealthIndicatorDiskSpaceHealthIndicatorMongoHealthIndicatorReidsHealthIndicatorCassandraHealthIndicator安全

關閉特定的檢查項配置以下,關閉redis檢查項:微信

management:
  health:
    redis:
      enabled: false

默認狀況下health只是簡單的展現了UPDOWN兩種狀態,若是想要看詳細信息,則須要配置

management:
  endpoint:
    health:
      show-details: always

2.2 metrics

metrics可使用帶PathVariable參數,參數爲具體的度量值,如查看cpu大小,http://localhost:8080/actuator/metrics/system.cpu.count;

2.3 info

info使用的時候須要在配置文件中自定義信息,自定義信息以info開頭。

例如在配置文件中增長以下內容:

info:
  person:
    name: Java旅途
    age: 18

訪問info端點顯示的是去掉info的一個JSON串:

person:
  name: Java旅途
  age: 18

Spring-Boot-acturator使用起來很方便,可是缺點也很明顯,就是沒有圖形化界面。使用起來也不是很友好,下一章中,咱們將使用有圖形化的Spring-Boot-Admin來進行服務監控。


本文示例代碼已上傳至github,點個star支持一下!

Spring Boot系列教程目錄

spring-boot-route(一)Controller接收參數的幾種方式

spring-boot-route(二)讀取配置文件的幾種方式

spring-boot-route(三)實現多文件上傳

spring-boot-route(四)全局異常處理

spring-boot-route(五)整合Swagger生成接口文檔

spring-boot-route(六)整合JApiDocs生成接口文檔

spring-boot-route(七)整合jdbcTemplate操做數據庫

spring-boot-route(八)整合mybatis操做數據庫

spring-boot-route(九)整合JPA操做數據庫

spring-boot-route(十)多數據源切換

spring-boot-route(十一)數據庫配置信息加密

spring-boot-route(十二)整合redis作爲緩存

spring-boot-route(十三)整合RabbitMQ

spring-boot-route(十四)整合Kafka

spring-boot-route(十五)整合RocketMQ

spring-boot-route(十六)使用logback生產日誌文件

spring-boot-route(十七)使用aop記錄操做日誌

spring-boot-route(十八)spring-boot-adtuator監控應用

spring-boot-route(十九)spring-boot-admin監控服務

spring-boot-route(二十)Spring Task實現簡單定時任務

spring-boot-route(二十一)quartz實現動態定時任務

spring-boot-route(二十二)實現郵件發送功能

spring-boot-route(二十三)開發微信公衆號

這個系列的文章都是工做中頻繁用到的知識,學完這個系列,應付平常開發綽綽有餘。若是還想了解其餘內容,掃面下方二維碼告訴我,我會進一步完善這個系列的文章!

相關文章
相關標籤/搜索