02.26 springboot admin在consul中的應用

眾所周知springboot admin是springboot服務的監控框架,有關的文章也不少,但是大多集中在springboot應用及和springcloud eureka的結合上,今天重點介紹springboot admin在consul微服務中的應用。

springboot admin可以非常方便註冊到consul並直接獲取註冊到consul中的全部微服務,從而獲取這些微服務的actuator,以此來對這些微服務的狀態進行監控,下面就相關的配置方法逐步介紹:

基於admin的springboot starter編寫admin server

1. 引入依賴包

<code><dependencies>        <dependency>            <groupid>de.codecentric/<groupid>            <artifactid>spring-boot-admin-starter-server/<artifactid>            <version>${spring-boot-admin.version}/<version>        /<dependency>    /<dependencies>/<code>

備註:該工程作為consul微服務的子模塊,依賴consul框架,因此一些consul的springboot starter在其parent工程裡邊。

2. 在主類裡邊註解admin server

<code>package com.crazyice.accumulation.admin;import de.codecentric.boot.admin.server.config.EnableAdminServer;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication@EnableAdminServer@EnableDiscoveryClientpublic class Application {    public static void main(String[] args) {        SpringApplication.run( Application.class, args );    }}/<code>

3. 在consul配置中心配置,也可以將以下配置加入到application.yml中

<code>################### 以下配置到consul ###################spring: boot:  admin:   discovery:    ignored-services: consul,aliyun-*,baidu-*,juhe-api,syswinrpc-flink   ui:    title: 微服務監控    brand: 微服務監控#監控監控management:  health:    redis:      enabled: false    consul:      enabled: true    binders:      enabled: false  endpoints:    web:      exposure:        include: "*"  endpoint:    health:      show-details: always/<code> 

4. 配置通知郵箱

springboot admin server可以非常方便的將第三方郵箱集成進去,再通過郵件將監控的重要狀態變化通知到運維人員郵箱中,配置到application.yml中即可生效(這裡以QQ郵箱為例)。

<code>spring:  application:    name: @project.artifactId@  profiles:    active: dev  #郵箱配置  mail:    host: smtp.qq.com    protocol: smtp    username: [email protected]    default-encoding: UTF-8    #QQ郵箱的授權碼    password: jahsdjahsjfhjsfs    properties:      mail:        smtp:          auth: true          starttls:            enable: true            required: true        debug: false/<code>

打包成docker鏡像並運行

該服務運行後也是以微服務註冊到consul中,也一併納入到監控行列之中。

springboot admin在consul中的應用

springboot admin註冊到consul

監控效果


springboot admin在consul中的應用

admin監控效果圖

配置被監控springboot微服務

因為admin監控是基於actuator的,所以只需要按照監控指標要求配置每個微服務即可,也就是在consul的配置中心配置就可以生效。


springboot admin在consul中的應用

被監控微服務配置

特別注意

因為consul server和client節點也被註冊到consul中,admin缺失情況下也會監控這些節點服務的狀況,但是consul本身沒有實現actuator,所以要把這些節點的監控忽略掉,否則admin啟動後出異常。

admin server屬性配置說明


springboot admin在consul中的應用

配置說明

示範工程參考下文[《consul微服務治理中心採坑》](https://www.jianshu.com/p/f6d140f103bd)


分享到:


相關文章: