?

服務于MySQL數據庫的在線監測系統設計

2022-11-28 09:28楊一帆
自動化技術與應用 2022年10期
關鍵詞:配置文件日志解析

楊一帆

(陜西青年職業學院,陜西 西安 710068)

1 引言

MySQL數據庫是一種海量數據存儲與管理技術,該技術的內部邏輯結構十分復雜,一般以分布式集群架構為主,在系統資源有限的情況下,由于數據庫負載較高,因此在運行過程中十分容易出現故障。為維護系統穩定運行,有必要對MySQL 數據庫進行實時的在線監測,建立完整有效的MySQL數據庫在線監測系統[1-3]。

2 系統總體結構設計

本次研究所設計的MySQL 數據庫在線監測系統基本結構如圖1所示。

MySQL 數據庫在線監測系統的程序運行流程基本如下:(1)通過Linux Corn 定時器采集系統原始指標數據;(2)根據上層監測指標對數據庫運行狀態進行計算,在指標值超出特定閾值的情況下發出警告,同時合并監測指標數據;(3)向Agent節點上傳合并結果文件,通過Agent節點對監測指標數據文件加以解析;(4)將解析后的數據上傳至數據庫,最后通過前臺應用對各項指標信息加以展示。

3 系統功能結構設計

本次研究所設計的MySQL數據庫在線監測系統由7個主要的功能模塊所組成,分別為前端邏輯展現模塊、監測指標數據入庫模塊、監測指標合并上傳模塊、監測指標計算注冊模塊、異常狀態告警模塊、監測指標數據獲取模塊以及系統數據集合獲取模塊。其中監測指標計算注冊模塊、監測指標數據獲取模塊和系統數據信息獲取模塊是MySQL數據庫在線監測系統的核心功能模塊。

4 主要功能模塊設計

4.1 系統數據信息獲取模塊

(1) 獲取MySQL狀態參數數據

MySQL數據庫在線監測系統采取執行MySQL命令的方式獲取MySQL狀態參數,具體包括how slave status、show processlist、show variables、show global status等命令[4-5];

(2) 獲取MySQL配置文件信息

MySQL啟動時所加載的配置信息即為MySQL配置文件信息,該信息存儲于MySQL 配置文件所在目錄中,在該目錄中讀取并解析MySQL 配置文件即可獲取多實例啟動設置、二進制日志是否打開、DNS 反解是否打開、數據目錄位置等信息[6-7];

(3) 獲取MySQL賬號權限數據

MySQL數據庫在線監測系統在與MySQL數據庫連接后可利用show grants 命令獲取MySQL 賬號權限數據,例如數據庫用戶權限信息以及用戶列表等[8-9];

(4) 獲取MySQL進程pid信息

系統為MySQL 數據庫分配的進程ID 號即為My-SQL進程pid信息,該信息可采取執行linux命令ps的方式獲取[10-11];

(5) 獲取服務器狀態數據信息

服務器狀態數據信息具體包括磁盤占用率、內存占用率以及CPU占用率等硬件運行狀態信息,主要用于展示服務器當前的負載壓力。在系統功能設計中,可以通過對服務器運行狀態文件/proc/meminfo/proc/cpuinfo加以分析的方式獲取服務器狀態數據信息[12-13]。

4.2 監測指標數據獲取模塊

本次研究通過文本解析類的方式來解析并獲取監測指標數據,相關操作主要涉及錯誤日志解析、慢查詢日志解析和MySQL配置文件解析。

(1) 錯誤日志解析

MySQL 數據庫錯誤日志的路徑信息為error_log_name,因此通過/usr/bin/tailn 50 error_log_name 命令直接提取錯誤日志文件中最后50行數據;

(2) 慢查詢日志解析

MySQL 數據庫的慢查詢文件路徑信息為slowquery_filename,因此可以在mysqldumpslow工具中輸入/usr/bin/mysqldumpslowt 30 -s at slowquery_filename 命令直接解析慢查詢文件,進而提取最慢的30個慢查詢;

(3) MySQL配置文件解析

直接針對MySQL配置文件加以解析即可獲取Unix socket 文件位置、數據目錄datadir、慢查詢日志位置、錯誤日志位置等信息。

4.3 監測指標注冊模塊

為了進一步提高系統擴展性,本次研究還為MySQL數據庫在線監測系統設置了監測指標注冊模塊,該模塊也是整個在線監測系統的中樞機構,主要負責維護監測指標數據獲取模塊和數據信息獲取模塊之間的對應關系,該模塊的具體結構如圖2所示。

5 系統數據庫設計

5.1 數據庫表設計

本次研究所設計的MySQL數據庫在線監測系統共包含13 張數據庫表,分別為告警記錄表、告警閾值表、監測指標數據表、數據中心信息表、文件指標信息表、實時指標信息表、用戶業務對應表、業務表、系統操作記錄表、常規操作記錄表、用戶權限表、操作對象表以及用戶信息表,部分數據庫表的設計方案如表1、表2、表3所示。

表1 告警記錄表

表2 告警閾值表

表3 監測指標數據表

6 數據庫關系設計

在MySQL 數據庫在線監測系統的數據庫設計方案中,本次研究將告警記錄表記為T_Alarm_Log,將告警閾值表記為T_Alarm,將指標信息表記為T_Realtime_Index,數據中心信息表記為T_IDC,將文件指標數據表記為T_File_Index_Info,將監測數據存儲表為T_MySQL_Index_Data,將系統操作記錄表記為T_Sys_Oper_Log,將常規操作記錄表記為T_Oper_Log,將操作對象表記為T_OpObject,將用戶授權表記為T_Athority,將用戶業務關聯表記為T_Business_User,將業務表記為T_Business,將用戶表記為T_User。最終所建立了數據庫關系如圖3所示。

7 系統功能核心模塊的實現

以系統數據信息獲取模塊中的MySQL 實例狀態獲取功能為例,該功能主要負責獲取SQL 數據庫的用戶權限數據、連接用戶信息數據、參數變量數據以及實例的運行狀態數據。在系統功能實現方面可以利用MySQL專屬的管理員命令獲取以上數據,相關命令以及所對應的功能如下:

(1) show full processlist命令

獲取與MySQL實例連接的相關進程信息,例如運行狀態信息、IP信息等;

(2) show global status命令

獲取MySQL 各項運行狀態信息,一共包含222 個數據庫運行狀態指標;

(3) show variables命令

獲取MySQL運行各參數的設定值,進而展示MySQL實例的對應配置。

MySQL實例狀態獲取功能的程序運行流程如圖4所示。

該功能最終的界面展示結果如圖5所示。

8 結束語

本文詳細介紹了MySQL 數據庫在線監測系統的設計思路、功能結構以及核心功能的界面展示結果。在未來的研究中,還需要進一步將數據可視化技術應用于MySQL數據庫監測指標展示,進而建立起圖形化的查詢界面,方便管理者對MySQL數據庫進行實時觀察。

猜你喜歡
配置文件日志解析
基于Docker的實時數據處理系統配置文件管理軟件的設計與實現
一名老黨員的工作日志
三角函數解析式中ω的幾種求法
從Windows 10中刪除所有網絡配置文件
扶貧日志
用軟件處理Windows沙盒配置文件
互不干涉混用Chromium Edge
雅皮的心情日志
雅皮的心情日志
睡夢解析儀
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合