一种数据库目录的监控方法、存储介质和服务器与流程

文档序号:16209094发布日期:2018-12-08 07:30阅读:147来源:国知局
一种数据库目录的监控方法、存储介质和服务器与流程

本发明涉及通信技术领域,尤其涉及一种数据库目录的监控方法、存储介质和服务器。

背景技术

数据库目录是数据库服务器存放数据文件的地方,不仅包括有关表的文件,还包括数据文件和服务器选项文件等。目前,通常采用zabbix等数据库监控产品对数据库目录进行监控。然而,用户需要手动在zabbix中定义监控项,实现对一个或多个数据库目录的监控,操作效率较低。



技术实现要素:

有鉴于此,本发明实施例提供了一种数据库目录的监控方法、存储介质和服务器,旨在解决对数据库目录进行监控时操作效率低的问题。

本发明实施例的第一方面,提供了一种数据库目录的监控方法,包括:

访问目标数据库的数据字典信息,所述数据字典信息为记录数据库元数据的可读信息;

根据访问的数据字典信息确定待监控的数据库目录;

使用预设的脚本文件获取所述数据库目录的目录信息;

根据所述目录信息构建数据库目录的监控项;

将所述监控项发送给zabbix服务器,以使所述zabbix服务器对所述数据库目录进行监控。

本发明实施例的第二方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如本发明实施例的第一方面提出的数据库目录的监控方法的步骤。

本发明实施例的第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:

访问目标数据库的数据字典信息,所述数据字典信息为记录数据库元数据的可读信息;

根据访问的数据字典信息确定待监控的数据库目录;

使用预设的脚本文件获取所述数据库目录的目录信息;

根据所述目录信息构建数据库目录的监控项;

将所述监控项发送给zabbix服务器,以使所述zabbix服务器对所述数据库目录进行监控。

本发明实施例提出的数据库目录的监控方法包括:访问目标数据库的数据字典信息;根据访问的数据字典信息确定待监控的数据库目录;使用预设的脚本文件获取所述数据库目录的目录信息;根据所述目录信息构建数据库目录的监控项;将所述监控项发送给zabbix服务器,以使所述zabbix服务器对所述数据库目录进行监控。上述过程通过访问数据库的数据字典信息,能够确定待监控数据库目录的目录信息,然后即可根据该目录信息自动构建监控项,并将构建好的监控项发送给zabbix服务器进行监控,与传统的手动定义监控项的方法相比,有效提高了操作效率。

附图说明

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

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

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

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

图4是本发明实施例提供的一种服务器的示意图。

具体实施方式

本发明实施例提供了一种数据库目录的监控方法、存储介质和服务器,旨在解决对数据库目录进行监控时操作效率低的问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,数据库目录的监控方法的第一个实施例包括:

101、访问目标数据库的数据字典信息;

目标数据库是需要监控的数据库,数据字典信息是记录数据库元数据的可读信息,比如数据库提供的系统视图,通过这些视图可获取数据库的元数据信息,譬如数据库的表空间,数据库物理文件路径等信息。可以构建相应的数据访问命令,对目标数据库的数据字典信息进行访问。

具体的,步骤101可以包括:

(1)使用预设的脚本文件获取终端设备的系统信息;

(2)根据所述系统信息构建对应的数据访问命令;

(3)采用所述数据访问命令访问目标数据库的数据字典信息。

对于上述步骤(1),使用预设的脚本文件获取终端设备的系统信息。比如,可以使用标准化的shell或python脚本获取终端的系统信息,获取到的系统信息可以包括aix,sun,hp-ux或linux等。

对于上述步骤(2),根据所述系统信息构建对应的数据访问命令。对于不同的系统来说,采用的数据访问命令的形式也是不同的,因此需要根据具体的系统信息构建合适的数据访问命令。

对于上述步骤(3),采用所述数据访问命令访问目标数据库的数据字典信息,这里的数据访问命令是与终端系统匹配的指令。

102、根据访问的数据字典信息确定待监控的数据库目录;

