優先推薦
企業在管理帆軟應用(FineReport、FineBI)的程式中,常常會遇到一些痛點和挑戰:
1)低效的維運流程:應用管理者維運經驗不足,專業維運人員又無法深入解決應用問題,傳統維運流程耗時耗力,導致企業維運效率低下,影響業務的正常運轉。
2)不足的監視手段:維運人員可能無法準確監視項目的效能和可用性,缺乏維運程式中必要的工具和技術。
3)多項目管理混亂:企業可能有多個項目運作,而這些項目由不同的部門或團隊負責管理,導致版本不統一、部署環境各異,難以進行統一的維運管理。
因此帆軟推出「FineOps維運平台(為企業提供帆軟應用穩定運作和全方位維運管理的解決方案)」,幫助企業更好地解決以上問題。
1. 概述
1.1 版本
報表伺服器版本 |
---|
11.0 |
1.2 應用場景
針對常見的維運監視訴求場景,給出現有的維運監視功能方案介紹,幫助客戶快速實現對於 FineReport 和 FineBI 應用的維運監視。
方案適用於已經完成部署的帆軟系統,將會展開介紹帆軟應用的日常維護、管理和監視方式。
1.3 功能簡介
帆軟應用對系統有一定的配置要求,如果配置不符合要求可能出現使用異常、當機等風險,因此需要定期對環境及應用的配置情況進行檢查,以確定應用的健康運作。
同時管理者需要關注應用的運作狀況,即時透過維運手段規避風險或在問題發生後定位並進行排除,實現應用的持續高可用。
本文方案將從以下幾個方面展開介紹帆軟應用的具體維運方式:
注:鑑於伺服器情況不同,沒有完全通用的解決方案。部分檢查項僅提供推薦配置值,請自行百度修改方案。
方向 | 分類 | ||
---|---|---|---|
主要配置檔案及說明 | 介紹帆軟應用內的主要配置檔案資訊及其詳細說明 | 外接資料庫資訊配置 | - |
平台配置資訊 | - | ||
系統巡檢 | 建議對系統進行定期巡檢,確定應用所在的環境及應用內配置合理,以保證應用的正常運作 | 系統檢查 | 包括:CPU主頻、核心數、記憶體大小、已使用記憶體、閒置記憶體、交換分割槽、檢查時間、根目錄磁碟、根目錄磁碟剩餘 |
系統運作狀態 | 包括:工程啟動路徑、工程下資料夾大小異常情況、xms配置、插件資訊、註冊資訊、web.xml檢查、容器版本、工程JAR包資訊、伺服器時間 | ||
埠檢查 | 帆軟應用正常使用程式中,需要伺服器開放一些埠,因此需要對這些埠進行檢查是否開放,避免出現系統功能異常 | ||
網路檢查 | 檢查應用各組件通訊是否能夠ping通,是否存在丟包情況 | ||
服務連結性檢查 | 檢查服務是否連通 | ||
業務檢查 | 包括:finedb、日誌級別、日誌清理、自動備份磁碟佔用限制、自動備份保留數量限制、排程管理任務清理配置 | ||
環境檢查 | 包括:overcommit_memory、overcommit_ratio、codecache配置、語言配置-Duser.country、語言配置-Duser.language、zip相關配置-Dsun.zip.disableMemoryMapping、gblic記憶體公佈相關配置 | ||
磁碟檢查 | 1)關注磁碟的效能和使用情況,防止影響業務的正常運作 2)關注磁碟剩餘空間,防止出現磁碟空間不足導致系統運作受影響 | ||
虛擬機檢查 | 系統當前記憶體、headless模式 | ||
非容器化部署檢查 | 包括:進程使用者、伺服器主要資料夾權限 | ||
配置檢查 | 包括:外接資料庫編碼、Nginx健康檢查、Nginx參數配置、叢集參數配置、更新資源無限制時間段配置、二級快取開啟情況、SQL執行時長限制、單範本儲存格數限制、匯入excel儲存格數限制、單資料集列數限制、負載預警開啟、髒資料檢查 | ||
基本維護 | 在應用日常的正常運作程式中,維護交易相對簡單,在有需要的時候能夠查看應用的運作日誌,或查看應用的各項監視指標是否存在異常即可 | 日誌查看 | 瞭解各類日誌檔案的儲存位置和使用方法 |
監視指標 | 日常運作中,維運人員主要需要關注相關指標是否存在異常 | ||
異常維護 | 當帆軟應用出現異常時,要有一些維運手段,實現提前規避風險、快速恢復服務可用等 | 異常警告 | 如需對帆軟應用的異常即時感知,需實現對帆軟應用各項指標的監視警報 |
當機處理 | 當應用出現異常時,當機可能會隨之發生 1)快速恢復應用 2)記錄當機日誌,進行問題定位和排查 | ||
備份與升級 | 因為新的功能優化或者BUG修復需要進行應用的升級,同時升級前為了避免未知風險的發生,做好系統的備份也是必須的 | 備份還原 | 系統需要定期進行備份,以確定在使用者誤操作、版本回退等場景下能夠即時恢復 |
更新升級 | 為了能獲得更好的功能體驗,工程儘量跟隨官方更新最新版本 |
2. 主要配置檔案及說明
本章主要介紹帆軟應用內的主要配置檔案資訊及其詳細說明。
2.1 外接資料庫資訊配置檔案
1)檔案位置
%FRBI_HOME%\webapps\webroot\WEB-INF\config\db.properties
2)檔案內容
數據決策系統中除平台屬性配置以外的所有資訊,包括目錄樹設定、範本定時任務資訊等,均儲存於 FineDB 資料庫。
FineReport/FineBI 支援使用內建 FineDB 資料庫或啟動外接 FineDB 資料庫。
工程配置了外接資料庫後,方在WEB-INF/config中生成一個db.properties檔案。FineDB 資料庫是否外接由 db.properties 檔案控制。
3)檔案關鍵資訊
db.properties檔案中,常見配置關鍵字與其內容對應關係如下。
注:為了防止修改錯誤導致系統出錯,不建議手動修改db.properties檔案。
key(id) | 描述 |
---|---|
hibernate.connection.password | 加密過後的資料庫的密碼 |
hibeinate.maxWait | 最大等待毫秒數(ms), 超過時間會出錯誤資訊 |
hibernate.minEvictableIdleTimeMillis | 連結在池中保持閒置而不被閒置連結回收器執行緒(如果有)回收的最小時間值(ms) |
hibernate.hbm2ddl.auto | 自動建立|更新|驗證資料庫表結構。 create:每次載入hibernate時都會刪除上一次的生成的表,然後根據你的model類再重新來生成新表。 create-drop :每次載入hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除。 update:第一次載入hibernate時根據model類會自動建立起表的結構(前提是先建立好資料庫),以後載入hibernate時根據 model類自動更新表結構。 validate :每次載入hibernate時,驗證建立資料庫表結構,只會和資料庫中的表進行比較,不會建立新表,但是會插入新值 |
hibernate.initialSize | 初始化執行緒數,表示開始自動建立幾個與資料庫的連結 |
hibernate.default_schema | 連結模式,如設為dbo模式,以指定資料庫的建立者 |
hibernate.validationQuery | 驗證連結是否成功,value可設為sql語句 |
hibernate.testWhileIdle | 閒置時是否進行驗證,檢查物件是否有效,預設為 false |
hibernate.connection.username | 資料庫帳號 |
hibernate.connection.isolation | 參數配置資料庫交易隔離級別 8:Serializable 串行化 4:Repeatable Read 可重複讀 2:Read Commited 可讀已提交 1:Read Uncommited 可讀未提交 |
hibernate.connection.driver_class | 資料庫連結驅動 |
hibernate.timeBetweenEvictionRunsMillis | 失效檢查執行緒運作時間間隔,如果小於等於 0,不會啟動檢查執行緒 |
hibernate.connection.provider_class | 用以整合阿里的Druid資料庫連結池 |
hibernate.testOnBorrow | 取得物件時是否進行驗證,檢查物件是否有效,預設為 false |
hibernate.testOnReturn | 傳回物件時是否進行驗證,檢查物件是否有效,預設為 false |
hibernate.dialect | 指定資料庫方言類 |
hibernate.numTestsPerEvictionRun | 失效檢查執行緒運作次數 |
hibernate.connection.url | 資料庫連結url |
hibernate.maxActive | 可以從物件池中取出的物件最大個數,為 0 表示沒有限制 |
hibernate.minIdle | 物件池中物件最小個數 |
2.2 平台配置資訊
平台中有些配置資訊記錄在 FineDB 的 fine_conf_entity 表中,只能透過修改表欄位來進行更改。
使用者可透過「fine_conf_entity視覺化配置插件」安全地修改相關配置。
注:請勿使用該插件以外的方法修改 FineDB 檔案,有可能造成不可修復的 BUG,需自行承擔後果。
可修改的配置內容及修改方式請參見:FINE_CONF_ENTITY視覺化配置
3. 系統巡檢
建議管理者使用「健康巡檢」功能,對系統進行定期巡檢,確定應用所在的環境及應用內配置合理,以保證應用的正常運作。
巡檢內容包括系統檢查、系統運作狀態、埠檢查、網路檢查、服務聯通性檢查、業務檢查、環境檢查、磁碟檢查、非容器化部署檢查、虛擬機檢查。
3.1 系統檢查
系統檢查的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準及修改建議 |
---|---|---|---|---|
0101 | 作業系統資訊 | 是 | 否 | 僅匯出資訊 |
0102 | 檢查時間 | 是 | 否 | 僅匯出資訊 |
0103 | 時區資訊 | 是 | 否 | 僅匯出資訊 |
0104 | glibc/gcc版本 | 是 | 否 | 僅匯出資訊 |
0105 | hostname | 是 | 否 | 僅匯出資訊 |
0106 | host檔案資訊 | 是 | 否 | 僅匯出資訊 |
0107 | CPU主頻 | 是 | 否 | 檢查主頻大於等於 2.4 gh 建議主頻大於等於 2.4 gh |
0108 | 核心數 | 是 | 否 | 檢查覈心數大於 4 核 cpu 核心數推薦大於 4 |
0109 | 記憶體大小 | 是 | 否 | 檢查記憶體是否大於等於15.5GB 建議物理記憶體大於等於16G |
0110 | 交換分割槽 | 是 | 否 | 檢查是否關閉SWAP配置 匯出交換分割槽大小 建議關閉SWAP配置 |
0111 | 已使用記憶體 | 是 | 否 | 僅匯出資訊 |
0112 | 閒置記憶體 | 是 | 否 | 僅匯出資訊 |
0113 | CPU資訊 | 是 | 否 | 僅匯出資訊 |
0114 | 伺服器字體編碼 | 是 | 否 | 僅匯出資訊 |
0115 | 伺服器字體包 | 是 | 否 | 僅匯出資訊 |
0110 關閉SWAP分割槽
1)查看當前系統中是否啟動了swap分割槽
使用以下命令查看系統中已經啟動的swap分割槽資訊:
sudo swapon -s
如果匯出結果為空,則表示當前沒有啟動swap分割槽。
2)關閉swap分割槽
使用以下命令關閉swap分割槽:
sudo swapoff -a
該命令將關閉所有已經啟動的swap分割槽。
3)永久禁用swap分割槽
為了避免系統在下一次啟動時自動啟動swap分割槽,需要在系統配置檔案中進行相應的修改。
以Ubuntu為例,可以按照以下步驟操作:
修改/etc/fstab檔案,找到含有swap的列並註釋掉或刪除該列。
執行以下命令更新grub引導程式:
sudo update-grub
4)驗證swap分割槽是否已經關閉
重啟系統後,可以再次執行sudo swapon -s命令查看系統中是否存在已經啟動的swap分割槽。
如果匯出結果為空,則表示swap分割槽已經成功關閉。
3.2 系統運作狀態
系統運作狀態的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準 |
---|---|---|---|---|
0201 | 啟動時長 | 是 | 否 | 僅匯出資訊 包括:本次啟動的耗時 |
0203 | 工程啟動路徑 | 是 | 否 | 僅匯出資訊 包括:目錄路徑 |
0204 | 工程下資料夾大小異常情況 | 是 | 否 | 注:僅檢查本地,不檢查檔案伺服器。 檢查工程WEB-INF下一層的每個資料夾大小 健康:不存在大於5G的資料夾 不健康:存在大於5G的資料夾 修改建議: 建議檢查確認對應資料夾的內容並進行清理 提示出超過5G大小的資料夾路徑 |
0205 | 插件資訊 | 否 | 否 | 僅匯出資訊 包括:插件名、插件版本、插件是否啟動 |
0206 | 註冊授權資訊 | 否 | 否 | 僅匯出資訊 包括:工程是否註冊 |
0207 | WEB-INF下是否有web.xml | 否 | 否 | 僅匯出資訊 包括:是/否 |
0208 | 容器版本 | 是 | 否 | 僅匯出資訊 |
0209 | 工程jar包資訊 | 否 | 否 | 僅匯出資訊 包括:工程各個模組的版本和JAR包日期 |
0211 | 臨時匯出目錄 | 是 | 否 | 僅匯出資訊 包括:目錄路徑、目錄剩餘可用空間 |
0212 | tomcat後台運作 | 是 | 否 | 對於Windows系統、Tomcat容器下的工程, 檢查是否使用javaw後台運作tomcat 健康:使用javaw後台運作tomcat 不健康:未使用javaw後台運作tomcat 修改建議:建議使用javaw後台運作tomcat |
0204 清理資料夾
1)WEB-INF資料夾存放着什麼
FineReport:FineReport報表安裝目錄結構
2)哪些檔案可清理
資料夾/檔案 | 用途 | 自動清理 | 手動清理 |
---|---|---|---|
schedule | 1)檔案路徑: %BI_HOME%\webapps\webroot\WEB-INF\schedule 2)檔案用途: 儲存排程管理任務產生的中間檔案 3)可清理範圍: 建議清理 | 不支援自動清理 | 檔案層級直接展示到具體的日期(日級別),使用者手動選擇需要清理的範圍即可 推薦清理12個月之外的檔案 12個月之內的檔案不顯示 |
treasure | 1)檔案路徑: %BI_HOME%\webapps\webroot\WEB-INF\treasures 建議清理 | 保留最近12個月的檔案,其餘檔案清理 | 檔案層級直接展示到具體的日期(日級別),使用者手動選擇需要清理的範圍即可 推薦清理12個月之外的檔案 12個月之內的檔案不顯示 |
3)清理方式
管理者登入數據決策系統,點選「管理系統>智慧維運>磁碟維運>磁碟清理」。
選擇需要掃描的檔案類型,點選「開始掃描」,立即開始掃描可以手動清理的冗餘檔案。
0212 tomcat後台運作
原因分析:
Windows系統中,tomcat容器下部署的工程,如果不使用後台模式啟動,而是使用視窗模式啟動,可能會因為誤點視窗,導致視窗進入編輯插入狀態,阻擋日誌匯出,進而導致工程卡死。
因此建議Windows系統中,tomcat容器下部署的工程,tomcat使用後台模式啟動。
操作步驟:
先修改預設啟動模式為javaw。為了防止重複啟動,重新整理增腳本檢查啟動命令,按任意鍵即可結束腳本。
1)修改setclasspath.bat
開啟%Tomcat_HOME%\bin\setclasspath.bat,找到並修改set _RUNJAVA的值:
set _RUNJAVA="%JRE_HOME%\bin\javaw.exe"
2)修改catalina.bat
開啟%Tomcat_HOME%\bin\catalina.bat,在最後加上判斷提示:
3.3 埠檢查
埠檢查的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準及修改建議 |
---|---|---|---|---|
0301 | websocket埠 | 否 | 否 | 僅匯出資訊 包括:埠號 |
0302 | 叢集埠 | 是 | 否 | 檢查叢集埠是否暢通 健康:埠間暢通 不健康:埠存在不暢通 修改建議:叢集埠連結性狀態異常 |
0303 | 當機檢查埠 | 是 | 否 | 檢查: 1)當機自動檢查是否開啟 2)當機埠是否暢通 優化建議:建議開啟當機檢查並保證埠可用 |
0301 websocket埠
WebSocket 主要用於重新整理 token、使用者被踢出、平台訊息、記憶體和 CPU 顯示、平台日誌處當前系統線上人數、資料連結編輯狀態的確定。
WebSocket 不開放影響 socket 通訊,存取可能異常斷開。
使用者可根據自己的工程情況選擇合適的 WebSocket 埠配置方法,詳情請參見下表:
方案 | 場景 | 配置方法 |
---|---|---|
容器Websocket方案 | 容器Websocket方案,無需任何使用者操作,系統可自動使用Web容器自帶的WebSocket進行連結,埠複用http埠
| 容器Websocket方案 |
socket.io方案 | 單機環境配置 WebSocket 埠 | 單機配置WebSocket埠 |
叢集環境配置 WebSocket 埠 | 叢集配置WebSocket埠 | |
HTTPS 環境配置 Websocket 埠 | HTTPS配置WebSocket | |
僅對外開放一個埠 | 不額外給WebSocket對外開放埠 |
0302 叢集埠
管理者登入資料決策平台,點選「管理系統>智慧維運>叢集配置」。
可查看叢集各個節點的埠,無法使用的節點飄紅。
可編輯節點埠,滑鼠懸浮即可出現編輯按鈕。
0303 當機檢查埠
管理者資料決策平台,點選「管理系統>智慧維運>當機處理」。
可查看當機自動處理工具使用的埠。預設埠為12100。
可修改埠,點選「儲存」即可。
可點選「測試」,測試埠可用性。
3.4 網路檢查
檢查檔案伺服器、外接資料庫、狀態伺服器和應用之間通訊是否正常,是否能夠ping通,是否存在丟包情況。
3.5 磁碟檢查
磁碟檢查的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準及修改建議 |
---|---|---|---|---|
0501 | 順序讀取 | 是 | 否 | 僅匯出資訊 包括:順序讀取的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」) 注:windows系統下若權限不足,請手動使用命令檢查「winsat disk -drive 盤符 -seq -read」 |
0502 | 順序寫 | 是 | 否 | 僅匯出資訊 包括:順序寫的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」) 注:windows系統下若權限不足,請手動使用命令檢查「winsat disk -drive 盤符 -seq -write」 |
0504 | 小檔案建立 | 是 | 否 | 僅匯出資訊 包括:每秒建立小檔案個數 |
0505 | 小檔案刪除 | 是 | 否 | 僅匯出資訊 包括:每秒刪除小檔案個數 |
0506 | 磁碟空間 | 是 | 否 | 1)FineReport: 健康:磁碟總大小≥100GB 不健康:磁碟總大小<100GB 修改建議:建議磁碟總大小高於100GB 2)FineBI: 健康:磁碟總大小≥400GB 不健康:磁碟總大小<400GB 修改建議:建議磁碟總大小高於400GB |
0507 | 已使用磁碟空間 | 是 | 否 | 僅匯出資訊 包括:已使用的磁碟空間大小 |
0508 | 閒置磁碟空間 | 是 | 否 | 1)FineReport: 健康:磁碟餘量高於10GB 不健康:磁碟餘量不足10GB 修改建議:磁碟餘量不足10GB,建議清理磁碟大檔案避免影響使用 2)FineBI: 健康:磁碟餘量高於50GB 不健康:磁碟餘量不足50GB 修改建議:磁碟餘量不足50GB,建議清理磁碟大檔案避免影響使用 |
0509 | 順序讀取(非緩衝池) | 是 | 否 | 僅匯出資訊 包括:非緩衝池順序讀取的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」) |
0510 | 順序寫入(非緩衝池) | 是 | 否 | 僅匯出資訊 包括:非緩衝池順序寫入的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」) |
3.6 非容器化部署資訊
非容器化部署的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準 |
---|---|---|---|---|
0601 | 進程使用者 | 是 | 否 | 僅匯出資訊 包括:帳號稱 |
0602 | 伺服器主要資料夾權限 | 是 | 否 | 僅匯出資訊 包括:快取資料夾、resources、assets、assist、finedb的權限 注:檔案伺服器權限不匯出。 |
0603 | 多進程檢查 | 是 | 否 | 健康:帆軟應用所需最大記憶體+其他進程使用記憶體<總物理記憶體 不健康:帆軟應用所需最大記憶體+其他進程使用記憶體≥總物理記憶體 修改建議:建議帆軟工程不要與其他應用服務共用伺服器,否則會有當機風險 |
3.7 環境檢查
環境檢查的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準 |
---|---|---|---|---|
0701 | vm.max_map_count | 是 | 否 | 健康:vm.max_map_count≥262144 不健康:vm.max_map_count<262144 修改建議:建議配置 vm.max_map_count 參數為 262144 |
0702 | 最大檔案開啟數 | 是 | 否 | 1)FineReport: 健康:open_files≥65536 不健康:open_files<65536 修改建議:建議open_files參數配置不低於65536 2)FineBI: 健康:open_files≥131070 不健康:open_files<131070 修改建議:建議open_files參數配置不低於131070 |
0703 | overcommit_memory | 是 | 否 | 健康:overcommit_memory=0 不健康:overcommit_memory≠0 修改建議:建議vm.overcommit_memory參數配置為0 |
0704 | overcommit_ratio | 是 | 否 | 健康:overcommit_ratio=50 不健康:overcommit_ratio≠50 修改建議:建議vm.overcommit_ratio參數配置為50 |
0705 | gblic記憶體公佈相關配置 | 是 | 是 | 檢查是否配置了export MALLOC_ARENA_MAX參數 健康:export MALLOC_ARENA_MAX=1 不健康:未配置/配置其他值 修改建議:建議配置export MALLOC_ARENA_MAX=1 |
0701 vm.max_map_count
1)參數簡介:
vm.max_map_count是一個Linux系統核心參數,用於控制在一個進程中允許mmap映射記憶體區域的最大數量。
如果該參數的值太小,那麼在使用一些應用程式時,可能會出現記憶體映射錯誤。
2)建議配置:
建議配置 vm.max_map_count 參數為 262144
3)修改方式:
在/etc/sysctl.conf檔案中新增/修改參數值
vm.max_map_count=262144
運作以下命令使更改生效
sysctl -p
0702 最大檔案開啟數
1)參數簡介:
open_files是指一個進程可以同時開啟的檔案描述符的最大數量。
檔案描述符是Unix系統中用於存取檔案(包括管道、套接字和其他檔案操作)的唯一識別符號。
2)建議配置:
建議FineReport工程的open_files參數配置不低於65536
建議FineBI工程的open_files參數配置不低於131070
3)修改方式:
修改參數配置
開啟Linux的軟硬體限制檔案/etc/security/limits.conf,在檔案尾部新增如下程式碼:
* soft nofile 65536
* hard nofile 65536
上述命令中,hard表示系統的硬限制,soft表示使用者的軟限制。
重啟工程並重新登入
配置完成後,終端使用者重新登入,並重啟Tomcat工程,配置方可生效。
可使用ulimit -n命令,根據回傳值確認是否修改成功。
0703 overcommit_memory
1)參數簡介:
vm.overcommit_memory 是一個Linux核心參數,它控制了系統是否允許進程分配超過可用記憶體的記憶體量。
當參數值為0時,核心將檢查是否有足夠的可用記憶體來滿足提交的記憶體需求。如果有足夠的閒置記憶體,則允許進程繼續分配記憶體;否則分配請求將失敗並傳回錯誤。
2)建議配置:
建議vm.overcommit_memory參數配置為0
3)修改方式:
在/etc/sysctl.conf檔案中新增/修改參數值
vm.overcommit_memory=0
運作以下命令使更改生效
sysctl -p
0704 overcommit_ratio
1)參數簡介:
vm.overcommit_ratio 是一個 Linux 核心參數,它指定了系統 VMware 超大頁管理器(Memory Ballooning)和 Swap 空間使用的比例。
當參數值為50時,核心使用適當的 Swap 兩倍大小作為另一個備用空間,用於模擬物理記憶體。
2)建議配置:
建議vm.overcommit_ratio參數配置為50
3)修改方式:
在/etc/sysctl.conf檔案中新增/修改參數值
vm.overcommit_ratio=50
運作以下命令使更改生效
sysctl -p
0705 gblic記憶體公佈相關配置
1)參數簡介:
為了防止glibc中的記憶體泄漏,可以透過在環境變數中設定MALLOC_ARENA_MAX來限制glibc在分配和釋放動態記憶體時使用的堆空間數量。
2)建議配置:
建議配置export MALLOC_ARENA_MAX=1
3)修改方式:
關閉Tomcat伺服器。
進入%Tomcat_HOME%/bin目錄,開啟 startup.sh 檔案。
在檔案開頭新增/修改列:export MALLOC_ARENA_MAX=1
儲存對 startup.sh 檔案的修改並關閉。
在終端中運作 startup.sh 檔案,重啟Tomcat並應用新的環境變數設定。
3.8 Java 虛擬機檢查
Java虛擬機的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準 |
---|---|---|---|---|
0801 | 堆外NIO記憶體 | 是 | 是 | 健康: FR:堆外NIO記憶體為2GB BI:堆外NIO記憶體為4GB 不健康:堆外NIO記憶體配置了且不是2GB 修改建議:建議配置JVM NIO佔用堆外記憶體2GB |
0802 | 堆外fineIO讀記憶體 | 是 | 是 | 健康:堆外fineIO讀記憶體為2GB或未配置該參數 不健康:堆外fineIO讀記憶體配置了且不是2GB 修改建議:建議JVM fineIO讀記憶體使用堆外記憶體設定為2G |
0803 | 堆外fineIO寫記憶體 | 是 | 是 | 健康:堆外fineIO寫記憶體為1GB或未配置該參數 不健康:堆外fineIO寫記憶體配置了且不是1GB 修改建議:建議JVM fineIO寫記憶體使用堆外記憶體設定為1G |
0804 | 垃圾回收器類型 | 是 | 否 | 健康:垃圾回收器類型為 ParallelScavenge 不健康:垃圾回收器類型不是 ParallelScavenge 修改建議:建議JVM使用垃圾回收器類型為ParallelScavenge |
0805 | DisableExplicitGC參數 | 是 | 是 | 健康:不配置DisableExplicitGC參數 不健康:配置了DisableExplicitGC參數 修改建議:建議取消DisableExplicitGC參數配置 |
0806 | JDK版本 | 是 | 否 | 健康:高於帆軟內建JAVA版本(一般在1.8.202及以上版本) 修改建議:建議使用1.8.202及以上版本JDK |
0807 | headless模式 | 是 | 是 | 健康:已配置-Djava.awt.headless=true 不健康:未配置-Djava.awt.headless=true 修改建議:建議配置 -Djava.awt.headless=true 以啟動 headless 模式 |
0808 | dump匯出 | 是 | 否 | 健康:已配置HeapDumpOnOutOfMemoryError及HeapDumpPath 不健康:未配置HeapDumpOnOutOfMemoryError及HeapDumpPath 修改建議:建議配置HeapDumpOnOutOfMemoryError及HeapDumpPath以保證正常匯出dump |
0809 | BytecodeRecompilationCutoff配置 | 是 | 是 | 健康:-XX:PerBytecodeRecompilationCutoff=-1 不健康:-XX:PerBytecodeRecompilationCutoff≠-1 修改建議:建議配置-XX:PerBytecodeRecompilationCutoff=-1 |
0810 | PerMethodRecompilationCutoff配置 | 是 | 是 | 健康:-XX:PerMethodRecompilationCutoff=-1 不健康:-XX:PerMethodRecompilationCutoff≠-1 修改建議:建議配置-XX:PerMethodRecompilationCutoff=-1 |
0811 | 安裝包部署 | 是 | 否 | 注:FineBI特有檢查項 健康:非exe方式部署 |
0813 | codecache配置 | 是 | 是 | FR: 健康:-XX:ReservedCodeCacheSize≥512m 不健康:-XX:ReservedCodeCacheSize<512m 修改建議:建議配置-XX:ReservedCodeCacheSize=512m BI: 健康:-XX:ReservedCodeCacheSize≥1024m 不健康:-XX:ReservedCodeCacheSize<1024m 修改建議:建議配置-XX:ReservedCodeCacheSize=1024m |
0814 | 語言配置-Duser.country | 是 | 否 | 健康:-Duser.country=TW 不健康:-Duser.country≠TW 修改建議:建議配置-Duser.country=TW |
0815 | 語言配置-Duser.language | 是 | 否 | 健康:-Duser.language=tw 不健康:-Duser.language≠tw 修改建議:建議配置-Duser.language=tw |
0816 | zip相關配置-Dsun.zip.disableMemoryMapping | 是 | 是 | 健康:-Dsun.zip.disableMemoryMapping=true 不健康:-Dsun.zip.disableMemoryMapping≠true 修改建議:建議配置-Dsun.zip.disableMemoryMapping=true |
0817 | 堆內老年代與新生代大小比例 | 是 | 是 | 健康:-XX:NewRatio=2 不健康:-XX:NewRatio≠2 修改建議:建議堆內老年代與新生代大小比例為 2,即-XX:NewRatio=2 |
0818 | 棧空間 | 是 | 是 | 健康:-Xss≤1024 不健康:-Xss>1024 修改建議:建議單執行緒使用棧空間不超過1024KB,即 -Xss 的值不超過 1024 |
0819 | debug模式 | 是 | 否 | 健康:未配置參數 -agentlib:jdwp 和 -Xrunjdwp 不健康:配置了參數 -agentlib:jdwp 和 -Xrunjdwp 修改建議:建議取消debug模式,刪除兩個參數 -agentlib:jdwp 和 -Xrunjdwp |
0820 | 堆內記憶體 | 是 | 是 | 健康:根據系統實際情況計算出一個符合健康標準的堆內記憶體要求範圍,當前堆內記憶體在計算出的符合要求的堆內記憶體範圍內 不健康:當前堆內記憶體不在計算出的符合要求的堆內記憶體範圍內 修改建議:為保證應用回应效能,建議配置為XGB FineBI額外提醒:如果需要使用更大記憶體,在保證物理機記憶體充足的情況下,可以配置為48G~64G,但可能帶來一定的回应效能下降 |
0821 | xms配置 | 是 | 是 | 健康:Xms=Xmx 不健康:Xms≠Xmx 修改建議:建議配置Xms=Xmx |
0822 | jdk位置 | 是 | 否 | 僅匯出資訊 |
0823 | 元資料空間配置 | 是 | 是 | 健康:-XX:MaxMetaspaceSize≥2G 不健康:-XX:MaxMetaspaceSize<2G,或未配置 修改建議:建議最大元資料空間設定為2g |
0801 堆外NIO記憶體
1)建議值
FR:建議配置JVM NIO佔用堆外記憶體2GB
BI:建議配置JVM NIO佔用堆外記憶體4GB
2)修改方式
NIO由-XX:MaxDirectMemorySize這個參數控制。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 NIO記憶體 的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=2g
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=2g"
0802 堆外fineIO讀記憶體
1)建議值
建議JVM fineIO讀記憶體使用堆外記憶體設定為2G。
2)修改方式
fineIO 讀記憶體由-Dfineio.read_mem_limit這個參數來設定。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 fineIO讀記憶體 的步驟。
讀記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"
0803 堆外fineIO寫記憶體
1)建議值
建議JVM fineIO寫記憶體使用堆外記憶體設定為1G。
2)修改方式
fineIO 寫記憶體由-Dfineio.write_mem_limit這個參數來設定。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 fineIO寫記憶體 的步驟。
寫記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"
0804 垃圾回收器類型
1)建議值
建議 JVM 使用垃圾回收器類型為 ParallelScavenge
2)修改方式
本節以工程部署在 Tomcat 上為例, 介紹設定垃圾收集器為Parallel Scavenge(並行收集器)的方法。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseParallelGC
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"
0805 DisableExplicitGC 參數
1)建議值
建議不對 DisableExplicitGC 參數進行配置,此項配置會導致 System.gc()被禁用,影響系統穩定性。
2)修改方式
-XX:+DisableExplicitGC參數的作用是禁用 System.gc()。System.gc() 是一種保護機制,例如堆外記憶體滿時清理它的堆內引用物件。使用者需要根據實際情況選擇是否使用該參數,建議刪除該參數。
本節展示 Tomcat 環境下刪除 DisableExplicitGC 參數的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為catalina.bat和setenv.bat的檔案。
在檔案中尋找是否存在XX:+DisableExplicitGC,若存在,刪除相關配置,修改完成後重啟工程。
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為catalina.sh和setenv.sh的檔案。
在檔案中尋找是否存在XX:+DisableExplicitGC,若存在,刪除相關配置,修改完成後重啟工程。
0806 JDK版本
1)建議值
建議使用「JDK8」中 1.8.0_181 及以上版本
2)檢查方式
cmd 命令行進入%Tomcat_home%\bin路徑下,輸入version,即可查看 JDK 版本。如下圖所示:
0807 headless 模式
1)建議值
建議配置 -Djava.awt.headless=true 以啟動 headless 模式
2)修改方式
headless 模式是系統的一種工作模式,如果系統屬性 java.awt.headless被設定true,那麼headless工具包就會被使用。
本節展示 Tomcat 環境下啟動 headless 模式的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
0808 dump匯出
1)建議值
建議配置HeapDumpOnOutOfMemoryError 及 HeapDumpPath以保證正常匯出dump
2)修改方式
1)-XX:+HeapDumpOnOutOfMemoryError參數表示當JVM發生OOM時,自動生成DUMP檔案。
2)-XX:HeapDumpPath=${目錄}參數表示生成dump檔案的路徑,也可以指定檔案名稱,例如:-XX:HeapDumpPath=${目錄}/java_heapdump.hprof。
如果不指定檔案名稱,預設為:java_<pid>_<date>_<time>_heapDump.hprof。
本節展示 Tomcat 環境下設定dump匯出的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目錄}
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目錄}"
0809 BytecodeRecompilationCutoff配置
0810 PerMethodRecompilationCutoff配置
1)建議值
建議recompilationCutoff相關參數配置值為-1
2)修改方式
沒有配置 RecompilationCutoff 參數/配置的 RecompilationCutoff 參數太小,可能會導致 spider 引擎資料更新緩慢。
本節展示 Tomcat 環境下設定 recompilationCutoff 參數的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1"
0811 安裝包部署
注:僅FineBI系統檢查該項
建議使用web容器方式部署。詳情請參見:Tomcat伺服器部署
0813 codecache配置
1)建議值
FR:建議配置-XX:ReservedCodeCacheSize=512m
BI:建議配置-XX:ReservedCodeCacheSize=1024m
2)修改方式
ReservedCodeCacheSize參數是調整記憶體大小的一個設定參數,值的大小設定直接影響到Code Cache的大小。
如果Code Cache的空間不足,可能會導致JVM無法正常運作,導致效能持續降低。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:ReservedCodeCacheSize=250m
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=250m"
0814 語言配置-Duser.country
0815 語言配置-Duser.language
1)建議值
建議配置-Duser.country=TW、-Duser.language=tw
2)修改方式
為了防止中文出現亂碼現象,要配置好Tomcat 的語言編碼。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Duser.country=TW -Duser.language=tw
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Duser.country=TW -Duser.language=tw"
0816 zip相關配置-Dsun.zip.disableMemoryMapping
1)建議值
建議配置-Dsun.zip.disableMemoryMapping=true
2)修改方式
配置該參數,可預防 jvm crash
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Dsun.zip.disableMemoryMapping=true
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Dsun.zip.disableMemoryMapping=true"
0817 堆內老年代與新生代大小比例
1)建議值
建議 JVM 老年代與新生代大小比例設定為 2
2)修改方式
堆內老年代與新生代大小比例建議為 2(-XX:NewRatio=2,JVM的預設值);NewRatio 大小正常生效需要使用者不限制新生代大小。
在設定-Xmx、-Xms參數的位置,新增 NewRatio 的值即可,本節展示 Tomcat 環境下設定 NewRatio 的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M -XX:NewRatio=2
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:NewRatio=2"
0818 棧空間
1)建議值
建議單執行緒使用棧空間不超過1024KB
2)修改方式
建議單執行緒使用棧空間不超過1024KB,即 -Xss 的值不超過 1024 。
在設定-Xmx、-Xms參數的位置,新增 -Xss 的值即可,本節展示 Tomcat 環境下設定 -Xss 的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下行來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M -Xss1024K
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下行來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"
0819 debug模式
1)建議值
建議取消debug模式
2)修改方式
debug模式由兩個參數控制:-agentlib:jdwp 和 -Xrunjdwp,刪除這兩個參數即可取消debug模式
Windows:在%Tomcat%/bin目錄下的catalina.bat和setenv.bat檔案中刪除-agentlib:jdwp 和 -Xrunjdwp參數,配置完成後重啟工程。
Linux:在%Tomcat%/bin目錄下的catalina.sh和setenv.sh檔案中刪除-agentlib:jdwp 和 -Xrunjdwp參數,配置完成後重啟工程。
0820 堆內記憶體
0821 xms配置
參數介紹 | 伺服器類型 | 參考文檔 |
---|---|---|
-Xmx 參數:最大堆內記憶體 -Xms 參數:初始化記憶體大小 注1:Xmx/Xms 與數字之間不要有空格 注2:建議配置Xms=Xmx,以防止記憶體擴容失敗情況 | Tomcat 伺服器 | Tomcat 伺服器記憶體修改 |
WebLogic 伺服器 | WebLogic 伺服器記憶體修改 | |
WebSphere 伺服器 | WebSphere 伺服器 | |
JBoss 伺服器 | JBoss 伺服器 | |
Resin 伺服器 | Resin 伺服器記憶體修改 |
0823 元資料空間配置
1)參數簡介:
元資料空間(Metaspace)是 Java 虛擬機(JVM)用於儲存類元資料的區域。在 JVM 中,元資料包括類的結構資訊、方法資訊、欄位資訊等。
元資料空間配置 MaxMetaspaceSize 用於設定元資料空間的最大大小。當元資料空間超過這個限制時,JVM 會發生垃圾回收以釋放不再使用的元資料。
2)建議配置:
建議配置 MaxMetaspaceSize 參數為 2G
3)修改方式:
本節展示 Tomcat 環境下設定 MaxMetaspaceSize 的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxMetaspaceSize=2G
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -XX:MaxMetaspaceSize=2G"
3.9 服務聯通性檢查
服務聯通性檢查的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否為宕 機檢查項 | 是否支援 快速修復 | 健康標準 |
---|---|---|---|---|---|
0901 | Redis聯通 | 是 | 否 | 否 | 檢查工程與Redis組件之間是否聯通 |
0902 | 檔案伺服器聯通 | 是 | 否 | 否 | 檢查工程與檔案伺服器組件之間是否聯通 |
0903 | FineDB聯通 | 是 | 否 | 否 | 檢查工程與FineDB資料庫之間是否聯通 |
3.10 業務檢查
業務檢查的檢查項包括:
巡檢項 編號 | 檢查項 | 叢集節點是 否分別檢查 | 是否支援 快速修復 | 健康標準 |
---|---|---|---|---|
1001 | finedb | 否 | 否 | 檢查finedb資料庫的類型 健康:finedb遷移到了外接資料庫 不健康:finedb使用內建HSQL資料庫 修改建議:建議將finedb遷移至更穩定的外接資料庫中。 |
1002 | 日誌級別 | 否 | 否 | 檢查「管理系統>智慧維運>平台日誌>全局設定」中的「系統日誌級別」 健康:日誌級別高於debug級別 不健康:日誌級別為debug級別 修改建議:建議設定日誌級別為 info。 |
1003 | 日誌清理 | 否 | 否 | 檢查「管理系統>智慧維運>平台日誌>全局設定」中「自動清理」週期 健康:配置了自動清理,自動清理超過三個月的日誌 不健康:未配置自動清理 修改建議:建議開啟平台日誌自動清理並配置清理週期小於六個月。 |
1004 | 自動備份磁碟佔用限制 | 否 | 否 | 檢查「管理系統>智慧維運>備份還原>全局設定」中設定的自動備份可佔用磁碟大小 健康:各模組自動備份可佔磁碟不超過1024M 不健康:各模組自動備份可佔磁碟超過1024M 修改建議:建議各模組自動備份可佔磁碟不超過1024M。 |
1005 | 自動備份保留數量限制 | 否 | 否 | 檢查「管理系統>智慧維運>備份還原>全局設定」中設定的自動備份保留數量 健康:各模組成功/失敗自動備份可分別保留不超過5份 不健康:各模組成功/失敗自動備份可分別保留超過5份 修改建議:建議自動備份預設儲存不超過5份。 |
1006 | 排程管理任務清理配置 | 否 | 否 | 檢查排程管理任務>調度物件中,檔案處理方式的設定 健康:僅保留最近一次或任務結束即清理 不健康:其他檔案處理方式 修改建議:建議排程管理調度物件檔案處理設定為「僅保留最近一次」。 |
1007 | 記憶體資料列數限制 | 否 | 否 | 注:僅FineBI系統檢查該項 檢查「管理系統>系統管理>標準>BI參數」 中的「資料存取量」參數 健康:不超過100w 不健康:超過100w 修改建議:建議資料存取量不超過100w。 |
1008 | 快速分析儲存格數限制 | 否 | 否 | 注:僅FineBI系統檢查該項 檢查系統的spider_fast_compute_limit_unit參數值 健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit參數值不超過10000000 不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit參數值超過10000000 |
1009 | 快速分析記憶體大小限制 | 否 | 否 | 注:僅FineBI系統檢查該項 檢查系統的spider_fast_compute_limit_memory參數值 健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory參數值不超過500000000 不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory參數值超過500000000 |
1010 | 快速分析更新儲存格數限制 | 否 | 否 | 注:僅FineBI系統檢查該項 檢查系統的spider_update_fast_compute_limit_cell參數值 健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell參數值不超過100000000 不健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell參數值超過100000000 |
1011 | 快速分析行數限制 | 否 | 否 | 注:僅FineBI系統檢查該項 檢查系統的spider_fast_compute_limit_row參數值 健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row參數值不超過10000000 不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row參數值超過10000000 |
1012 | spark計算結果記憶體大小限制 | 否 | 否 | 注:僅FineBI系統檢查該項 檢查系統的spiderConfig.spark_driver_maxResultSize參數值 健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize參數值不超過10000000 不健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize參數值超過10000000 |
1014 | 外接庫的資料庫編碼/字元集 | 否 | 否 | 僅匯出資訊 包括finedb外接資料庫的資料庫編碼/字元集 外接資料庫配置步驟請參見:配置外接資料庫 |
1015 | 叢集參數配置 | 否 | 否 | 僅匯出資訊 檢查「管理系統>智慧維運>叢集配置>參數配置」中的內部轉發參數 叢集參數配置請參見:叢集參數配置 |
1016 | 更新資源無限制時間段配置 | 否 | 否 | 注:僅FineBI系統檢查該項 僅匯出資訊 檢查「管理系統>系統管理>標準>抽取參數」 中的「更新高效能時間區間」參數 BI參數配置請參見:BI/Spider參數 |
1017 | 二級快取開啟情況 | 否 | 否 | 僅匯出資訊 檢查系統是否配置二級快取 二級快取開啟及配置請參見:指定ehcache快取路徑 |
1018 | sql執行時長限制 | 否 | 否 | 檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的sql執行時長限制 健康:開啟了sql執行時長限制 不健康:未開啟sql執行時長限制 修改建議:建議開啟記憶體管理-範本限制-通用限制-sql執行時長限制功能。 |
1019 | 單範本儲存格數限制 | 否 | 否 | 檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的單範本儲存格限制 健康:開啟了單範本儲存格限制 不健康:未開啟單範本儲存格限制 修改建議:建議開啟系統管理-智慧維運-記憶體管理-範本限制-通用限制-單範本儲存格限制功能。 |
1020 | 匯入excel儲存格數限制 | 否 | 否 | 檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的匯入Excel儲存格限制 健康:開啟了匯入Excel儲存格限制 不健康:未開啟匯入Excel儲存格限制 修改建議:建議開啟系統管理-智慧維運-記憶體管理-範本限制-通用限制-匯入excel儲存格限制功能。 |
1022 | 單資料集列數限制 | 否 | 否 | 檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的單資料集列數限制 健康:開啟了單資料集列數限制 不健康:未開啟單資料集列數限制 修改建議:建議開啟系統管理-智慧維運-記憶體管理-範本限制-通用限制- 單資料集列數限制功能。 |
1023 | 負載預警開啟 | 否 | 否 | 僅匯出資訊 檢查「管理系統>智慧維運>負載管理>負載監視」中是否開啟「智慧預警」 詳情請參見:負載管理 |
1024 | 髒資料檢查 | 否 | 否 | 注:僅FineBI系統檢查該項 檢查是否存在髒資料 健康:0條髒資料 不健康:x條髒資料 修改方法:有X條髒資料,建議在「BI工具」-「檢查」-「髒資料」中進行排查清理 |
1025 | 是否開啟雲端健檢分析 | 否 | 否 | 僅匯出資訊 檢查系統是否開啟雲端健檢分析 雲端健檢分析功能請參見:雲端健檢分析 |
1026 | 密碼強度限制檢查 | 否 | 否 | 檢查「管理系統>系統管理>登入」中是否開啟「密碼強度限制」 健康:開啟了密碼強度限制 不健康:未開啟密碼強度限制 修改建議:未開啟密碼強度限制,密碼強度較低可能容易被攻擊,導致安全問題,建議在[管理系統]-[系統管理]-[登入]中開啟密碼強度限制 |
1001 finedb
管理者登入帆軟應用,點選「管理系統>系統管理>標準>外接資料庫」,將finedb遷移至更穩定的外接資料庫中。
外接資料庫遷移的具體操作步驟請參見:配置外接資料庫
1002 日誌級別
管理者登入帆軟應用,點選「管理系統>智慧維運>平台日誌>全局設定」。
在「系統日誌級別」中設定日誌級別為 info,點選「儲存」即可。
日誌級別設定請參見:日誌簡介
1003 日誌清理
管理者登入帆軟應用,點選「管理系統>智慧維運>平台日誌>全局設定」。
在「操作日誌清理」中開啟「自動清理」並配置清理週期小於六個月。
操作日誌自動清理設定請參見:日誌簡介
1004 自動備份磁碟佔用限制
管理者登入帆軟應用,點選「管理系統>智慧維運>備份還原>全局設定」。
在「自動備份」中,建議各模組自動備份可佔磁碟不超過1024M。備份還原設定請參見:备份还原
1005 自動備份保留數量限制
管理者登入帆軟應用,點選「管理系統>智慧維運>備份還原>全局設定」。
在「自動備份」中,建議自動備份預設儲存不超過5份。備份還原設定請參見:备份还原
1006 排程管理任務清理配置
管理者登入帆軟應用,在「排程管理」中,對「排程管理任務>調度物件」的檔案處理方式設定為「僅保留最近一次」。
排程管理任務設定請參見:排程管理任務設定
1007 記憶體資料列數限制
注:僅FineBI系統檢查該項
管理者登入帆軟應用,點選「管理系統>系統管理>標準>BI參數」 。
建議「資料存取量」參數值不超過100w。BI參數配置請參見:BI/Spider參數
1008 快速分析儲存格數限制
注:僅FineBI系統檢查該項
「快速分析儲存格數限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit參數值不超過10000000
點選「儲存」,並重啟FineBI工程,配置生效。
1009 快速分析記憶體大小限制
注:僅FineBI系統檢查該項
「快速分析記憶體大小限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory參數值不超過500000000
點選「儲存」,並重啟FineBI工程,配置生效。
1010 快速分析更新儲存格數限制
注:僅FineBI系統檢查該項
「快速分析更新儲存格數限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell參數值不超過100000000
點選「儲存」,並重啟FineBI工程,配置生效。
1011 快速分析列數限制
注:僅FineBI系統檢查該項
「快速分析記憶體大小限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row參數值不超過10000000
點選「儲存」,並重啟FineBI工程,配置生效。
1012 spark計算結果記憶體大小限制
注:僅FineBI系統檢查該項
「spark計算結果記憶體大小限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize參數值不超過10000000
點選「儲存」,並重啟FineBI工程,配置生效。
1018 sql執行時長限制
管理者登入帆軟應用,點選「管理系統>智慧維運>負載管理>範本限制>通用限制」。
建議開啟sql執行時長限制功能。範本限制請參見:範本限制
1019 單範本儲存格數限制
管理者登入帆軟應用,點選「管理系統>智慧維運>負載管理>範本限制>通用限制」。
建議開啟單範本儲存格限制功能。範本限制請參見:範本限制
1020 匯入excel儲存格數限制
管理者登入帆軟應用,點選「管理系統>智慧維運>負載管理>範本限制>通用限制」。
建議開啟匯入excel儲存格限制功能。範本限制請參見:範本限制
1022 單資料集列數限制
管理者登入帆軟應用,點選「管理系統>智慧維運>負載管理>範本限制>通用限制」。
建議開啟單資料集列數限制功能。範本限制請參見:範本限制
1024 髒資料檢查
注:僅FineBI系統檢查該項
管理者登入帆軟應用,點選「BI工具>檢查>髒資料」。
檢查系統中的髒資料,並進行排查清理。
1026 密碼強度限制檢查
管理者登入帆軟應用,點選「管理系統>系統管理>登入」 。
在「密碼策略設定」中,建議開啟「密碼強度限制」,並自訂設定密碼強度。
詳情請參見:密碼策略設定
4. 基本維護
在應用日常的正常運作程式中,維護交易相對簡單,在有需要的時候能夠查看應用的運作日誌,或查看應用的各項監視指標是否存在異常即可
4.1 應用啟停
應用日常的維護工作中,經常會需要對應用進行啟停重啟等操作。
單機環境依賴較少,無嚴格順序需求。
叢集環境相關組件較多,為儘量降低應用使用的風險,請儘量按以下順序進行啟停
4.1.1 啟動順序
由於應用的正常運作對組件有依賴,因此需要先啟動相關組件,再啟動應用。順序為:
1)負載均衡組件(Nginx)
2)狀態伺服器組件(Redis)
3)檔案伺服器組件(FTP)
4)外接資料庫組件(Mysql)
5)帆軟應用(叢集依次啟動各節點即可)
各組件和應用可以配置開機自啟動,便於在重啟伺服器後自動啟動恢復服務:
4.1.2 停止順序
對於應用的停止順序沒有嚴格要求,但由於組件的關閉會直接導致應用不可用,因此建議先關閉帆軟應用(kill命令避免進程殘留),再關閉各個組件
4.2 日誌查看
1)內容說明
帆軟應用通常涉及以下幾類日誌:
日誌類型 | 日誌儲存 | 日誌內容 |
---|---|---|
系統日誌 | 預設儲存在%FR_HOME%\logs\fanruan.log 設計器端允許修改日誌儲存位置 伺服器端不允許修改日誌儲存位置 | 記錄系統運作程式中的一些資訊 |
操作日誌 | 儲存在%FR_HOME%\webapps\webroot\logs\cubes 允許修改日誌儲存位置 FineReport11.0.4/FineBI5.1.22及之後版本支援實時備份 | 記錄普通使用者和管理者的使用動作 |
補充日誌 | 儲存在%FR_HOME%\bin\error.txt 不允許修改日誌儲存位置 | 記錄設計器預期外的報錯 |
gc.log | 預設儲存在%FR_HOME%/logs/gclogs | 用來分析伺服器gc(垃圾回收)的情況 |
catalina.out | Tomcat部署情況下存在 預設儲存在%FR_HOME%/logs | tomcat及應用運作日誌 |
catalina.log | Tomcat部署情況下存在 預設儲存在%FR_HOME%/logs | tomcat自身運作日誌 |
access.log | Tomcat部署情況下存在 預設儲存在%FR_HOME%/logs | tomcat及應用存取日誌,記錄存取請求詳情 |
2)如何透過帆軟功能快捷維運
帆軟提供下載日誌功能,管理者登入數據決策系統,點選「管理系統>智慧維運>平台日誌」,其中「下載日誌」Tab提供相應功能。
透過此功能可實現下載指定時間的指定日誌,並支援查看日誌儲存位置。
4.3 監視指標
1)指標說明
日常運作中,維運人員主要需要關注以下各指標是否存在異常:
指標 | 監視內容 |
---|---|
記憶體 | 透過命令列或視覺化查看伺服器的記憶體使用情況,是否出現記憶體佔用過高(80%及以上) |
CPU | 透過命令列或視覺化查看伺服器的CPU使用情況,是否出現CPU佔用過高(80%及以上) |
磁碟空間 | 透過命令列或視覺化查看帆軟應用所在磁碟目錄的磁碟空餘情況,是否磁碟剩餘空間過小(不足10GB) |
2)如何透過帆軟功能快捷維運
帆軟提供記憶體管理頁面,點選「管理系統>智慧維運>負載管理」,其中「負載監視」Tab提供相應功能(11.0.3及之前版本叫「記憶體管理」及「記憶體監視」)
透過此功能可實現視覺化查看帆軟應用而非整個伺服器的近期「負載曲線」、「記憶體曲線」和「CPU曲線」,快速瞭解帆軟應用運作及壓力狀況。
帆軟提供磁碟維運功能,點選「管理系統>智慧維運>磁碟維運」,其中「磁碟使用情況分析」Tab提供相應功能(11.0.3及之前版本暫不支援)
透過此功能可實現視覺化查看帆軟應用重點相關磁碟目錄的使用情況,即時避免出現磁碟不足。
5. 異常維護
5.1 異常警告
如需對帆軟應用的異常即時感知,需實現對帆軟應用各項指標的監視警報,實現的方案有以下幾點建議:
1)如使用的是雲伺服器(如阿里雲、華為雲等),可使用雲服務廠商提供的監視類雲服務,對伺服器的資源異常進行監視
2)自行開發實現對於帆軟應用的監視,如基於promthues組件等
3)針對系統負載過高的場景,帆軟提供智慧預警功能,檢查到負載狀態過高時將提醒維運人員。
管理者登入數據決策系統,點選「管理系統>智慧維運>負載管理」,其中「負載監視」內可進行智慧預警配置。
4)針對系統出現當機的場景,帆軟提供當機通知功能,檢查到系統當機時將提醒維運人員。
管理者登入數據決策系統,點選「管理系統>智慧維運>當機處理」,其中「當機處理」內可進行當機通知配置。
5)針對系統磁碟空間不足的場景,帆軟提供磁碟預警功能,檢查到應用相關磁碟空間不足時,將提醒維運人員。
管理者登入數據決策系統,點選「管理系統>智慧維運>磁碟維運」,其中「磁碟預警設定」tab頁內可進行磁碟預警配置。
5.2 當機處理
當應用出現異常時,當機可能會隨之發生,此時為了業務的可用,需要快速恢復應用,同時應儘量儲存當機時刻的日誌資訊,方便進行當機原因定位及風險排除,避免再次出現類似異常。對於當機,應進行以下維運動作:
1)保證系統環境有jdk工具,當應用發生當機時,即時匯出dump檔案
進入到對應的jdk的bin目錄
以linux+tomcat為例,查看pid的方式為使用ps -ef|grep tomcat管道過濾命令,查看對應的伺服器進行pid。
使用命令jmap -dump:format=b,file=檔案名稱 [pid]來生成dump。
2)自行開發對帆軟應用是否存活的監視,並在發現其不可用時告知到維運人員,並透過自動化腳本重啟應用,或人工進行監視及應用重啟
重啟或停止應用時需確定完全關閉工程相關進程,詳情請參見:關閉或重啟FineReport工程
3)在當機發生後自行透過dump分析當機原因或聯絡技術支援協助定位,並儘快排除當機風險。
4)針對當機場景,帆軟提供應用存活監視功能,管理者登入數據決策系統,點選「管理系統>智慧維運>當機處理」。
透過「當機處理」可以實現當機訊息通知,當機日誌自動匯出,及當機後自動重啟恢復。
5)針對當機定位,帆軟提供當機自助處理功能,管理者登入數據決策系統,點選「管理系統>智慧維運>當機處理」。
透過「當機自助精靈」可以對大多數的當機原因給出分析結果並提供改進建議。
6. 備份與升級
6.1 備份還原
帆軟系統需要定期進行備份,以確定在使用者誤操作、版本回退等場景下能夠即時恢復,備份及還原方式如下:
1)自行備份:
定期將完整工程copy並壓縮後,放在磁碟空間充足的目錄或其他伺服器上,並定期備份工程的外接配置資料庫
2)透過帆軟功能進行備份還原:
帆軟平台提供備份還原的功能,支援對「平台配置」、「報表範本」、「BI範本」、「JAR 包」、「插件」進行備份還原。
預設備份路徑為../backup,備份檔案儲存在工程的%FR_HOME%/webapps/webroot/backup資料夾下,支援修改為其他備份路徑,在「全局設定」中進行配置
備份方式分為自動及手動,手動備份即手動建立一份備份,自動備份則按照設定的自動備份「備份頻率」、「份數上限」、「備份容量」、「備份失敗提醒」進行定期自動備份
備份內容如下:
備份內容 | 簡介 | 備份生成的資料夾 |
---|---|---|
平台配置 | 備份系統的平台設定項 | config |
報表範本 | 備份%FineBI%\webapps\webroot\WEB-INF\reportlets資料夾中的範本 | reportlets |
BI 範本 | 備份%FineBI%\webapps\webroot\WEB-INF\dashboards資料夾中的範本 | dashboards |
JAR 包 | 備份%FineBI%\webapps\webroot\WEB-INF\lib資料夾中的 JAR 包 | jar |
插件 | 備份系統安裝的插件 | plugins |
選擇手動備份/自動備份下備份的檔案,點選「還原按鈕」,「確認」後即可進行還原,還原後重啟伺服器即可生效
不同內容還原生效的方式略有差別,詳情如下表所示:
還原內容 | 描述 |
---|---|
平台配置 | 重啟工程後,還原生效 注:平台配置處,不支援 2019-11-08 到 2020-07-17 的 |
報表範本 | 無需重啟,立即生效
|
BI範本 | 無需重啟,立即生效。但需同時還原「平台配置」,方可恢復儀表板 還原後,當前工程下的所有儀表板都會被刪除,更換為備份的儀表板 |
JAR 包 | 重啟工程後,還原生效 |
插件 | 無需重啟,立即生效 |
6.2 更新升級
帆軟產品會持續不斷的迭代更新,可能增加新的功能或針對歷史版本存在的問題進行修復,為了能獲得更好的功能體驗,客戶往往也要跟隨更新版本,本章僅介紹小版本升級方式,大版本升級請聯絡帆軟技術人員進行協助,具體更新升級方式如下:
1)決策平台管理升級(不適用於BI):
開啟數據決策系統,在「管理系統>智慧維運>備份還原>更新升級」點選「立刻更新」按鈕,等待更新 JAR,成功後重啟 Web 伺服器即可。
2)升級前需確定已進行備份操作,保證升級程式或升級後出現異常可以即時恢復可用狀態不至於造成損失,備份方法可參考上一節
3)人工更新 JAR 包:使用者可以獲取 JAR 包後手動更換更新, linux 系統和 windows 系統下操作方式一致。
4)使用者可以向帆軟技術人員索要升級jar包,獲取後,更換伺服器工程 %TOMCAT_HOME%/webapps/webroot/WEB-INF/lib下的老jar包,重啟伺服器即可完成升級。
5)BI更新升級前請先運作升級工具,在決策平台中點選「BI升級」進行檢查,按指導處理完成升級風險項後進行人工更新。