免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Java Web應用服務器之一:Tomcat監控選型及實踐

2021-02-06    分類: 網站建設

監控選型

Tomcat Manager和Psi-probe是不錯的可視化監控工具,能夠很好地查看Tomcat狀態信息(比如單位時間請求數,線程狀態等)。在生產環境中,隨著Tomcat實例的不斷增加,維護不同實例上的Manager控制臺會顯得有些繁瑣,同時,為了與企業監控系統、運維儀表盤等結合,有必要選擇兼容性和適配性更好的監控工具。

如今,企業微服務的流行和CI/CD的強需求性,要求我們的服務在易于開發和維護的同時,具有伸縮性強、快速交付等特點。在此環境下,Tomcat+Prometheus+Grafana能夠很好的與企業已有架構適配,并能夠很好的與其他中間件服務監控整合到一起。Prometheus作為新一代的云原生監控系統,鼓勵用戶監控服務的內部狀態,讓用戶可以獲取服務和應用內部真正的運行狀態。

容器環境下Tomcat+Prometheus+Grafana簡圖如下:

在實際部署中,可以簡單分為如下幾個步驟:

1、下載jmx_prometheus_javaagent (https://github.com/prometheus/jmx_exporter),若為容器環境,可將jmx_prometheus_javaagent與Tomcat一起打進運行鏡像。

2、Tomcat啟動時,JAVA_OPTS增加Javaagent和Tomcat config.yaml (https://github.com/prometheus/jmx_exporter/blob/master/example_configs/Tomcat.yml )配置,例如:JAVA_OPTS=”-javaagent:/var/tomcat/jmx_prometheus_javaagent-0.3.1.jar=port:/vat/tomcat/conf/config.xml”(port為實際端口)。

3、Prometheus添加Tomcat的job_name。

監控指標梳理

在《SRE: Google運維解密》一書中指出,監控系統需要能夠有效的支持白盒監控和黑盒監控。通過白盒監控能夠了解其內部的實際運行狀態,通過對監控指標的觀察能夠預判可能出現的問題,從而對潛在的不確定因素進行優化。而黑盒監控,常見的如HTTP探針,TCP探針等,可以在系統或者服務在發生故障時能夠快速通知相關的人員進行處理。

監控的四個黃金指標可以在服務級別幫助我們更好地衡量終端用戶體驗、服務中斷、業務影響等層面的問題。主要關注以下四種類型的指標:錯誤,延遲,流量以及飽和度。

通過對黑盒、白盒監控的理解,結合監控的四個黃金指標,針對Tomcat的重要監控指標,可以從以下幾個方面進行考慮:

監控實踐

錯誤

錯誤監控關注的是當前應用或系統發生的錯誤請求。針對Tomcat錯誤監控,主要監控指標為Tomcat錯誤請求數及與請求總數之間的比例,這些多為顯式的錯誤。關于隱式的錯誤(比如狀態碼響應200,實際業務流程卻是失敗的),通常需要根據業務場景的不同,在服務中添加鉤子及業務邏輯監控來實現。

圖1:某Tomcat實例在1000+qps下請求數和錯誤數的比例

當然,我們也可以借助ELK等工具,對Tomcat上游代理或LB進行整體的錯誤狀態碼統計,方便我們更好的定位錯誤,以及在發生5xx錯誤時考慮如何“快速失敗”,來減少錯誤對系統性能帶來的影響。

圖2:通過Tomcat上游代理采集的狀態碼統計

延遲

延遲監控關注的是服務請求所需時間。針對Tomcat延遲監控,主要監控指標為Tomcat實例的Response time。同時,我們也可以采用黑盒監控中的HTTP語義探測來采集Tomcat對應

圖3:某產品線下多個Tomcat實例整體的response time匯總

圖4:通過Tomcat上游代理采集的平均請求時間和Tomcat平均響應時間

流量

流量監控關注的是當前系統或應用的流量,以便更好地衡量服務的承載能力。針對Tomcat流量監控,我們需要關注Tomcat實例發送和接收的流量。

圖5:某Tomcat實例發送和接收的流量

飽和度

飽和度監控關注的是系統或應用對資源的利用率,強調最能影響服務狀態的受限制的資源。

不同的系統或應用對飽和度監控的需求各不相同,但共性是在服務性能明顯下降時,起決定性的狀態指標。針對Tomcat飽和度監控,可以從堆內存、線程數、GC次數及耗時等方面出發,在告警發生前后,通過查看各個指標的變化曲線,快速定位問題原因。

Tomcat線程池

對于Tomcat線程池初始配置的采集,可以根據不同業務場景,不同實例的壓力,來進行調整,比如maxThreads、acceptCount等。

圖6:某Tomcat實例線程池相關的默認配置

JVM監控

對于Tomcat JVM的監控,通常我們需要關注堆內存的使用情況、GC的次數和耗時、以及對JVM線程數的監控。

JVM堆內存監控

Java Heap是JVM所管理的內存中***的一塊,被所有線程所共享,用來存放對象實例。因此,堆內存的使用情況至關重要。

圖7:某Tomcat實例堆內存的使用情況

  • GC次數和耗時

通過查看單位時間內GC次數和耗時,能夠讓我們針對不同的業務場景,選擇不同的垃圾回收器,從而進一步提高性能。

圖8:某Tomcat實例默認垃圾回收器總GC次數曲線

圖9:某Tomcat實例默認垃圾回收器總GC時間曲線

  • JVM線程數監控

JVM線程數的曲線統計,能夠讓我們更直觀的看到JVM線程當前的運行情況。

圖10:某Tomcat實例JVM線程相關的統計

寫在***

通過對Tomcat重要監控指標的采集以及監控,幫助我們更方便地完成日常巡檢,提高先于故障發現問題的能力,提高故障發生時的定位效率,從而更好地提高穩定性。

附:

jmx_prometheus_javaagent:

https://github.com/prometheus/jmx_exporter

Tomcat jmx_exporter:

https://github.com/prometheus/jmx_exporter/blob/master/example_configs/Tomcat.yml

京東云

應用研發部

Tomcat是一款開源的輕量級Web應用服務器,廣泛應用于云服務平臺及企業應用系統,是***的Java web應用服務器之一。因此,對于Tomcat的監控顯得尤為重要,能讓我們在不同場景下了解Tomcat的運行情況,進而能夠更好的進行調優。

文章題目:Java Web應用服務器之一:Tomcat監控選型及實踐
本文來源:http://m.newbst.com/news29/99479.html

成都網站建設公司_創新互聯,為您提供微信小程序、網站收錄、ChatGPT、云服務器網站設計公司、小程序開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設