在访问目标数据库的数据字典信息之后,根据访问的数据字典信息确定待监控的数据库目录。通过访问数据字典信息,可以获取目标数据库的元数据信息,通过该元数据信息,可以确定目标数据库具有的表空间、各个物理文件的存储路径等信息,进而可以确定目标数据库具有的数据库目录。在实际应用中,可以获取目标数据库具有的所有目录,然后采用sql命令对这些目录进行去重,从而得到待监控的数据库目录。

103、使用预设的脚本文件获取所述数据库目录的目录信息;

在确定需要监控的数据库目录之后,使用预设的脚本文件获取所述数据库目录的目录信息。具体的,可以使用标准化的shell或python脚本获取所述数据库目录的目录信息。在该脚本里,会根据具体的主机平台系统,执行对应的命令获取目录大小、目录剩余空间、目录使用率等目录信息。

104、根据所述目录信息构建数据库目录的监控项;

在获得目录信息之后,根据所述目录信息构建数据库目录的监控项。

进一步的,步骤104可以包括:

(1)获取预定义的通用监控项,所述通用监控项包含通用的目录名称;

(2)从所述目录信息中提取待监控的目录名称;

(3)将所述通用监控项中通用的目录名称替换为提取到的目录名称,得到所述数据库目录的监控项。

