這篇文章主要講解了Springboot添加jvm監(jiān)控實現(xiàn)數(shù)據(jù)可視化的方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、鞏留網(wǎng)站維護、網(wǎng)站推廣。
1.簡介
最近越發(fā)覺得,任何一個系統(tǒng)上線,運維監(jiān)控都太重要了。本文介紹Prometheus + Grafana的方法監(jiān)控Springboot 2.X,實現(xiàn)美觀漂亮的數(shù)據(jù)可視化。
2.添加監(jiān)控
Spring-boot-actuator module 可幫助您在將應用程序投入生產(chǎn)時監(jiān)視和管理應用程序。您可以選擇使用 HTTP 端點或 JMX 來管理和監(jiān)控您的應用程序。Auditing, health, and metrics gathering 也可以自動應用于您的應用程序。引入依賴如下:
org.springframework.boot spring-boot-starter-actuator io.micrometer micrometer-registry-prometheus
對于Springboot,要開啟Actuator,并打開對應的Endpoint:
#prometheus配置 info:alen:alenmanagement:endpoints:web:base-path:/actuatorexposure:include:"*"
啟動Springboot后,可以通過下面URL看能不能正確獲取到監(jiān)控數(shù)據(jù):localhost/actuator/prometheus 獲取數(shù)據(jù)成功,說明Springboot能正常提供監(jiān)控數(shù)據(jù)。
主要的端點
3.配置Prometheus
Prometheus 是 Cloud Native Computing Foundation 項目之一,是一個系統(tǒng)和服務監(jiān)控系統(tǒng)。它按給定的時間間隔從配置的目標收集指標,評估規(guī)則表達式,顯示結(jié)果,并且如果觀察到某些條件為真,則可觸發(fā)警報。
特性
• 多維度 數(shù)據(jù)模型(由度量名稱和鍵/值維度集定義的時間序列)
• 靈活的查詢語言 來利用這種維度
• 不依賴分布式存儲;單個服務器節(jié)點是自治的
• 時間序列采集通過HTTP上的 pull model 發(fā)生
• 推送時間序列 通過中間網(wǎng)關(guān)得到支持
• 通過 服務發(fā)現(xiàn) 或 靜態(tài)配置 來發(fā)現(xiàn)目標
• 多種模式的 圖形和儀表盤支持
• 支持分級和水平 federation
通過 Prometheus 來抓取數(shù)據(jù) Prometheus 會按照配置的時間周期去 pull 暴露的端點(/actuator/prometheus)中的指標數(shù)據(jù) prometheus.yml 配置
- job_name: 'actuator-ruoyi' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. metrics_path: '/actuator/prometheus' static_configs: - targets: ['10.42.95.4']
重然后再啟動prometheus,訪問prometheus網(wǎng)址,查看targets啟動是否正常如下圖
4.Grafana添加監(jiān)控模版
默認啟動后Grafana地址為:http://localhost:3000/,登錄用戶名和密碼是admin/admin,import配置grafana id = 4701
最終的效果是這樣子的,如下圖
5.備注
問題:添加上訪問不了Endpoint?解決方案:原因是項目用的shiro,需要添加過濾
filterChainDefinitionMap.put("/actuator/**","anon");
問題二:
/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Broken pipe
解決方法:導致這個錯誤的原因是 project.artifactId 可能包含了大寫。改成小寫就行
看完上述內(nèi)容,是不是對Springboot添加jvm監(jiān)控實現(xiàn)數(shù)據(jù)可視化的方法有進一步的了解,如果還想學習更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。