最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用

 更新時(shí)間:2021年01月28日 09:39:46   作者:南瓜慢說(shuō)  
這篇文章主要介紹了如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下。

1 簡(jiǎn)介

目前,微服務(wù)大行其道,各大小公司爭(zhēng)相學(xué)習(xí)模仿,把單體應(yīng)用拆得七零八落。服務(wù)多了,運(yùn)行的實(shí)例多了,給運(yùn)維人員的壓力就更大了。如果有十幾個(gè)應(yīng)用,單單做Health Check就已經(jīng)夠費(fèi)時(shí)間的了。聰明的Springboot提供了Actuator接口,可以非常好獲得應(yīng)用的內(nèi)部信息,然而針對(duì)數(shù)量龐大的服務(wù)卻無(wú)能為力。

得益于開(kāi)源社區(qū)的力量,我們有了Springboot Admin。它能對(duì)注冊(cè)于服務(wù)發(fā)現(xiàn)的所有應(yīng)用監(jiān)控起來(lái),功能包括健康檢查、JVM內(nèi)存、INFO信息、獲得線程棧和堆棧信息、提醒(郵件、Slack、釘釘、自定義...)等??傊峁┝朔浅XS富的監(jiān)控功能,減輕運(yùn)維人員的工作任務(wù)。

目前Springboot Admin(后面簡(jiǎn)稱SBA)的最新版本為2.2.0,本文演示將使用該版本。

2 兩種監(jiān)控模式

使用SBA監(jiān)控Client有兩種模式,一種是在Client端引入spring-boot-admin-starter-client依賴,配置好Server的地址信息就可以了。另一種模式是將所有Client端注冊(cè)到服務(wù)發(fā)現(xiàn)(Eureka)組件中去,同時(shí)把Server端也注冊(cè),這樣Server端就可以監(jiān)控所有Client端了。

第二種模式是更方便的,不用對(duì)Client都添加依賴,后面的例子使用第二種模式。

服務(wù)端需要添加SBA的依賴和Eureka Client的依賴,如下:

<dependencies>
 <dependency>
 <groupId>de.codecentric</groupId>
 <artifactId>spring-boot-admin-starter-server</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>
</dependencies>

配置文件配置信息如下:

server.port=9000
spring.application.name=admin-monitor-service
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true

啟動(dòng)后就可以監(jiān)控微服務(wù)了(當(dāng)然需要Eureka和其它Client也啟動(dòng)并注冊(cè)),效果圖如下:

上圖顯示共有四個(gè)應(yīng)用受到監(jiān)控:

有一個(gè)ADMIN-MONITOR-SERVICE,即SBA本身;

有兩個(gè)DATA-SERVICE,用于數(shù)據(jù)庫(kù)操作的服務(wù);

有一個(gè)GATEWAY,是網(wǎng)關(guān)服務(wù),即Zuul。

能看到服務(wù)的名字,還能看到其版本號(hào)。

3 保護(hù)你的SBA

3.1 保護(hù)Server

現(xiàn)在SBA啟動(dòng)后直接輸入地址就可以訪問(wèn),不需要密碼登陸,這顯然是不安全的。SBA本質(zhì)也是一個(gè)Springboot的Web應(yīng)用,可以用Spring Security來(lái)做安全和權(quán)限控制。

添加Spring Security依賴如下:

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

配置用戶和密碼:

spring.security.user.name=admin
spring.security.user.password=admin

重啟應(yīng)用后,就需要登陸密碼才能訪問(wèn)了,如下:

實(shí)際上Spring Security遠(yuǎn)比這強(qiáng)大,我們可以通過(guò)配置把更敏感的信息保護(hù)起來(lái),如HeamDump文件的獲取,日志級(jí)別的修改等。

注意:即使做了上面的措施,也無(wú)法保證Server的安全。要想更安全地使用SBA,可以通過(guò)添加SSL,使它運(yùn)行在https之上。

3.2 保護(hù)Client