获取预定义的通用监控项,所述通用监控项包含通用的目录名称。比如,oracle.asm.size[{#path_name},used_pct]表示一个用于监控目录使用率的通用监控项,oracle.asm.size为监控项的名称标识,{#path_name}是变量,代表通用的目录名称,used_pct表示目录使用率,为目录的一个监控属性。提取需要监控的目录名称,用提取到的目录名称替换该监控项中的{#path_name}即可得到构建好的监控项。

比如,根据该通用监控项构建的一个目录使用率监控项为:"oracle.asm.size[/paic/app/oracle/rdbms,used-pct]"35.46。

其中,/paic/app/oracle/rdbms表示监控的目录,35.46表示该监控项的具体值,即目录使用率为35.46%,该信息/paic/app/oracle/rdbms以及35.46可以从所述目录信息中获取。

105、将所述监控项发送给zabbix服务器,以使所述zabbix服务器对所述数据库目录进行监控。

在构建好数据库目录的监控项之后,将这些监控项发送给zabbix服务器,由zabbix服务器对这些监控项进行监控,也即对目标数据库的数据库目录进行监控。

本发明实施例提出的数据库目录的监控方法包括:访问目标数据库的数据字典信息;根据访问的数据字典信息确定待监控的数据库目录;使用预设的脚本文件获取所述数据库目录的目录信息;根据所述目录信息构建数据库目录的监控项;将所述监控项发送给zabbix服务器,以使所述zabbix服务器对所述数据库目录进行监控。上述过程通过访问数据库的数据字典信息,能够确定待监控数据库目录的目录信息,然后即可根据该目录信息自动构建监控项,并将构建好的监控项发送给zabbix服务器进行监控,与传统的手动定义监控项的方法相比,有效提高了操作效率。

请参阅图2,本发明实施例中一种数据库目录的监控方法的第二个实施例包括:

201、访问目标数据库的数据字典信息;

202、根据访问的数据字典信息确定待监控的数据库目录;

203、使用预设的脚本文件获取所述数据库目录的目录信息;

204、根据所述目录信息构建数据库目录的监控项;

205、将所述监控项发送给zabbix服务器;

步骤201-205与步骤101-105相同,具体可参照步骤101-105的相关说明。

206、为接收到的监控项构建对应的报警阈值;

zabbix服务器在接收到监控项之后,可以为这些监控项构建对应的报警阈值。比如,对于目录使用率监控项oracle.asm.size[/paic/app/oracle/rdbms,used_pct],可以设置一个报警阈值80,也即若监测到目录使用率超过80%,则可以触发报警事件。

另外,还可以利用zabbix服务器本身的绘图功能,对该监控项的所有采集值按时间序列进行绘图,可图形化直观展现该监控项在各个时间点的值和变化趋势。

207、若监测到所述监控项的值超过所述报警阈值,则产生预设的报警信息;

208、在产生预设的报警信息之后,根据所述报警信息构建并发送报警邮件。

zabbix服务器对各个监控项的值进行监测,若监测到某个监控项的值超过设置的报警阈值,则产生预设的报警信息,该报警信息一般可以包括报警对象的名称(比如xx目录监控项),报警时间和报警强度等信息。在产生预设的报警信息之后,可以调用邮件报警程序,根据所述报警信息构建并发送报警邮件,以通知相关人员注意。

然而,在一段时间内,某个监控项可能多次出现超阈值的现象,而若每出现一次超阈值就发送一封报警邮件,会给相关人员带来不必要的打扰。因此,为了避免频繁发送报警邮件,可以将报警对象的名称作为报警信息,并在产生预设的报警信息之后,根据所述报警信息构建并发送报警邮件之前,采取以下方法进行处理:

(1)根据所述报警对象的名称在预设的报警记录表中查询是否存在所述报警对象的报警记录;

(2)若不存在所述报警对象的报警记录,则为所述报警对象构建报警记录,然后执行根据所述报警信息构建并发送报警邮件的步骤。

具体的,可以在postgresql数据库中设置一个报警记录表,每产生一次报警信息,首先根据报警对象的名称在报警记录表中查询是否存在相应的报警记录;若不存在报警记录,则表明该报警事件是初次报警,此时生成对应的报警记录,保存在该报警记录表中,然后根据所述报警信息构建并发送报警邮件。若存在报警记录,则表明该报警事件不是初次报警,相关的报警邮件已经发送,此时可以不再重复发送报警邮件。

更进一步的,所述报警记录包括报警对象名称、报警次数、报警邮件发送时间和记录更新时间,所述方法还可以包括:

(3)若存在所述报警对象的报警记录,则判断当前时间和所述记录更新时间之间的间隔是否大于第一时长;

(4)若当前时间和所述记录更新时间之间的间隔大于第一时长,则更新所述报警次数、报警邮件发送时间和记录更新时间,然后执行根据所述报警信息构建并发送报警邮件的步骤;

(5)若当前时间和所述记录更新时间之间的间隔小于或等于所述第一时长,则判断所述报警邮件发送时间和所述记录更新时间之间的间隔是否大于第二时长;若所述报警邮件发送时间和所述记录更新时间之间的间隔小于或等于第二时长,则更新所述报警次数和记录更新时间,然后返回监测所述监控项的值的步骤;若所述报警邮件发送时间和所述记录更新时间之间的间隔大于第二时长,则更新所述报警次数、报警邮件发送时间和记录更新时间,然后执行根据所述报警信息构建并发送报警邮件的步骤。

在报警记录中,包含报警对象名称、报警次数、报警邮件发送时间和记录更新时间等多个数据,报警次数指该报警对象产生报警信息的次数,报警邮件发送时间指上一次发送报警邮件的时间,记录更新时间指上一次更新报警记录的时间。在某个报警对象的报警记录创建时,报警次数记录为1次,报警邮件发送时间和记录更新时间可以记录为当前的系统时间。若报警记录表中存在所述报警对象的报警记录,则判断当前时间和所述记录更新时间之间的间隔是否大于第一时长;若当前时间和报警记录表中的记录更新时间之间的间隔大于第一时长(比如2分钟),表明当前时间距离上一次报警已经过了一段较长的时间,此时可以再发送一次报警邮件,故更新报警记录中的报警次数、报警邮件发送时间和记录更新时间,具体为将报警次数加1,用当前的系统时间替换报警邮件发送时间和记录更新时间,然后根据报警信息构建并发送报警邮件。

若当前时间和所述记录更新时间之间的间隔小于或等于所述第一时长,表明当前时间距离上一次报警时间不久,此时进一步判断所述报警邮件发送时间和所述记录更新时间之间的间隔是否大于第二时长(比如5分钟),即判断上一次发送报警邮件的时间和上一次产生报警信息的时间之间是否相隔一定的时长;若所述报警邮件发送时间和所述记录更新时间之间的间隔小于或等于第二时长,表明当前时间距离上一次发送报警邮件不长,此时不必重复发送报警邮件,故仅更新所述报警次数和记录更新时间,具体为将报警次数加1,用当前的系统时间替换记录更新时间,然后返回监测监控项的值的步骤。若所述报警邮件发送时间和所述记录更新时间之间的间隔大于第二时长,表明当前时间距离上一次发送报警邮件已经过了一段较长的时间,此时可以再发送一次报警邮件,故更新报警记录中的报警次数、报警邮件发送时间和记录更新时间,然后根据所述报警信息构建并发送报警邮件。

更进一步的,若所述报警邮件发送时间和所述记录更新时间之间的间隔大于第二时长,则在更新所述报警次数、报警邮件发送时间和记录更新时间之前,还可以包括:

若所述报警邮件发送时间和所述记录更新时间之间的间隔小于第三时长且所述报警次数小于第一次数,则执行更新所述报警次数、报警邮件发送时间和记录更新时间的步骤,所述第三时长大于所述第二时长;

若所述报警邮件发送时间和所述记录更新时间之间的间隔大于第三时长且所述报警次数小于第二次数,则执行更新所述报警次数、报警邮件发送时间和记录更新时间的步骤,所述第二次数大于所述第一次数;

若所述报警次数大于所述第二次数,则更新所述报警次数和记录更新时间,然后返回监测所述监控项的值的步骤。

举例说明如下:假设第二时长为5分钟,第三时长为1小时,第一次数为6次,第二次数为60次,若所述报警邮件发送时间和所述记录更新时间之间的间隔大于5分钟,此时进一步判断该间隔是否小于1小时且所述报警次数是否小于6次,若是则更新所述报警次数、报警邮件发送时间和记录更新时间,然后发送报警邮件;否则可以继续判断该间隔是否大于1小时且所述报警次数是否小于60次,若是则更新所述报警次数、报警邮件发送时间和记录更新时间,然后发送报警邮件。若报警次数已经超过60次,则不必重复发送报警邮件,此时更新所述报警次数和记录更新时间,然后返回监测所述监控项的值的步骤。通过这样设置,对于某个监控项持续产生的报警信息只会分别在第一次,第5分钟左右,第1小时左右进行报警邮件的发送,从而避免报警邮件的频繁发送。

本发明实施例提出的数据库目录的监控方法包括:访问目标数据库的数据字典信息;根据访问的数据字典信息确定待监控的数据库目录;使用预设的脚本文件获取所述数据库目录的目录信息;根据所述目录信息构建数据库目录的监控项;将所述监控项发送给zabbix服务器;为接收到的监控项构建对应的报警阈值;若监测到所述监控项的值超过所述报警阈值,则产生预设的报警信息;在产生预设的报警信息之后,根据所述报警信息构建并发送报警邮件。与本发明的第一个实施例相比,本实施例在监测到监控项的值超过报警阈值之后,能自动产生报警信息并发送报警邮件,便于相关人员及时处理。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

上面主要描述了一种数据库目录的监控方法,下面将对一种数据库目录的监控装置进行详细描述。

请参阅图3,本发明实施例中一种数据库目录的监控装置的一个实施例包括:

数据字典信息访问模块301,用于访问目标数据库的数据字典信息,所述数据字典信息为记录数据库元数据的可读信息;

数据库目录确定模块302,用于根据访问的数据字典信息确定待监控的数据库目录;

目录信息获取模块303,用于使用预设的脚本文件获取所述数据库目录的目录信息;

监控项构建模块304,用于根据所述目录信息构建数据库目录的监控项;

监控项发送模块305,用于将所述监控项发送给zabbix服务器,以使所述zabbix服务器对所述数据库目录进行监控。

进一步的,所述数据字典信息访问模块可以包括:

系统信息获取单元,用于使用预设的脚本文件获取终端设备的系统信息;

数据访问命令构建单元,用于根据所述系统信息构建对应的数据访问命令;

数据字典信息访问单元,用于采用所述数据访问命令访问目标数据库的数据字典信息。

进一步的,所述监控项构建模块可以包括:

通用监控项获取单元,用于获取预定义的通用监控项,所述通用监控项包含通用的目录名称;

目录名称提取单元,用于从所述目录信息中提取待监控的目录名称;

目录名称替换单元,用于将所述通用监控项中通用的目录名称替换为提取到的目录名称,得到所述数据库目录的监控项。

进一步的,所述监控项发送模块可以包括:

报警阈值构建单元,用于为接收到的监控项构建对应的报警阈值;

报警信息产生单元,用于若监测到所述监控项的值超过所述报警阈值,则产生预设的报警信息;

报警邮件发送单元,用于在产生预设的报警信息之后,根据所述报警信息构建并发送报警邮件。

更进一步的,所述报警信息包含报警对象的名称,所述监控项发送模块还可以包括:

报警记录查询单元,用于根据所述报警对象的名称在预设的报警记录表中查询是否存在所述报警对象的报警记录;

报警记录构建单元,用于若不存在所述报警对象的报警记录,则为所述报警对象构建报警记录,然后执行根据所述报警信息构建并发送报警邮件的步骤。

更进一步的,所述报警记录包括报警对象名称、报警次数、报警邮件发送时间和记录更新时间,所述监控项发送模块还可以包括:

第一判断单元,用于若存在所述报警对象的报警记录,则判断当前时间和所述记录更新时间之间的间隔是否大于第一时长;

第一报警记录更新单元,用于若当前时间和所述记录更新时间之间的间隔大于第一时长,则更新所述报警次数、报警邮件发送时间和记录更新时间,然后执行根据所述报警信息构建并发送报警邮件的步骤;

第二判断单元,用于若当前时间和所述记录更新时间之间的间隔小于或等于所述第一时长,则判断所述报警邮件发送时间和所述记录更新时间之间的间隔是否大于第二时长;若所述报警邮件发送时间和所述记录更新时间之间的间隔小于或等于第二时长,则更新所述报警次数和记录更新时间,然后返回监测所述监控项的值的步骤;若所述报警邮件发送时间和所述记录更新时间之间的间隔大于第二时长,则更新所述报警次数、报警邮件发送时间和记录更新时间,然后执行根据所述报警信息构建并发送报警邮件的步骤。

更进一步的,所述监控项发送模块还可以包括:

第一执行单元,用于若所述报警邮件发送时间和所述记录更新时间之间的间隔小于第三时长且所述报警次数小于第一次数,则执行更新所述报警次数、报警邮件发送时间和记录更新时间的步骤,所述第三时长大于所述第二时长;

第二执行单元,用于若所述报警邮件发送时间和所述记录更新时间之间的间隔大于第三时长且所述报警次数小于第二次数,则执行更新所述报警次数、报警邮件发送时间和记录更新时间的步骤,所述第二次数大于所述第一次数;

第二报警记录更新单元,用于若所述报警次数大于所述第二次数,则更新所述报警次数和记录更新时间,然后返回监测所述监控项的值的步骤。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1或图2表示的任意一种数据库目录的监控方法的步骤。

本发明实施例还提供一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如图1或图2表示的任意一种数据库目录的监控方法的步骤。

图4是本发明一实施例提供的服务器的示意图。如图4所示,该实施例的服务器4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机可读指令42。所述处理器40执行所述计算机可读指令42时实现上述各个数据库目录的监控方法实施例中的步骤,例如图1所示的步骤101至105。或者,所述处理器40执行所述计算机可读指令42时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至305的功能。

示例性的,所述计算机可读指令42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令42在所述服务器4中的执行过程。

所述服务器4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是服务器4的示例,并不构成对服务器4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器4还可以包括输入输出设备、网络接入设备、总线等。

所述处理器40可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器41可以是所述服务器4的内部存储单元,例如服务器4的硬盘或内存。所述存储器41也可以是所述服务器4的外部存储设备,例如所述服务器4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器41还可以既包括所述服务器4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机可读指令以及所述服务器所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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