1. 程式人生 > >微服務學習筆記--使用Spring Boot Actuator監控端點

微服務學習筆記--使用Spring Boot Actuator監控端點

目錄

前言

微服務的這種架構雖然解決了單體應用的一些劣勢,但它也面臨一些挑戰,比如對運維的要求更高了。一個微服務架構中可能有幾十個上百個應用構成,要保證這些應用都正常執行,相互協調是比較麻煩的事情,因此我們需要一個元件來對這些應用進行監控和管理。
spring-boot-starter-actuator 就是Spring Boot提供這個功能的模組。

示例

執行環境:

Spring Boot 2.0.3.RELEASE

1、引入依賴

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

2、啟動應用
重新啟動應用訪問 http://localhost:8000/actuator/health 會顯示如下資訊:

{
    status: "UP"
}

Actuator監控管理預設的訪問路徑是在 /actuator 下。在測試Spring Boot 1.5.9版本時是直接訪問端點路徑,不需要加 /actuator

配置

除了health端點外,Actuator還為我們提供了很多端點,有些可以直接訪問,有些需要授權或通過配置才能訪問。

端點列表

端點 描述
actuator 為其他端點提供基於超媒體的“發現頁面”。要求Spring HATEOAS在類路徑上
auditevents 公開當前應用程式的稽核事件資訊
autoconfig 顯示自動配置報告,顯示所有自動配置候選項以及它們“未被”應用的原因
beans 顯示應用程式中所有Spring bean的完整列表
configprops 顯示所有配置資訊。
dump 列印執行緒棧
env 檢視所以環境變數
health 顯示應用程式執行狀況資訊
info
顯示應用資訊
loggers 顯示和修改應用程式中記錄器的配置
liquibase 顯示已應用的任何Liquibase資料庫遷移
metrics 顯示當前應用程式的“指標”資訊
mappings 顯示所有@RequestMapping路徑的整理列表
shutdown 允許應用程式正常關閉(預設情況下不啟用)
trace 顯示跟蹤資訊(預設情況下是最近的100個HTTP請求

Actuator配置

自定義預設路徑

 management.endpoints.web.base-path = /application

修改後訪問端點的預設路徑不再是 /actuator 而是 /application

自定義訪問埠號

 management.server.port= 8012

修改後我們檢視Actuator需要修改成8012埠進行訪問,如http://localhost:8012/actuator/health

關閉驗證

 management.security.enabled= false

預設情況下只開放了healthinfo 埠,關閉驗證後,其它的也可以訪問了,但不安全,最好新增 security 驗證

控制端點是否開放

 management.endpoints.web.exposure.include= 'info'

表示只暴露info埠,如新增其它埠使用 , 分隔,暴露所有埠使用 *

埠屬性配置

 management.endpoint.埠名.屬性=

management.endpoint.health.show-details= always 表示顯示 health埠的詳細資訊,大多數埠可以這樣配置。

整合Spring Security

監控端點的很多資訊住信比較隱私,不能讓沒有許可權的人隨意檢視,因此可以新增Srping Security進行控制。
新增依賴

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

配置Security

spring:
  security:
    user:
      name: user
      password: 123

配置security後,訪問埠需要進行登陸驗證。

總結