目前我們把Client的所有Endpoints都暴露出來(lái),這也是非常危險(xiǎn)的,我們可以有選擇的暴露需要的信息。另外,我們還可以為Client設(shè)置賬戶密碼保護(hù),只有擁有了正確的賬戶密碼,Server端才可以獲得監(jiān)控權(quán)限。

4 監(jiān)控功能

SBA為我們提供豐富的監(jiān)控功能,我們選擇幾項(xiàng)展示一下。

4.1 健康檢查與細(xì)節(jié)查看

SBA會(huì)監(jiān)控服務(wù)是否健康,包括應(yīng)用及應(yīng)用的組件,如數(shù)據(jù)庫(kù)連接等。

  • INFO信息

圖上還有info信息,這個(gè)是自定義配置的,非常方便,如配置代碼的版本號(hào)等。

info.author=Larry Deng
info.version=1.0.3
  • Beans

可以查看所有的beans信息。

  • Configuration Properties

查看目前應(yīng)用使用的配置信息。

  • Scheduled Tasks

查看正在使用的定時(shí)調(diào)度任務(wù)。

4.2 日志Loggers

展示了當(dāng)前的日志級(jí)別,更強(qiáng)大的是,它可以實(shí)時(shí)調(diào)整日志級(jí)別,而不用去改log4j2配置文件,也不用重啟。在有問(wèn)題需要更詳細(xì)的日志的時(shí)候,非常方便。

4.3 JVM信息(線程與內(nèi)存)

可以實(shí)時(shí)地查看每個(gè)線程的狀態(tài),并且能下載Thread Dump文件,方便有故障的時(shí)候分析。同樣,還能下載Heap Dump文件,在占用內(nèi)存居高不下,還不能GC時(shí),可以用來(lái)分析。

4.4 其它

Mappings能查看Endpoints的路徑和方法及返回類型等。

Caches可以查看應(yīng)用所使用的緩存,并能操作,如清空緩存。

5 強(qiáng)大的提醒功能

雖然SBA提供了強(qiáng)大的監(jiān)控功能,但要人工一直盯著屏幕就太低效了。為此,SBA提供了強(qiáng)大的提醒功能,能夠在發(fā)生服務(wù)狀態(tài)變更的時(shí)候發(fā)出告警。支持的提醒功能有:

  • Email
  • PagerDuty
  • OpsGenie
  • Hipchat
  • Slack
  • Let's Chat
  • Telegram

等。

同時(shí)還支持自定義,這樣可以整合更豐富的提醒,如短信、電話等。

5.1 郵件提醒

為了不讓篇幅過(guò)大,下面只展示一下郵件提醒功能的使用,其它可參考用戶手冊(cè)。

添加郵件依賴:

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

配置參數(shù):

spring.mail.host=smtp.example.com
spring.mail.username=smtp_user
spring.mail.password=smtp_password
spring.boot.admin.notify.mail.to=admin@example.com

郵件提醒其它配置項(xiàng):

5.2 自定義提醒

自定義提醒很簡(jiǎn)單,只要實(shí)現(xiàn)Notifier接口就行了,建議直接繼承AbstractEventNotifier 或AbstractStatusChangeNotifier這兩個(gè)類。邏輯在方法doNotify中實(shí)現(xiàn)。

public class CustomNotifier extends AbstractEventNotifier {
 private static final Logger LOGGER = LoggerFactory.getLogger(LoggingNotifier.class);

 public CustomNotifier(InstanceRepository repository) {
 super(repository);
 }

 @Override
 protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
 return Mono.fromRunnable(() -> {
  if (event instanceof InstanceStatusChangedEvent) {
  LOGGER.info("Instance {} ({}) is {}", instance.getRegistration().getName(), event.getInstance(),
   ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus());
  }
  else {
  LOGGER.info("Instance {} ({}) {}", instance.getRegistration().getName(), event.getInstance(),
   event.getType());
  }
 });
 }
}

6 總結(jié)

SBA非常強(qiáng)大,一篇文章難以完備,大家可以參考用戶手冊(cè)。

另外,服務(wù)發(fā)現(xiàn)不一定要使用Eureka,如Nacos也是支持的。只使用SBA也是不夠的,對(duì)于監(jiān)控日志,可以使用ELK,這是題外話了,以后有空再整理吧。

