服务于MySQL数据库的在线监测系统设计

杨一帆

(陕西青年职业学院,陕西 西安 710068)

MySQL数据库是一种海量数据存储与管理技术,该技术的内部逻辑结构十分复杂,一般以分布式集群架构为主,在系统资源有限的情况下,由于数据库负载较高,因此在运行过程中十分容易出现故障。为维护系统稳定运行,有必要对MySQL 数据库进行实时的在线监测,建立完整有效的MySQL数据库在线监测系统[1-3]。

本次研究所设计的MySQL 数据库在线监测系统基本结构如图1所示。

MySQL 数据库在线监测系统的程序运行流程基本如下:(1)通过Linux Corn 定时器采集系统原始指标数据;
(2)根据上层监测指标对数据库运行状态进行计算,在指标值超出特定阈值的情况下发出警告,同时合并监测指标数据;
(3)向Agent节点上传合并结果文件,通过Agent节点对监测指标数据文件加以解析;
(4)将解析后的数据上传至数据库,最后通过前台应用对各项指标信息加以展示。

本次研究所设计的MySQL数据库在线监测系统由7个主要的功能模块所组成,分别为前端逻辑展现模块、监测指标数据入库模块、监测指标合并上传模块、监测指标计算注册模块、异常状态告警模块、监测指标数据获取模块以及系统数据集合获取模块。其中监测指标计算注册模块、监测指标数据获取模块和系统数据信息获取模块是MySQL数据库在线监测系统的核心功能模块。

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.1 数据库表设计

本次研究所设计的MySQL数据库在线监测系统共包含13 张数据库表,分别为告警记录表、告警阈值表、监测指标数据表、数据中心信息表、文件指标信息表、实时指标信息表、用户业务对应表、业务表、系统操作记录表、常规操作记录表、用户权限表、操作对象表以及用户信息表,部分数据库表的设计方案如表1、表2、表3所示。

表1 告警记录表

表2 告警阈值表

表3 监测指标数据表

在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所示。

以系统数据信息获取模块中的MySQL 实例状态获取功能为例,该功能主要负责获取SQL 数据库的用户权限数据、连接用户信息数据、参数变量数据以及实例的运行状态数据。在系统功能实现方面可以利用MySQL专属的管理员命令获取以上数据,相关命令以及所对应的功能如下:

(1) show full processlist命令

获取与MySQL实例连接的相关进程信息,例如运行状态信息、IP信息等;

(2) show global status命令

获取MySQL 各项运行状态信息,一共包含222 个数据库运行状态指标;

(3) show variables命令

获取MySQL运行各参数的设定值,进而展示MySQL实例的对应配置。

MySQL实例状态获取功能的程序运行流程如图4所示。

该功能最终的界面展示结果如图5所示。

本文详细介绍了MySQL 数据库在线监测系统的设计思路、功能结构以及核心功能的界面展示结果。在未来的研究中,还需要进一步将数据可视化技术应用于MySQL数据库监测指标展示,进而建立起图形化的查询界面,方便管理者对MySQL数据库进行实时观察。

猜你喜欢配置文件日志解析基于Docker的实时数据处理系统配置文件管理软件的设计与实现电子技术与软件工程(2022年15期)2022-11-11一名老党员工作日志华人时刊(2021年13期)2021-11-27三角函数解析式中ω的几种求法中学生数理化(高中版.高一使用)(2021年4期)2021-07-19从Windows 10中删除所有网络配置文件电脑爱好者(2021年11期)2021-06-07扶贫日志心声歌刊(2020年4期)2020-09-07用软件处理Windows沙盒配置文件电脑爱好者(2020年9期)2020-07-05互不干涉混用Chromium Edge电脑爱好者(2019年20期)2019-12-10雅皮的心情日志思维与智慧·上半月(2018年10期)2018-11-30雅皮的心情日志思维与智慧·上半月(2018年9期)2018-09-22睡梦解析仪语文世界(小学版)(2018年3期)2018-03-22

推荐访问:在线 服务于 监测系统