1. 概述
1.1 版本
維運平台版本 | 功能變更 |
---|---|
V1.5.5 | - |
V1.5.7 | 1)維運平台日誌管理功能拆分優化 2)對於叢集多節點工程,支援單次下載多節點日誌檔案 |
V1.8.0 | 分析日誌中,分析記錄列表新增展示「觸發類型」 |
V1.12.0 | 1)支援手動上傳本地效能堆疊,至維運平台進行分析 2)支援展示歷史效能堆疊生成記錄 3)效能堆疊使用順序優化,變更為:分析>下載>生成 |
V1.14.0 | 維運平台監測當機,自動觸發生成日誌條件優化 1)應用無迴應觸發時間由3分鐘優化為2分鐘 2)新增FullGC觸發條件:5min內FullGC次數總和大於3次,且時間總和超過 50s |
V1.15.0 | 下載日誌時,支援按需選擇日誌類型,無需全量下載,降低下載成本 |
V2.0.0 | 效能分析結果優化,新增「記憶體情況劃分」 |
V2.1.0 | 1)在專案不可用情況下,仍支援生成、分析、下載效能堆堆疊 2)優化分析報表,拆分記憶體和CPU資訊,優化GC狀態展示 |
1.2 應用場景
當工程出現當機或異常時:
1)在工程當機時,管理者需要快速生成堆疊日誌,以確定事後有辦法覆盤定位問題。
2)管理者需要對堆疊日誌進行分析,追蹤問題產生的根本原因,但日誌分析對管理者的技術水平要求較高。
3)管理者需要將堆疊日誌拿到本地自行分析,或提供給帆軟技術支援人員,幫助確認工程存在的問題,但很多公司日誌獲取費時費力。
FineOps維運平台提供「效能堆疊」功能,支援對堆疊日誌進行快速生成、智慧分析、便捷下載。
1.3 日誌簡介
效能堆疊功能,支援對以下堆疊日誌進行生成、分析和下載:
日誌 | 說明 |
---|---|
fanruan.gc.log | 帆軟當機日誌 |
thread.txt | 執行緒資訊統計報表,該報表包含了所有執行緒的狀態、堆疊磁軌資訊等,可以幫助瞭解應用程式的執行緒使用情況,即時發現和解決執行緒問題。 |
histo.txt | 記憶體使用情況統計報表,該報表包含了物件的數量、大小、佔用空間等資訊,可以幫助瞭解應用程式的記憶體使用情況,即時發現和解決記憶體泄漏等問題。 |
hs_err.txt | Java在運作程式中遇到錯誤時自動生成的錯誤報表檔案,包含了詳細的錯誤資訊、堆疊磁軌資訊、執行緒資訊等,可以幫助定位和解決程式碼問題。 |
top.txt | Linux 系統下的 top 命令的匯出結果,用於顯示當前系統中運作進程的相關資訊,包括top-H.txt、top-sortedByCPU.txt、top-sortedByMEM.txt 1)top-H.txt:該檔案是 top 命令匯出結果中的 "H" 模式,用於顯示執行緒資訊,包括執行緒 ID、CPU 佔用率、記憶體佔用率等 2)top-sortedByCPU.txt:該檔案是 top 命令匯出結果按照 CPU 佔用率從高到低排序的資訊,包括進程 ID、CPU 佔用率、記憶體佔用率等 3)top-sortedByMEM.txt:該檔案是 top 命令匯出結果按照記憶體佔用率從高到低排序的資訊,包括進程 ID、CPU 佔用率、記憶體佔用率等 |
2. 分析日誌
應用場景:
當工程當機後,管理者需要對當機日誌進行分析,修復工程存在的問題,防止再次發生。
FineOps維運平台支援對jstack、histo、gc和top-H內容進行分析,幫助使用者分析錯誤堆疊並給出相關改進意見。
2.1 自動分析維運專案
當滿足 4.1 節自動生成日誌後,FineOps會對每個節點自動生成的堆疊日誌進行分析。
1)管理者登入維運平台,點選「專案管理」,選擇指定維運專案。
2)進入「日誌>效能堆疊」頁面,在「分析」模組下可以查看到自動分析的結果:
2.2 手動分析維運專案
操作步驟:
1)管理者登入維運平台,點選「專案管理」,選擇指定維運專案。進入「日誌>效能堆疊」頁面,
2)在「分析」模組下,點選「分析」按鈕。觸發該維運專案下每個節點生成堆疊日誌。
3)FineOps會對每個節點生成的堆疊日誌進行分析,分析結果生成在分析記錄中。
注意事項:
每1分鐘僅支援進行1次分析,以防頻繁觸發,導致系統效能差。若分析請求過於頻繁,則提示「分析請求太頻繁啦,請稍等一分鐘後再重新嘗試」。
2.3 手動上傳日誌分析
使用者可手動上傳本地堆疊日誌到維運平台進行分析。
操作步驟:
1)準備本地堆疊日誌包
僅支援.zip/.tar/.gz格式壓縮包,請務必準備標準的jstack -l堆疊。
維運平台將根據壓縮包中jstack、histo、gc和top-H 生成分析報表,僅支援同時分析一個節點。
2)上傳本地堆疊日誌包
管理者登入維運平台,點選「專案管理」,選擇維運專案,點選「日誌>效能堆疊」。
在「分析」模組下,點選「上傳效能堆疊分析」按鈕,選擇本地日誌包,點選「開啟」。
3)生成分析報表
FineOps將根據壓縮包中jstack、histo、gc和top-H 生成分析報表,僅支援同時分析一個節點。
分析結果在新標籤頁開啟,不記錄在分析記錄中。
2.4 查看分析記錄
管理者登入維運平台,點選「專案管理」,選擇維運專案,點選「日誌>效能堆疊」。
在「分析>分析記錄」模組下,以明細表形式顯示該維運專案下所有手動/自動觸發的堆疊分析結果(不包括手動上傳的日誌分析記錄)。
1)分析記錄以明細表形式展示,展示內容包括:專案名、節點名、觸發類型、操作時間、操作者、操作IP、分析結果。
若手動觸發,操作者和操作IP為空。
2)若維運專案為叢集環境,每個節點都會生成一份分析結果。
3)日誌分析歷史記錄最多只保留最近50條記錄。支援選中單個分析記錄刪除,支援批量刪除多個分析記錄,支援清空全部歷史記錄。
4)點選分析記錄中的「查看」按鈕,即可在新標籤頁開啟具體的分析結果。
點選對應分析結果後的「查看」按鈕,即可查看本次分析的具體結果。
效能堆疊分析結果範例如下圖所示,分為兩個部分:記憶體狀態詳情、執行緒CPU狀態詳情。
記憶體狀態詳情:分為GC狀態和記憶體狀態
執行緒CPU狀態詳情:
3. 下載日誌
應用場景:
當工程當機後,管理者需要將當機日誌拿到本地自行分析,或提供給帆軟技術支援人員,幫助確認工程存在的問題,防止再次發生。
操作步驟:
序號 | 操作步驟 | 注意事項 |
---|---|---|
1 | 管理者登入維運平台,點選「專案管理」,選擇維運專案 點選「日誌>效能堆疊」 | |
2 | 選擇時間範圍 | 可選範圍:7天前~當前日期,所選時間跨度不可超過2天(48小時) 預設時間:2小時前~當前時間 |
3 | 選擇服務類型 | 支援類型:BI、FR 可選範圍:所選時間記憶體在的服務類型,預設全選 注意事項: 1)非容器化維運專案不支援選擇服務類型 2)如不存在任一類型,則不出現該選項 |
4 | 選擇節點 | 可選範圍:所選維運專案中的所有節點,預設全選 |
5 | 選擇需下載的日誌 | 支援類型: 支援下載的日誌,為第四章生成的日誌,包括 fanruan.gc.log、thread.txt、histo.txt、hs_err.txt、top.txt 注意事項: 1)如不存在某種類型的日誌,則不支援下載該類型日誌 2)容器化部署的維運專案,如安裝elasticsearch組件用於日誌儲存,則不支援該項,直接全量下載 |
6 | 點選「下載」,生成維運日誌檔案到本地電腦 | 1)若檔案大小超過5G,則無法匯出該日誌,提示「以下日誌大小超過上限(5GB),不支援下載:xxx」 2)若該類型日誌檔案不存在,則無法匯出該日誌,提示「以下日誌不存在:xxx」 3)日誌下載時,檔案需要進行壓縮,若等待時間過長,使用者可點選「取消下載」按鈕停止下載 4)下載的檔案解壓後,按照「節點-日期-服務類型-日誌類型」結構存放 |
4. 生成日志
應用場景:
當工程當機或出現異常時,堆疊日誌可以幫助管理者快速定位問題所在的程式碼。
當工程出現效能問題(如回應時間過長或CPU佔用過高)時,堆疊日誌可以幫助管理者理解程式的執行路徑,找到可能的效能瓶頸。
當工程出現問題時,histo日誌可以幫助管理者追蹤使用者歷史輸入命令,保持維運人員對使用者行為的監視,追蹤問題產生的根本原因
維運平台支援手動/自動生成堆疊和histo日誌。
4.1 自動觸發
1)觸發自動生成日誌
以下情況,均會觸發自動生成日誌。
情況 | 說明 |
---|---|
當機觸發生成日誌 | 當該維運專案出現以下情況時,自動觸發生成日誌 CPU佔用超過80%(fr、fdl、bi-web、bi-worker):生成堆疊 發生超過30S的GC(fr、fdl、bi-web、bi-worker、bi-master):生成堆疊和histo 應用2分鐘無回應(fr、fdl、bi-web、bi-worker、bi-master):生成堆疊和histo 執行緒池用量達到85%(fr、fdl、bi-web、bi-worker):生成堆疊 連續FullGC後依舊負載較高(連續5次FullGC且負載分大於100)(fr、fdl、bi-web、bi-worker、bi-master):生成堆疊和histo 5min內FullGC次數總和大於3次,且時間總和超過 50s(fr、fdl、bi-web、bi-worker、bi-master):生成堆疊和histo 使用者可預設自動生成的日誌類型 |
手動分析日誌觸發 | 管理者登入維運平台,點選「專案管理」,選擇指定維運專案。 進入「日誌>效能堆疊」頁面,當手動點選「分析」按鈕時,會先自動觸發生成一份堆疊日誌。 |
2)「自動生成」的日誌
當滿足上文條件後,自動觸發該維運專案下每個節點生成堆疊日誌。
根據專案部署方式和所選服務類型,日誌生成在不同位置
部署方式 | 服務類型 | |
---|---|---|
維運平台部署的專案 | fr | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/fr/tomcat_logs/FineLog/日期資料夾內 |
fdl | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/fdl/tomcat_logs/FineLog/日期資料夾內 | |
bi6 | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi6/tomcat_logs/FineLog/日期資料夾內 | |
bi-web | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-web/tomcat_logs/FineLog/日期資料夾內 | |
bi-engine-master | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-master/polars/logs/FineLog/日期資料夾內 | |
bi-engine-worker | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內 | |
bi-engine-worker-monitor | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內 | |
非維運平台部署的專案 | - | 當前維運專案有問題的節點所在伺服器 %Tomcat%/logs/FineLog/日期資料夾內 |
4.2 手動生成
1)管理者登入維運平台,點選「專案管理」,選擇維運專案,點選「日誌>效能堆疊」。
2)在「生成>手動生成」模組下,選擇服務類型。
支援類型:BI、FR
可選範圍:當前維運專案所有節點中存在的服務類型;非容器化維運專案不支援選擇服務類型;如不存在任一類型,則不出現該選項。
3)點選「生成」,觸發該維運專案下每個節點生成堆疊日誌。
4)生成的檔案位置為:
根據專案部署方式和所選服務類型,日誌生成在不同位置
部署方式 | 服務類型 | |
---|---|---|
維運平台部署的專案 | fr | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/fr/tomcat_logs/FineLog/日期資料夾內 |
fdl | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/fdl/tomcat_logs/FineLog/日期資料夾內 | |
bi6 | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi6/tomcat_logs/FineLog/日期資料夾內 | |
bi-web | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-web/tomcat_logs/FineLog/日期資料夾內 | |
bi-engine-master | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-master/polars/logs/FineLog/日期資料夾內 | |
bi-engine-worker | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內 | |
bi-engine-worker-monitor | 有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內 | |
非維運平台部署的專案 | - | 當前維運專案有問題的節點所在伺服器 %Tomcat%/logs/FineLog/日期資料夾內 |
注意事項:
每1分鐘僅支援生成1次堆疊,以防頻繁觸發,導致系統效能差。
4.3 生成記錄
在效能堆疊中,展示歷史生成記錄,包含所有自動/手動觸發生成的情況。如下圖所示:
以明細表形式展示:節點名、匯出內容、匯出開始時間、匯出時長、觸發類型、是否成功、失敗原因。