平台日誌同步到其他資料庫插件

1. 概述

1.1 版本

FineBI 版本平台日誌同步到其他資料庫插件
6.0V1.0.0

1.2 應用場景

  • 目前 LogDB 資料庫不支援遷移,使用者如果想對日誌資料進行一些複雜分析時較為麻煩,希望日誌資料可以遷移到自己的資料庫中進行管理和分析。

  • 使用者希望把各個系統的日誌都放在同一個地方維運管理。

1.3 功能簡介

安裝「平台日誌同步到其他資料庫」插件後,使用者可以透過設定將 LogDB 中的部分表資料定期同步到其它資料庫中。

2. 插件介紹

2.1 安裝插件

插件下載請點選:平台日誌同步到其他資料庫插件

插件安裝方法參見:插件管理

2.2 支援遷移到的資料庫

由於logdb日誌內容較多,請準備一個獨立的、全新的表空間,用於資料遷移儲存。

不建議logdb資料,與其他業務資料/配置資料存放在同一表空間中。

    資料庫類型      支援資料庫版本
MySQL5.1.73、5.5.31、5.5.46、5.5.56、5.6.22、5.6.31、5.7.16           
SqlServer2000、2005、2008、2012、2014、2016
Oracle10g、11g、12c

2.3 日誌同步

插件安裝成功後,點選「管理系統>智慧維運>平台日誌」,平台日誌介面新增「日誌同步」Tab,如下圖所示:

3. 範例

3.1 選擇所要同步的日誌

1)以管理者身分進入數據決策系統,點選「管理系統>智慧維運>平台日誌」,在「日誌同步」Tab 頁中點選「設定日誌同步任務」,如下圖所示:

2)在日誌同步設定中,選擇「同步日誌起始時間」,勾選需要同步的日誌,點選「下一步」。如下圖所示:

支援同步的日誌表包括:

  • 報表執行日誌 fine_record_execute

  • 登入日誌 fine_record_login

  • 登出日誌 fine_record_logout

  • 郵件傳送日誌 fine_record_email

  • 填報日誌 fine_record_write

  • 常用參陣列合 fine_record_param

  • 簡訊傳送日誌 fine_record_sms

  • 管理行為日誌 fine_record_operate

  • SQL 執行情況 fine_record_sql

  • 應用實時情況 fine_real_time_usage

  • gc日誌 fine_record_gc

  • conf_entity 配置資訊 fine_record_conf

  • 使用者鎖定日誌 fine_record_lock

  • 範本屬性 fine_tpl_info

  • 容器資訊日誌 fine_container_entity

  • 功能點資訊日誌 fine_function_process

  • 雲端健檢分析操作日誌fine_operation_process_log

  • 信號量資訊 fine_operation_shutdown_record

  • 插件使用資訊記錄 fine_plugin_usage

  • 定時任務執行日誌 fine_schedule_record

  • 功能使用情況 fine_intelli_focus_point

  • 效能資訊日誌 fine_intelli_consume_point

3.2 配置資料庫資訊

填寫日誌資料將要遷移到的資料庫相關資訊,點選「確定」,如下圖所示:

4. 效果查看

4.1 同步狀態

注:插件每 3 分鐘同步一次,每張表每次最多同步資料 3W 條。如果本次同步的資料不足 3W 條,那最多同步 24 個小時跨度的資料。

      例如2021-08-02 13:00:00~16:00:00,有30筆資料,那這次同步就最多同步這30筆資料。

同步成功後,同步狀態如下圖所示:

4.1.1 同步失敗時,通知管理者

若勾選「同步失敗時,通知管理者」按鈕,同步失敗時,管理者會收到平台訊息。如下圖所示:

4.1.2 暫停同步

可點選「暫停」按鈕,暫停同步。如下圖所示:

4.1.3 編輯同步設定

暫停同步或同步失敗時,可點選「編輯」按鈕,重新編輯同步任務。如下圖所示:

“起始時間生效物件”設定說明:

若希望所有被勾選的表都從使用者設定的「同步日誌起始時間」開始同步,則“起始時間生效物件”設定為“所有同步的日誌”;

若希望只有新增加的表從「同步日誌起始時間」的設定值開始同步,其餘已有在同步的表延着之前同步到的地方繼續同步,則“起始時間生效物件”設定為“僅對本次變動的日誌生效”。

4.1.4 查看同步詳情

點選「查看同步詳情」按鈕,可查看同步詳情。如下圖所示:

只展示上次同步任務的運作狀態。各欄位說明如下表所示:

欄位名稱說明
同步表所選擇的同步日誌
同步日誌截止時間最近一次執行結束的同步任務中,入庫日誌的最晚時間,表示在「同步日誌起始時間」到此時間點之間的日誌都已經入庫了
最近一次同步時間最近一次執行結束同步任務的開始執行時間
最近一次同步資料量最近一次執行結束同步任務同步的日誌記錄數
最近一次同步耗時最近一次執行結束同步任務執行的耗時
運作結果

成功/失敗

運作結果為「失敗」情況下,可以點選查看具體報錯

