當前位置:
首頁 > 知識 > 使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控

由於最近在做監控方面的工作,因此也讀了不少相關的經驗分享。其中有這樣一篇文章總結了一些基於Spring Boot的監控方案,因此翻譯了一下,希望可以對大家有所幫助。


原文:Near real-time monitoring charts with Spring Boot Actuator, Jolokia and Grafana


Spring Boot Actuator通過/metrics端點,以開箱即用的方式為應用程序的性能指標與響應統計提供了一個非常友好的監控方式。


由於在集群化的彈性環境中,應用程序的節點可以增長、擴展,並由非常大量的應用實例所組成。對於孤立節點的監控可能即費力又沒有什麼實際效果。所以,使用基於時間序列的數據聚合工具將獲得更好的效果。


本文的目標在於找出一種僅需要通過工具和配置的方式就能實現的解決方案,來對Spring Boot Metrics實現基於時間序列的監控。

像NewRelic, AppDynamics或DataDog這些APM系統都能很好地完成這樣的任務,它們通過使用JVM和位元組碼工具來生成自己的指標、分析工具和相關事務。也可以通過使用@Timed注釋方法來實現。但是,這些方法將忽略所有Spring Boot Actuator庫所提供的可用資源。另外,使用這些方法還有一個與保留數據相關的問題,它們對於短時間窗口內的監控是相對模糊的。

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控



spring-boot-admin 可以作為另外一個備選方案,因為它可以連接到Spring Boot的實例、並且可以聚合節點等。但是, /metrics 端點並不是根據時間軸來進行監控的,同時在不同節點上的相同應用模塊(水平擴展)也沒有得到聚合。這意味著您將面對這兩種情況:沒有時間序列的監控數據、只有對孤立節點的監控數據快照。

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控


使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控



jconsole和visualvm可能是另外一種選擇,它們通過RMI直接連接到JMX節點。Actuator存儲來自JMX的MBean內的Metrics數據。另外,通過使用 Jolokia,MBeans以RESTful HTTP端點的方式暴露,/jolokia。所以,相同的信息可以通過兩個端點來獲取:JMX MBean Metrics和Rest HTTP Jolokia端點。然而,這種方式存在同樣的問題,它們直接連接到集群環境中的單個節點,另外還伴隨著痛苦的老式RMI協議。

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控



繼續前進,我嘗試了一些可能可以解決這些問題的現代化運維工具:


Prometheus: 由SoundCloud編寫,它存儲一系列的監控數據並賦予漂亮的圖標展現。Prometheus Gauges和Actuator Metrics並不完全兼容,所以人們寫了 一個數據轉換器。你也可以配置Prometheus來收集JMX數據。


Sensu: 作為Nagios和Zabbix的現代化替代品,它有一個插件可以直接連接到Spring Boot,但是這個倉庫最近已經不太更新了,所以我決定放棄它。


StatsD: Spring Boot有一篇文章是關於自定義導出數據給StatsD。然而,你除了要為Spring Boot應用安裝StatsD實例之外,還不得不實現一些存根來讓它工作起來。


Graphite: You got to be a hero to install and get Graphite running. If you get there, you can configure it along StatsD to get metrics working in a chart.


OpenTSDB: Spring Boot有一篇文章關於連接數據到OpenTSBD. 然而,這種方式與StatsD類似,你必須實現和維護自定義的代碼來讓它工作起來。另外,OpenTSDB沒有開箱即用的圖形可視化工具。


JMXTrans: 可以用來提取數據並發送到其他的監控工具,它也需要具體的實現。

Ganglia: 也是基於JVM上的工具,記錄所有Actuator資源。與之前所說的APM有相同問題。


經過一番研究,我發現了一個更好的解決方案:通過InfluxDB 和Telegraf實現,零編碼,只需要通過一些正確的配置。


Jolokia: Spring Boot 認可使用Jolokia來通過HTTP導出export JMX數據。你只需要在工程類路徑中增加一些依賴項,一切都是開箱即用的。不需要任何額外的實現。


Telegraf: Telegraf支持通過整合Jolokia來集成JMX數據的收集。它有一個預製的輸入插件,它是開箱即用的。不需要任何額外的實現。只需要做一些配置即可。


InfluxDB: InfluxDB通過 輸出插件從Telegraf接收指標數據,它是開箱即用的,不需要任何額外的實現。


Grafana: Grafana通過連接InfluxDB作為數據源來渲染圖標。它是開箱即用的,不需要額外的實現。


簡而言之,配置所有這些東西都非常的簡單。

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控


使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控


使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控



長按指紋


一鍵關注

使用Spring Boot Actuator、Jolokia和Grafana實現准實時監控



活動推薦

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 名人軼事 的精彩文章:

TAG:名人軼事 |

您可能感興趣

4K挑戰實時監控 西部數據亮劍Purple microSD移動卡
App Store精選軟體:SYS Pro-系統數據實時監測工具
歐姆龍Project Zero手錶獲FDA審批 24小時監控血壓不是夢
首發 | 即時監測激光雷達數據,Cepton發布Vista-Edge激光雷達評估套件
Nat Commun:新方法可實時監測微量血液中的單分子
案例五:shell腳本實現定時監控http服務的運行狀態
單線程實現同時監聽多個埠(windows平台c++代碼)
明星| 美國警方公布XXXTentacion遭遇搶劫時監視器畫面!
NodeQuery實時監控伺服器和網站穩定性及在線狀態信息工具
實時監測心率,萬魔iBFree 2智能藍牙耳機讓運動更科學
在遊戲中實時監測電腦性能,AIDA64、RTSS的使用方法
大數據房產投資平台WeHome獲數千萬Pre-A輪融資,合作4家中美房產投資領域律所,時監測美國市場2100+萬套房源
Sunnee老闆訴苦:粉絲24小時監督我,每天有20萬人罵我
送父母最好的禮物,AMAZFIT米動健康手環1S實時監測心臟
AMAZFIT 米動健康手環 1S:一款可以全天候實時監測心電圖的手環
「雙十一」24小時監測報告:敦煌網To B出口中國老大,To C第三
小米有品「車蘿蔔智能HUD」評測,自動光感,OBD實時監測
《匿名者 Anon》2030年人類被24小時監控,這部科幻片細思極恐!
AMOLED大彩屏實時監測心率 榮耀手環4明日首發
iOS 12新功能:可以支持實時監聽隔壁房間談話