数据库监控方法、装置、系统和存储介质与流程

文档序号:19828247发布日期:2020-02-04 12:06阅读:118来源:国知局
数据库监控方法、装置、系统和存储介质与流程

本发明涉及数据处理技术领域,具体涉及一种数据库监控方法、装置、系统和存储介质。



背景技术:

数据库,是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜,用来存储电子文件。用户可以对文件中的数据进行新增、查询、更新、删除等操作。

随着科技的进步,越来越多的文件采用数据库的形式进行存储,但是,业务量也在增长,存储量也变的越来越大,数据库的量变的越来越大。这时,数据库的监控和运维的稳定就显得尤为重要。例如,提前预知数据库的问题以及规避风险有着至关重要的作用。

相关技术中的数据库监控系统,通常在一台服务器上部署监控系统,如果该监控系统发生故障,则数据库的信息无法发出。并且,依赖于数据库管理人员的经验来判断是否有风险,只能通过数据库管理人员主动进行处理调优,无法做到预知并规避风险。另外,在数据采集上也存在一定的时间滞后性。



技术实现要素:

有鉴于此,提供一种数据库监控方法、装置、系统和存储介质,以解决现有技术中数据库监控过程中无法实时进行数据采集、无法预知和规避风险以及运维人力成本较高的问题。

本发明采用如下技术方案:

第一方面,本申请实施例提供了一种数据库监控方法,该监控方法包括:

实时采集日志信息,并对所述日志信息进行预处理得到状态信息;

监控服务器将所述状态信息下发至执行服务器;

所述执行服务器将所述状态信息存储至预先构建的训练模型,以得到目标模型;

应用所述目标模型监控当前数据库的状态,并在所述当前数据库异常时发送预警消息。

进一步的,所述实时采集日志信息,并对所述日志信息进行预处理得到状态信息,包括:

实时采集日志信息;

对所述日志信息进行初步清洗,将所述初步清洗后的日志信息发送至消息队列;

对所述消息队列中的所述清洗后的日志信息进行二次清洗和格式化处理,得到状态信息。

进一步的,所述监控服务器将所述状态信息下发至执行服务器,包括:

所述监控服务器应用公平调度算法将所述状态信息下发至执行服务器。

进一步的,所述执行服务器将所述状态信息存储至预先构建的训练模型,以得到目标模型;

执行服务器将状态信息存储至预先构建的训练模型作为训练样本;

应用所述训练样本对所述预先构建的训练模型进行训练,以得到目标模型。

进一步的,所述应用所述目标模型监控当前数据库的状态,并在所述当前数据库异常时发送预警消息,包括:

将所述目标模型封装至接口;

调用所述接口,在当前数据库异常时发送预警消息。

进一步的,还包括:所述监控服务器和所述执行服务器之间通过发送心跳包的方式相互监控。

进一步的,所述监控服务器和所述执行服务器之间通过发送心跳包的方式相互监控,包括:

若所述监控服务器停止工作,则所述执行服务器报警,并控制所述监控服务器重启,在超过预设次数重启失败后,则最早检测到所述监控服务器停止工作的执行服务器自动转变为监控服务器;

若所述执行服务器停止工作,则所述监控服务器控制所述执行服务器重启。

第二方面,本申请实施例提供了一种数据库监控装置,该装置包括:

信息采集模块,用于实时采集日志信息,并对所述日志信息进行预处理得到状态信息;

信息下发模块,用于指示监控服务器将所述状态信息下发至执行服务器;

目标模型确定模块,用于指示所述执行服务器将所述状态信息存储至预先构建的训练模型,以得到目标模型;

预警模块,用于应用所述目标模型监控当前数据库的状态,并在所述当前数据库异常时发送预警消息。

进一步的,信息采集模块具体用于:

实时采集日志信息;

对日志信息进行初步清洗,将初步清洗后的日志信息发送至消息队列;

对消息队列中的清洗后的日志信息进行二次清洗和格式化处理,得到状态信息。

进一步的,信息下发模块具体用于:

监控服务器应用公平调度算法将状态信息下发至执行服务器。

进一步的,目标模型确定模块303具体用于;

执行服务器将状态信息存储至预先构建的训练模型作为训练样本;

应用训练样本对预先构建的训练模型进行训练,以得到目标模型。

进一步的,预警模块具体用于:

将目标模型封装至接口;

调用接口,在当前数据库异常时发送预警消息。

进一步的,还包括监控模块,监控模块具体用于:监控服务器和执行服务器之间通过发送心跳包的方式相互监控。

进一步的,监控模块包括控制模块,用于在监控服务器停止工作时,执行服务器报警,并控制监控服务器重启,在超过预设次数重启失败后,则最早检测到监控服务器停止工作的执行服务器自动转变为监控服务器;

