亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

一文搞懂并學(xué)會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件的詳細教程

瀏覽:13日期:2023-08-16 13:46:27

目錄閑言碎語:背景Actuator介紹Rest方法來查看Actuatorpom.xml引入Actuator依賴配置application.yml運行項目Actuator配合SpringBootSecurity配置application.xml運行項目配置關(guān)閉項目API端口配置application.yml命令行執(zhí)行post關(guān)閉指令附:Actuator端口信息附:SpringBoot自帶的健康指示器贈言

閑言碎語:

  最近刷抖音,看到了星爺?shù)暮芏嚯娪埃袊@星爺給后世留下了很多的經(jīng)典作品,我就在想,作為一名程序員,如何留下影響后人的經(jīng)典傳世之作呢,不經(jīng)意間看到了一篇大佬的文章,已經(jīng)近百萬人瀏覽,這就是對后人的一種影響,然后就有了寫這篇博客的沖動,結(jié)合最近在學(xué)習(xí)的SpringCloud,對每一個組件的原理和使用都進行深度的學(xué)習(xí)和理解,然后將心得寫在博客里,如果有不對的地方還請大佬進行指正,小弟不勝感激

背景

  微服務(wù)之后,系統(tǒng)結(jié)構(gòu)拆分隨著業(yè)務(wù)發(fā)展越來越微型化,也意味著節(jié)點會呈現(xiàn)幾何數(shù)量級增長。每個一個節(jié)點都是系統(tǒng)組成部分,如何保持如此多節(jié)點的可用性是一件非常有挑戰(zhàn)的工作。  全方位監(jiān)控變得越來越重要,當我們遇到bug時,總是希望可以看到更多信息,因此一般我們選用的服務(wù)開發(fā)框架都需要有方便又強大的監(jiān)控功能支持。  Spring Boot Actuator便可以幫助我們?nèi)矫姹O(jiān)控應(yīng)用節(jié)點.  比如健康檢查、審計、統(tǒng)計、HTTP追蹤等。我們可以通過JMX或者HTTP endpoints來獲得。spring Boot Admin配合下可以進行頁面展示,也和可以與其它外部應(yīng)用系統(tǒng)系統(tǒng)整合。

Actuator介紹

  Actuator是SpringBoot的一個非常重要的功能,Actuator 為開發(fā)人員提供了SpringBoot運行狀態(tài)信息,通過Actuator可以查看程序的運行狀態(tài)的信息。同時它提供了運行狀態(tài)的監(jiān)控功能,Actuator的監(jiān)控功能可以通過Rest、遠程shell、JMX方式獲得,首先我們介紹Rest方法來查看Actuator的節(jié)點方法,這種是十分簡單的方法。  Spring Boot Actuator 的關(guān)鍵特性是在應(yīng)用程序里提供眾多的Web節(jié)點,通過這些節(jié)點可以實時地了解應(yīng)用程序的運行狀況。有了Actuator,你可以知道Bean在Spring應(yīng)用程序上下文里是如何組裝在一 起的,并且可以獲取環(huán)境屬性的信息和運行時度量信息等。

Rest方法來查看Actuator

pom.xml引入Actuator依賴

首先在pom.xml種引入spring-boot-starter-actuator依賴,代碼如下:

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

配置application.yml

  在application.yml中配置management.port和management.security.enabled,這倆是向外暴露actuator的端口和actuator的非安全驗證方式。  在這里指定actuator對外暴露的RestApi端口為9091,Spring1.5x默認采用了Actuator安全驗證,為了能夠在瀏覽器上展示效果,不做安全驗證,將其設(shè)置為false。

management: server: port: 9091 # 對外暴露API接口端口為9001 servlet: context-path: /sys security: enabled: false # 這是為了在瀏覽器上展示效果 所以設(shè)置為false endpoints: web: exposure: include: '*' # include表示需要暴露的endpoint,配置時使用“,”隔開,你也可以用*讓所有endpoint暴露出來 endpoint: health: enabled: true show-details: always # health endpoint只展示了簡單的UP和DOWN狀態(tài)。為了獲得健康檢查中所有指標的詳細信息,可以設(shè)置其展示詳細信息。 shutdown: enabled: true

  management.endpoint.health.show-details默認值為never,除了always之外還有when-authorized。  exclude表示在暴露endpoint時,排除掉哪些,同樣使用“,”隔開,例如management.endpoints.web.exposure.exclude=info # 排除info

  注意:如果不指定會默認采用程序的啟動端口,這樣做的目的就是將監(jiān)控端口與項目端口進行區(qū)分。  不配置監(jiān)控端口:localhost:8080/actuator/  配置監(jiān)控端口:localhost:9091/sys/actuator/  特別注意:在2.0之后的版本訪問地址必須要加上/actuator/才可以

運行項目

  就可以看到詳細的信息了,以health為例:

請求路徑:http://localhost:9091/sys/actuator/health{status: 'UP',components: {diskSpace: {status: 'UP',details: {total: 161062318080,free: 103786217472,threshold: 10485760,exists: true}},ping: {status: 'UP'} }}

Actuator配合SpringBootSecurity

  actuator可以配合security進行權(quán)限控制,從而保護endpint。  首先在pom.xml中引入SpringBootSecurity依賴:

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