4.2 日誌資料同步到資料庫

日誌資料同步到設定的資料庫中。

1)同步後的表,新增了自增長主鍵(syncID),增加了同步時間戳欄位(storageTime)

2)日誌清理 不會影響到已遷移到外接資料庫中的日誌資料。

3)欄位中內容過長可以入庫,但是超過 255 字元的內容會被截斷。

4)欄位名使用資料庫保留名時,為了能夠相容各個版本,針對保留名做別名處理。

改名處理的具體欄位如下表所示:


原欄位名稱遷移後欄位名稱
FINE_RECORD_OPERATEtypeoperateType
resourceoperateResource
statusoperateStatus
FINE_RECORD_EXECUTEtypeexecuteType
sqlquery
sqlTimequeryTime
FINE_RECORD_WRITEsqlquery
sqlTimequeryTime

5. 常見問題

5.1 同步邏輯

內容
說明
同步邏輯目前平台日誌同步邏輯是插入提交,多次同步同個時段的資料就會重複提交。
同步頻率

同步插件會以使用者設定的同步開始時間為起點,按照時間順序分批將日誌同步到第三方資料庫中,插件每3分鐘同步一次,每張表每次最多同步資料3W 條。

如果本次同步的資料不足3W 條,那最多同步 24 個小時跨度的資料(2021-3-23之前最多同步3小時跨度的資料)。

同步欄位長度欄位中內容過長可以入庫,但是超過 255 字元的內容會被截斷,僅提交255字元長度內的內容。
同步狀態插件處顯示的同步狀態實際是指的插件運作狀態,並非同步狀態。

5.2 資料庫問題

同步失敗,可排查以下資料庫問題。

排查步驟
說明
檢查資料庫版本支援的資料庫類型和版本請參考2.2節。
檢查資料庫資訊

檢查資料庫驅動、模式、密碼是否正確,可在資料連結處先嚐試是否能正常連結。

資料庫重啟會導致日誌同步中斷,同步終止後要在平台上重新啟動任務。

檢查資料庫使用者權限

檢查資料庫使用者是否有建立表和插入資料的權限。

使用者最好需要具備 create、delete、alter、update、select、insert 權限。

檢查資料庫編碼

MySQL5資料庫編碼建議為utf8,不支援 utf8mb4 編碼。

若為阿里雲rds mysql ,還需要確認引擎是否為innodb。

5.3 插件問題

同步失敗,出現三種現象時,可排查以下插件問題。

問題描述:

1)fanruan.log中報錯有重複的插件包

2)平台日誌同步介面顯示空白

3)平台日誌同步介面顯示英文

排查步驟
說明
檢查插件安裝

檢查是否重複安裝了插件

若重複安裝了,刪除插件,重啟伺服器,重新安裝插件

檢查websocket埠檢查websocket埠是否正常,可參考:WebSocket連結失敗

5.4 常見報錯

同步出現問題,可查看fanruan.log,報錯資訊中包含「com.fr.plugin.sync」,可根據報錯資訊定位問題。

報錯資訊原因分析及解決方案

SyncLog: getConfigInstance failed!, retry to getConfigInstance!

java.lang.AssertionError: com.fr .plugin.sync.config.status.IsStart has the same tableName with com.fr .plugin.sync.config.status.IsStart

1)安裝了不同版本的平台日誌同步插件,需要在plugins中將插件檔案刪除乾淨,重啟伺服器,再次安裝。

2)同時安裝了「日誌資料同步」 插件和「平台日誌同步到其他資料庫」插件,需將舊版本「日誌資料同步」 插件刪掉。

Can not set int field com.fr .plugin.sync.db.entity.Schedule.logType to java.lang.LonglogDB不支援int型,需要將int改為long。更新插件至1.1.2及以上版本。
SyncLog: get logs failed from XXX

同步的XXX表太大,swift中止查詢,導致查詢失敗。

平台日誌同步插件無法支援特別大數據量的日誌同步,建議適當清理表資料再同步。

SyncLog: sync failed: com.fr.third.org.hibernate.StaleStateException: 

Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1。

hibernate偶發儲存資料失敗。更新插件至1.0.8及以上版本。
java.sql.SQLException: Incorrect string value: '/xE4/xB8/xB4/xE6/x97/xB6...' for column 'userrole' at row 1

資料庫或表的字元集有問題。

MySQL5資料庫編碼建議為utf8,不支援 utf8mb4 編碼。

若為阿里雲rds mysql ,還需要確認引擎是否為innodb。

QueryTimeoutException- could not extract ResultSet

資料庫可能有未提交的交易,導致資料提交失敗。

檢查是否存在沒提交的交易,若存在,處理後再嘗試同步。

could not execute statement檢查資料庫的模式和編碼類型

MySQL5資料庫編碼建議為utf8,不支援 utf8mb4 編碼。

若為阿里雲rds mysql ,還需要確認引擎是否為innodb。

Oracle模式填thin就會報錯,將改成帳號即可。


附件列表


主题: 管理系統
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s后關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