监控模块还包括重启模块,重启模块用于在执行服务器停止工作时,监控服务器控制执行服务器重启。

第三方面,本申请实施例提供了一种数据库监控系统,该监控系统包括:

监控服务器;

至少一个执行服务器;

处理器,以及与所述处理器相连接的存储器;

所述存储器用于存储计算机程序,所述计算机程序至少用于执行第一方面所述的数据库监控方法;

所述处理器用于调用并执行所述存储器中的所述计算机程序。

第四方面,本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的数据库监控方法中各个步骤。

本发明采用以上技术方案,通过实时采集日志信息,并对日志信息进行预处理得到状态信息,这样得到的状态信息可以被监控服务器和执行服务器直接应用;监控服务器将状态信息下发至执行服务器;执行服务器将状态信息存储至预先构建的训练模型,以得到目标模型;应用目标模型监控当前数据库的状态,并在当前数据库异常时发送预警消息。这样避免了在监控系统发生故障时,数据库的状态信息无法发出去的问题;实现了数据库监控的智能风险预警和智能调优,节省了大量的运维人力成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据库监控方法的流程图;

图2是本发明实施例提供的另一种数据库监控方法的流程图;

图3是本发明实施例提供的一种数据库监控装置的结构示意图;

图4是本发明实施例提供的一种数据库监控系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

首先对本申请实施例的基本概念进行说明。本申请实施例中包括的监控服务器可以作为监控网络中的主节点或管理节点;执行服务器又可以称为工作服务器,可以作为监控网络中的叶子节点或工作节点。本申请实施例采用m/s(master/slave,主从)架构。

实施例

图1为本发明实施例提供的一种数据库监控方法的流程图,该方法可以由本发明实施例提供的数据库监控装置来执行,该装置可采用软件和/或硬件的方式实现。参考图1,该方法具体可以包括如下步骤:

s101、实时采集日志信息,并对日志信息进行预处理得到状态信息。

其中,日志信息存储在日志文件中,日志文件是用于记录系统操作时间的记录文件或文件集合,可分为事件日志和消息日志,具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。具体的,在数据库正常运行的过程中,会实时生成日志信息,通过分析日志信息,即可了解数据库的运行状态等情况。在本申请实施例中,在实时采集到的日志信息后,需要对日志信息进行预处理,处理成可处理或可利用的数据,称为状态信息。然后将状态信息推送至监控服务器。

在一个具体的例子中,可以在数据库服务器上部署的数据抓取模块来实时采集日志信息,该数据抓取模块可以是软件程序,例如可以用agent表示该数据抓取模块。

可选的,数据库的状态信息包括数据的运行数据、操作系统的状态信息、数据库操作信息等。

s102、监控服务器将状态信息下发至执行服务器。

具体的,监控服务器作为主节点,将状态信息下发至下游的各个执行服务器。在实际的应用过程中,执行服务器的数量通常为多个。这样,多个执行服务器均可以收到状态信息,避免了一个执行服务器坏掉时状态信息丢失的情况。

s103、执行服务器将状态信息存储至预先构建的训练模型,以得到目标模型。

具体的,各个执行服务器在接收到状态信息后,将状态信息存储至预先构建的训练模型。例如,这些状态信息可以作为训练样本对训练模型进行训练,当满足一定的收敛条件后,训练完成,得到目标模型。

在一个具体的例子中,从预先构建的训练模型到目标模型的训练的过程中,可以先将历史监控数据打上标签,历史监控数据在这里是指状态信息,然后将有监督算法和无监督算法相结合对预先构建的训练模型进行训练,得到目标模型。预先构建的训练模型可以是机器学习模型,例如可以是现有技术中的机器学习模型,这里只是举例说明,不形成具体的限定。

s104、应用目标模型监控当前数据库的状态,并在当前数据库异常时发送预警消息。

具体的,将当前数据库的状态信息输入至目标模型,获得目标模型的输出,这样就可以应用目标模型监控并判断当前数据库的状态。在一个具体的例子中,如果监控到当前数据库异常,则可以向监控管理人员的终端设备发送预警消息,其中,预警消息可以是文字消息、声音消息或者二者组合;监控管理人员的终端设备可以是监控人员的手机或平板电脑等,还可以是监控室里的电脑。这样,在数据库异常时,监控管理人员可以在第一时间获知异常消息,进而采取对应的措施。在一个具体的例子中,对应的措施可以是优化动作以及优化建议。示例性的,预警信息的内容可以是“空间什么时候用满”或“连接数什么时候用满”等。