配置application.xml

  添加:

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

  這樣在我們訪問localhost:9091/sys/actuator/的時候就會自動跳轉(zhuǎn)到安全登錄頁面,提示我們輸入用戶名和密碼。

security: user: name: admin password: admin

運行項目

  我們的請求路徑由http://localhost:9091/sys/actuator/自動變成了http://localhost:9091/sys/login,輸入配置好的用戶名和密碼,就可以看到對應(yīng)的各種Api端口信息。

一文搞懂并學(xué)會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件的詳細教程

配置關(guān)閉項目API端口

配置application.yml

  在endpoint后配置shutdown端口為true,默認情況下系統(tǒng)是關(guān)閉該端口,防止他人的惡意關(guān)閉項目,是出于對系統(tǒng)的一種保護行為。

endpoint: health: enabled: true show-details: always shutdown: enabled: true

注意:在這里我們利用cmd窗口以命令行的形式來模擬post請求,如果在瀏覽器直接請求的話會報錯,后臺會提示Request method ‘GET’ not supported。也就是說不支持get請求,我們需要用post。

命令行執(zhí)行post關(guān)閉指令

  在命令行中輸入:

$ curl -X POST localhost:9091/actuator/shutdown

  然后命令行提示:

{“message”:“Shutting down, bye…”}

  項目就處于關(guān)閉狀態(tài)了!

附:Actuator端口信息

類型 Api端口 描述 get auditevents 顯示應(yīng)用暴露的審計事件 (比如認證進入、訂單失敗) get info 顯示應(yīng)用的基本信息 get health 顯示應(yīng)用的健康狀態(tài) get metrics 顯示應(yīng)用多樣的度量信息 get loggers 顯示和修改配置的loggers get logfile 返回log file中的內(nèi)容(如果logging.file或者logging.path被設(shè)置) get httptrace 顯示Liquibase 數(shù)據(jù)庫遷移的纖細信息 get env 顯示當前的環(huán)境特性 get flyway 顯示數(shù)據(jù)庫遷移路徑的詳細信息 get liquidbase 顯示數(shù)據(jù)庫遷移路徑的詳細信息 post shutdown 讓你逐步關(guān)閉應(yīng)用 get mappings 顯示所有的@RequestMapping路徑 get scheduledtasks 顯示應(yīng)用中的調(diào)度任務(wù) get threaddump 執(zhí)行一個線程dump get heapdump 返回一個GZip壓縮的JVM堆dump

附:SpringBoot自帶的健康指示器

指示器 鍵 內(nèi)容 ApplicationHealthIndicator none 永遠為UP DataSourceHealthIndicator db 如果數(shù)據(jù)庫能連上,則為up,否則為down DiskSpaceHealthIndicator diskSpace 如果可用空間大于閾值,則為up和可用磁盤空間,如果空間不足,則為down JmsHealthIndicator jms 如果能連上消息代理,則為up,否則為down MailHealthIndicator mail 如果能連上郵件服務(wù)器,則為up和郵件主機和端口,否則為down MangoHealthIndicator mongo 如果能連上MangoDB服務(wù)器,則為up和MongoDB服務(wù)器版本,否則為down RabbitHealthIndicator rabbit 如果能連上RabbitMQ服務(wù)器,則為up和MongoDB服務(wù)器版本,否則為down RedisHealthIndicator redis 如果能連上Redis服務(wù)器,則為up和服務(wù)器版本,否則為down SolrHealthIndicator solr 如果能連上Solr服務(wù)器,則為up和服務(wù)器版本,否則為down

總結(jié)

到此這篇關(guān)于一文搞懂并學(xué)會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件的文章就介紹到這了,更多相關(guān)spring boot 運行狀態(tài)監(jiān)控內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧美一区二区三区视频在线观看 | 美国特级黄 色大片 | 五月桃花网婷婷亚洲综合 | 国产成人一级片 | 日韩精品在线观看视频 | 日本一级爽快片淫片高清 | 亚洲黄色片在线观看 | 欧美成人h精品网站 | 成人精品一区二区久久 | 亚洲特黄 | 国产综合成人亚洲区 | 亚洲午夜精品一级在线 | 精品外国呦系列在线观看 | 在线国产你懂的 | 亚洲精品一区二区三区www | 九九九热在线精品免费全部 | 国产91av视频在线观看 | 黄色欧美视频 | 极品国产高颜值露脸在线 | 720lu牛牛刺激自拍视频 | 麻豆回家视频区一区二 | 精品视频h| 中文字幕无线码欧美成人 | 日本一级特级毛片视频 | 精品一区二区三区高清免费不卡 | 日本视频中文字幕一区二区 | japanesefree夫妇互换 | 7799国产精品久久久久99 | 韩国免费播放一级毛片 | 免费国产视频 | 国产成人爱情动作片在线观看 | 亚洲在线观看一区 | 日产一区二区三区精品视频 | 一级一毛片 | 国产大学生毛片一级高清 | 婷婷丁香啪啪 | 国产欧美亚洲精品第二区首页 | 久久国产亚洲精品麻豆 | 91久久老司机福利精品网 | 成人国产精品免费软件 | 成人看片在线观看 |