以上就是如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用的詳細(xì)內(nèi)容,更多關(guān)于Springboot Admin監(jiān)控微服務(wù)應(yīng)用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot日程管理Quartz與定時(shí)任務(wù)Task實(shí)現(xiàn)詳解

    SpringBoot日程管理Quartz與定時(shí)任務(wù)Task實(shí)現(xiàn)詳解

    定時(shí)任務(wù)是企業(yè)級(jí)開(kāi)發(fā)中必不可少的組成部分,諸如長(zhǎng)周期業(yè)務(wù)數(shù)據(jù)的計(jì)算,例如年度報(bào)表,諸如系統(tǒng)臟數(shù)據(jù)的處理,再比如系統(tǒng)性能監(jiān)控報(bào)告,還有搶購(gòu)類活動(dòng)的商品上架,這些都離不開(kāi)定時(shí)任務(wù)。本節(jié)將介紹兩種不同的定時(shí)任務(wù)技術(shù)
    2022-09-09
  • Java后臺(tái)接口開(kāi)發(fā)初步實(shí)戰(zhàn)教程

    Java后臺(tái)接口開(kāi)發(fā)初步實(shí)戰(zhàn)教程

    下面小編就為大家分享一篇 Java后臺(tái)接口開(kāi)發(fā)初步實(shí)戰(zhàn)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 如何使用RequestHeaders添加自定義參數(shù)

    如何使用RequestHeaders添加自定義參數(shù)

    這篇文章主要介紹了使用RequestHeaders添加自定義參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-02-02
  • SpringCloud gateway如何修改返回?cái)?shù)據(jù)

    SpringCloud gateway如何修改返回?cái)?shù)據(jù)

    這篇文章主要介紹了SpringCloud gateway如何修改返回?cái)?shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • spring boot輸入數(shù)據(jù)校驗(yàn)(validation)的實(shí)現(xiàn)過(guò)程

    spring boot輸入數(shù)據(jù)校驗(yàn)(validation)的實(shí)現(xiàn)過(guò)程

    web項(xiàng)目中,用戶的輸入總是被假定不安全不正確的,在被處理前需要做校驗(yàn)。本文介紹在spring boot項(xiàng)目中實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的過(guò)程,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-09-09
  • struts2框架入門

    struts2框架入門

    本文主要介紹了struts2框架的基礎(chǔ)入門知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • 詳解Java中Checked Exception與Runtime Exception 的區(qū)別

    詳解Java中Checked Exception與Runtime Exception 的區(qū)別

    這篇文章主要介紹了詳解Java中Checked Exception與Runtime Exception 的區(qū)別的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • Mybatis-Plus如何配置分頁(yè)對(duì)象

    Mybatis-Plus如何配置分頁(yè)對(duì)象

    本文主要介紹了Mybatis-Plus如何配置分頁(yè)對(duì)象,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java 中的 BufferedReader 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java 中的 BufferedReader 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    BufferedReader 是緩沖字符輸入流。它繼承于Reader。接下來(lái)通過(guò)本文給大家介紹BufferedReader的相關(guān)知識(shí),需要的朋友參考下吧
    2017-05-05
  • java支付寶即時(shí)到帳提交訂單功能

    java支付寶即時(shí)到帳提交訂單功能

    這篇文章主要為大家詳細(xì)介紹了java支付寶即時(shí)到帳提交訂單功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評(píng)論

金沙县| 云南省| 三都| 阿克陶县| 瑞金市| 昔阳县| 黔江区| 道真| 宁海县| 宣威市| 屏东县| 永春县| 桦甸市| 洪泽县| 基隆市| 恩平市| 庆元县| 大丰市| 堆龙德庆县| 石棉县| 睢宁县| 清镇市| 厦门市| 开鲁县| 宜宾市| 荆州市| 鄯善县| 彭水| 无为县| 奉节县| 诸暨市| 那坡县| 阿合奇县| 霍山县| 岑溪市| 绥芬河市| 蒲江县| 浪卡子县| 满洲里市| 广河县| 赣州市|