本发明采用以上技术方案,通过实时采集日志信息,并对日志信息进行预处理得到状态信息,这样得到的状态信息可以被监控服务器和执行服务器直接应用;监控服务器将状态信息下发至执行服务器;执行服务器将状态信息存储至预先构建的训练模型,以得到目标模型;应用目标模型监控当前数据库的状态,并在当前数据库异常时发送预警消息。这样避免了在监控系统发生故障时,数据库的状态信息无法发出去的问题;实现了数据库监控的智能风险预警和智能调优,节省了大量的运维人力成本。

图2为本发明又一实施例提供的一种数据库监控方法的流程图,本实施例在上述实施例的基础上实现。参考图2,该方法具体可以包括如下步骤:

s201、实时采集日志信息。

s202、对日志信息进行初步清洗,将初步清洗后的日志信息发送至消息队列。

其中,消息队列用来存储初步清洗后的日志信息。数据清洗是指,发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性、处理无效值和缺失值等。在本申请实施例中,对日志信息进行清理后,依次将初步清洗后的日志信息发送至消息队列进行存储,这样可以将多个日志信息存储到同一个消息队列中。

s203、对消息队列中的清洗后的日志信息进行二次清洗和格式化处理,得到状态信息。

具体的,利用实时计算程序分析消息队列中的消息,然后对消息队列中的初步清洗后的日志信息进行二次清洗,并进行格式化处理,这样就可以得到能被监控服务器和执行服务器识别和处理的状态信息。也即,监控服务器可以接收到被推送的状态信息。

s204、监控服务器应用公平调度算法将状态信息下发至执行服务器。

其中,调度过程是指,操作系统管理了系统的有限资源,当有多个进程或多个进程发出的请求要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程或请求来占用资源,这个过程称为调度。而调度算法则是包含了如何进行调度的策略,本申请实施例中应用了公平调度算法,而具体如何应用公平调度算法进行状态信息的下发与相关技术中公平调度算法的原理相同,这里不进行赘述。具体的,监控服务器应用公平调度算法将状态信息下发至执行服务器。

s205、执行服务器将状态信息存储至预先构建的训练模型作为训练样本。

其中,在模型的训练过程中,需要确定训练样本,在本申请实施例中,执行服务器将状态信息进行存储,作为预先构建的训练模型的训练样本。具体的,训练样本可以是获取到的不同的服务器的不同工作状态下的状态信息。训练样本的数量越大,最后训练得到的目标模型越准确。

s206、应用训练样本对预先构建的训练模型进行训练,以得到目标模型。

具体的,应用上述训练样本对预先构建的训练模型进行训练,可以得到目标模型,例如,可以结合监督算法和无监督算法确定预先构建的训练模型。这样可以保证在监督算法中无法应用的训练样本在无监督算法中可以应用,避免了训练样本的浪费,使得训练样本都能都得到充分的利用。

s207、将目标模型封装至接口。

具体的,为了后续方便直接应用,将目标模型封装至接口。在应用过程中,直接调用该接口,则可以直接应用接口对应的目标模型。

s208、调用接口,在当前数据库异常时发送预警消息。

例如,在实际的应用过程中,为了判断数据库的当前状态是正常还是异常,在获取到当前数据库的当前状态后,调用上述接口,应用目标模型,判断出当前数据库的当前的工作状态。假如当前数据库的当前工作状态是异常状态,则向监控管理人员发送预警消息,例如,向监控管理人员的手机发送一条语音预警消息。

另外,接口的应用还包括表空间扩张、主从切换、数据备份回复、同步延迟处理、数据库锁处理以及自动重启服务等。

本申请实施例中,在实时采集日志信息后,通过对日志信息进行初步清洗、二次清洗和格式化处理,得到能被监控服务器和执行服务器可以识别的状态信息。然后监控服务器应用公平调度算法将状态信息下发至各个执行服务器,这样保证了在一个服务器停止工作后,状态信息不会丢失;执行服务器根据状态信息训练预先构建的训练模型得到目标模型,然后调用模型封装成的接口实现对数据库状态是否异常的检测。这样实现了对服务器状态的智能预警,节省了大量的运维人力成本。

在上述实施例的基础上,本申请实施例的技术方案还包括:监控服务器和执行服务器之间通过发送心跳包的方式相互监控;其中,若监控服务器停止工作,则执行服务器报警,并控制监控服务器重启,在超过预设次数重启失败后,则最早检测到监控服务器停止工作的执行服务器自动转变为监控服务器;若执行服务器停止工作,则监控服务器控制执行服务器重启。

另外,本申请实施例中,监控服务器和执行服务器之间通过发送心跳包的方式进行相互监控,这样就可以在其中一类服务器停止工作后控制及时通知另一类服务器。具体的,如果监控服务器停止工作,那么执行服务器会主动报警,并尝试重新启动监控服务器,在超过预设次数重启失败后,最早检测到监控服务器停止工作的执行服务器自动转变为监控服务器。在一个具体的例子中,预设次数可以是5次,这里只是举例说明,不形成具体的限定。另外,执行服务器转变为监控服务器的操作可以是自动修改服务器的内部参数实现服务器类型的转换,以使不同服务器实现不同的功能。

另外,监控服务器会根据执行服务器发送的心跳包确认执行服务器是否正常工作,如果执行服务器停止工作,则监控服务器控制执行服务器进行重启。

综上,在现有的数据库监控技术中,大多数是基于java或shell脚本定时采集数据库系统状态,通过邮件、短信等方式推送至数据库管理人员。本申请实施例的技术方案与现有技术相比,可以实时监控数据库的状态、基于机器学习算法进行智能风险预警和智能调优,以及,基于m/s架构的可靠性和可扩展性,节约了大量运维人力成本。另外,还可以智能预处理数据库故障。

图3是本发明是实施例提供的一种数据库监控装置的结构示意图,该装置适用于执行本发明实施例提供给的一种数据库监控方法。如图3所示,该装置具体可以包括:信息采集模块301、信息下发模块302、目标模型确定模块303和预警模块304。

其中,信息采集模块301,用于实时采集日志信息,并对日志信息进行预处理得到状态信息;信息下发模块302,用于指示监控服务器将状态信息下发至执行服务器;目标模型确定模块303,用于指示执行服务器将状态信息存储至预先构建的训练模型,以得到目标模型;预警模块304,用于应用目标模型监控当前数据库的状态,并在当前数据库异常时发送预警消息。

本发明采用以上技术方案,通过实时采集日志信息,并对日志信息进行预处理得到状态信息,这样得到的状态信息可以被监控服务器和执行服务器直接应用;监控服务器将状态信息下发至执行服务器;执行服务器将状态信息存储至预先构建的训练模型,以得到目标模型;应用目标模型监控当前数据库的状态,并在当前数据库异常时发送预警消息。这样避免了在监控系统发生故障时,数据库的状态信息无法发出去的问题;实现了数据库监控的智能风险预警和智能调优,节省了大量的运维人力成本。

进一步的,信息采集模块301具体用于:

实时采集日志信息;

对日志信息进行初步清洗,将初步清洗后的日志信息发送至消息队列;

对消息队列中的清洗后的日志信息进行二次清洗和格式化处理,得到状态信息。

进一步的,信息下发模块302具体用于:

监控服务器应用公平调度算法将状态信息下发至执行服务器。

进一步的,目标模型确定模块303具体用于;

执行服务器将状态信息存储至预先构建的训练模型作为训练样本;

应用训练样本对预先构建的训练模型进行训练,以得到目标模型。

进一步的,预警模块304具体用于:

将目标模型封装至接口;

调用接口,在当前数据库异常时发送预警消息。

进一步的,还包括监控模块,监控模块具体用于:监控服务器和执行服务器之间通过发送心跳包的方式相互监控。

进一步的,监控模块包括控制模块,用于在监控服务器停止工作时,执行服务器报警,并控制监控服务器重启,在超过预设次数重启失败后,则最早检测到监控服务器停止工作的执行服务器自动转变为监控服务器;

监控模块还包括重启模块,重启模块用于在执行服务器停止工作时,监控服务器控制执行服务器重启。

本发明实施例提供的数据库监控装置可执行本发明任意实施例提供的数据控监控方法,具备执行方法相应的功能模块和有益效果。

本发明实施例还提供一种数据库监控系统,请参阅图4,图4为一种数据库监控系统的结构示意图,如图4所示,该数据库监控系统包括:监控服务器410、至少一个执行服务器420;处理器430,以及与处理器430相连接的存储器440;其中,图4中用两个执行服务器420来示意。存储器440用于存储计算机程序,计算机程序至少用于执行本发明实施例中的数据库监控方法;处理器430用于调用并执行存储器中的计算机程序;上述数据库监控方法具体包括:实时采集日志信息,并对日志信息进行预处理得到状态信息;监控服务器将状态信息下发至执行服务器;执行服务器将状态信息存储至预先构建的训练模型,以得到目标模型;应用目标模型监控当前数据库的状态,并在当前数据库异常时发送预警消息。

本发明实施例还提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时,实现如本发明实施例中的数据库监控方法中各个步骤:实时采集日志信息,并对日志信息进行预处理得到状态信息;监控服务器将状态信息下发至执行服务器;执行服务器将状态信息存储至预先构建的训练模型,以得到目标模型;应用目标模型监控当前数据库的状态,并在当前数据库异常时发送预警消息。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1