数据库监控方法及装置、设备的制作方法

文档序号:6519218阅读:376来源:国知局
数据库监控方法及装置、设备的制作方法
【专利摘要】本发明公开了一种数据库监控方法及装置、设备,根据各数据库的信息,获取与各数据库的信息对应的监控配置文件;根据获取的与各数据库的信息对应的监控配置文件,根据监控配置文件与对应的预先编写好的监控程序对各自数据库进行监控,高效的实施动态扩展监控。
【专利说明】数据库监控方法及装置、设备【技术领域】[0001 ] 本发明实施例涉及数据库处理【技术领域】,尤其涉及一种数据库监控处理方法及装 置、设备。【背景技术】[0002]互联网数据中心(Internet Data Center,IDC)是基于INTERNET网络,为集中式收 集、存储、处理和发送数据的设备提供运行维护的设施基地并提供相关的服务。IDC提供的 主要业务包括主机托管(机位、机架、机房出租)、资源出租(如虚拟主机业务、数据存储服 务)、系统维护(系统配置、数据备份、故障排除服务)、管理服务(如带宽管理、流量分析、 负载均衡、入侵检测、系统漏洞诊断),以及其他支撑、运行服务等。[0003]目前,业界使用的数据库监控通常采用开源的zabbix监控方式,zabbix是一个基 于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,能监视各 种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定 位/解决存在的各种问题。[0004]然而,zabbix监控方式中需要部署监控代理(agent),有时候由于系统环境不一 致,安装agent极度麻烦,并且随着IDC多样化,机器的多样化,增加了 agent对数据库监控 的难度,而且,IDC中的数据库种类的繁多,agent需要轮询监控各种类的数据库,会降低监 控效率。
【发明内容】
[0005]本发明实施例提供一种数据库监控方法及装置、设备,用以解决现有技术中存在 的数据监控效率低的问题。[0006]第一方面,本发明提供一种数据库监控方法,包括:[0007]根据各数据库的信息,获取与各数据库的信息对应的监控配置文件;[0008]根据获取的与各数据库的信息对应的监控配置文件,生成与各数据库的信息对应 的监控程序;[0009]利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行 监控。[0010]可选地,所述根据各数据库的信息,获取与各数据库的信息对应的监控配置文件 之前,包括:[0011]根据各数据库的信息,建立切分配置文件;[0012]所述切分配置文件中包括各数据库的信息以及与各数据库的信息对应的监控配 置文件。[0013]可选地,所述根据各数据库的信息,获取与各数据库的信息对应的监控配置文件, 包括:[0014]根据各数据库的信息,查询所述切分配置文件,获取与各数据库的信息对应的监控配置文件。[0015]可选地,所述利用预先编写的与各数据库的信息对应的监控程序,对各自对应的 数据库进行监控之后,包括:[0016]根据预先的监控规则,将各监控程序对各自对应的数据库进行监控的结果分别进 行报警和/或绘图处理。[0017]第二方面,提供一种数据库监控装置,其包括:[0018]获取模块,用于根据各数据库的信息,获取与各数据库的信息对应的监控配置文 件;[0019]监控模块,用于根据获取的与各数据库的信息对应的监控配置文件,利用预先编 写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控。[0020]可选地,所述的装置还包括:[0021]建立模块,用于根据各数据库的信息,建立切分配置文件;[0022]所述切分配置文件中包括各数据库的信息以及与各数据库的信息对应的监控配 置文件。[0023]可选地,所述获取模块,具体用于根据各数据库的信息,查询所述切分配置文件, 获取与各数据库的信息对应的监控配置文件。[0024]可选地,所述的装置还包括:[0025]处理模块,用于根据预先的监控规则,将各监控程序对各自对应的数据库进行监 控的结果分别进行报警和/或绘图处理。[0026]第三方面,提供一种数据库监控设备,其包括:如第二方面所述的数据库监控装置。[0027]本实施例中,根据各数据库的信息,获取与各数据库的信息对应的监控配置文件; 根据获取的与各数据库的信息对应的监控配置文件,利用预先编写好的与各数据库的信息 对应的监控程序,对各自对应的数据库进行监控,不需要轮询监控各种类的数据库,可以提 高数据监控的效率。【专利附图】

【附图说明】[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。[0029]图1为本发明一实施例提供的数据库监控方法的流程示意图;[0030]图2为本发明另一实施例提供的数据库监控装置的结构示意图;[0031]图3为本发明另一实施例提供的数据库监控设备的结构示意图。【具体实施方式】[0032]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]本发明提供的技术方案例如可以应用于开源的免费网络监视系统(nagios或者zabbix)中,具体例如可以应用于监控代理(agent实体)中。
[0034]图1为本发明一实施例提供的数据库监控方法的流程示意图,如图1所述,本实施例的数据监控方法包括:
[0035]101、根据各数据库的信息,获取与各数据库的信息对应的监控配置文件;
[0036]可选地,监控代理根据各数据库的信息,建立切分配置文件;其中,所述切分配置文件中包括各数据库的信息以及与各数据库的信息对应的监控配置文件;
[0037]之后,监控代理根据各数据库的信息,查询所述切分配置文件,获取与各数据库的信息对应的监控配置文件。
[0038]102、根据获取的与各数据库的信息对应的监控配置文件,利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控。
[0039]可选地,监控代理可以根据切分的各监控配置文件,调用各监控配置文件对应监控程序模块,获取预先编写好的与各数据库的信息对应的监控程序。
[0040]可选地,监控代理可以根据预先的监控规则,利用与各数据库的信息对应的监控程序,对各自对应的数据库进行监控;之后,根据监控结果进行报警或绘图,进一步,还可以定期对老数据库进行清理。
[0041]下面对本发明实施例所述的技术方案的具体实现进行详细的描述:
[0042]举例来说,由于互联网数据中心(Internet Data Center, IDC)中的数据库种类繁多,为了提高监控代理(例如agent实体)对各数据库的监控效率,监控代理(例如agent实体)例如可以根据各数据库的信息,建立切分配置文件;
[0043]其中,数据库信息中包括储存数据库的主机IP地址,还包括数据库的类型,数据库的类型为如下的描述:
[0044]例如,Modules=mysqlinnodb slave ;即该数据库的类型为mysql,并且是 innodb,其角色为slave ;
[0045]又例如,Modules=mongdbadmin;即该数据库类型为 MongoDB ;
[0046]其中,切分配置文件例如可以储存在监控代理的存储器中;该切分配置文件用于设置各数据库的信息以及与各数据库信息对应的监控配置文件,例如,在所述切分配置文件中可以写入各数据库的信息以及与各数据库的信息对应的监控配置文件。
[0047]上述切分配置文件例如为如下描述:
[0048]system(^perl split.pl $lConfFile〃);
my?sections=
&FromDualMySQLagent::getSections(?configuration);
foreach my $section ( ?sections )
{
if ( $section eq ’ default’ ) {
next;
}
[0049]具体地,上述切分配置文件的源代码的意思是指利用peri语言通过system函数调用外部切分文件程序(split, pi);其中,切分文件程序用于将切分配置文件根据各数据库信息切分为与各数据库信息对应的监控配置文件;具体是通过编写的读取配置文件模块程序(&FromDualMySQLagent)读取各数据库信息(getSections (Oconfiguration)),并把各数据库信息赋值给Osections变量数组;循环读取Osections数组的各数据库信息,如果数据库信息为default,则忽略该数据库信息,如果不是,则根据数据库信息切分为对应的监控配置文件;其中,上述各数据库是每个 需要监控的已经格式化好的数据库。
[0050]之后,监控代理可以根据各数据库的信息,从所述切分配置文件中获取与各数据库的信息对应的监控配置文件。例如,监控代理可以通过定时任务程序(例如cixmtab程序)设置的时间定时(例如每分钟)调用切分程序,将切分配置文件按照各数据库的信息,切分成与各数据库信息对应的监控配置文件,然后并行调用各监控配置文件。
[0051]其中,上述切分程序例如为如下描述:
[0052]cd/usr/local/mysql_performance_monitor/&&perl FromDualMult1.pl etc/FromDualMySQLagent.conf ;
[0053]具体地,上述切分程序的源代码的意思是指通过Iinux操作系统的Cixmtab程序,例如每分钟定时调用切分程序FromDualMult1.pi。
[0054]需要说明的是,每个数据库对应一个监控配置文件,该监控配置文件中例如包括监控项的名称和监控项的参数,其中,监控项的参数包括一项或一项以上的参数,在实际应用中,监控项的参数可以不同的数据库信息进行动态调整。
[0055]例如,当数据库类型为mysql时,其对应的监控配置文件如下:
[0056][s_3470_10.108.76.204,该项是数据库的主机定义(人工定义的唯一标记);
[0057]Type=mysqld,无意义;
[0058]Modules=mysql innodb slave,该项是数据库的类型,具体是指mysql数据库中的innodb,角色为 slave ;
[0059]MysqlPort=3470,该项是数据库的 port ;
[0060]MysqlHost=I0.108.76.204,该项是运行该数据库的主机的IP地址;
[0061]例如,当数据库类型为mongdbadmin时,其对应的监控配置文件如下:
[0062][md_20300_220.181.24.37],该项是数据库的主机定义(人工定义的唯一标记);
[0063]Type=mysqld,无意义;[0064]Modules=mongdbadmin,该项是数据库类型,具体为MongoDB数据库;[0065]MysqlPort=20300,该项是数据库 port ;[0066]MysqlHost=220.181.24.37,该项是运行数据库的主机的IP地址;[0067]举例来说,监控代理可以根据切分的各监控配置文件,调用各监控配置文件对应监控程序模块,获取预先编写好的与各数据库的信息对应的监控程序;[0068]例如,system("perlFromDualMySQLagent.pl etc/$section&");[0069]};该段源代码的意思具体是指利用peri语言通过system函数调用外部程序 (FromDualMySQLagent.pi),并通过符号(&)将外部程序(FromDualMySQLagent.pi)放到操作系统(例如Iinux操作系统)后台运行,间接的实现了并行化监控处理;[0070]其中,外部程序(FromDualMySQLagent.pi)会根据各监控配置文件的属性,调用各个监控程序;符号(&)是操作系统自带的,就是不用等待程序结束的意思。[0071]下面以数据库类型为mysql proxy为例,对应的监控程序为romDualMySQLproxy.pm ;[0072]#定义监控程序包名[0073]package FromDualMySQLproxy; use strict; use warnings;use FromDualMySQLagent ’: stooges’ ; use sendData;use Time::1IiRos qw(gettimeofday);[0074]#定义的mysql proxy监控函数[0075]sub processProxyInformation[0076]{[0077]#返回状态[0078]my$rc=0;[0079]#加载错误日志模块[0080]if($main::gParameter{,Debug,}>=INF0){&FromDualMySQLagent::mylog($main::gParameter {,LogFile'},INFO, ’ ’.(caller (0)) [3]) ;}[0081]#定义hash变量,作为最终的返回数据[0082]my%hproxyStatus;[0083]#定义hash变量 [0084]my%hslaveStatus;[0085]#定义存储监控点的数组[0086]myiaproxyStatusToSend=([0087]#mysql proxy 是否可用[0088]’alive,[0089]#mysql proxy是否已经只剩主库信息[0090], ’ only_one'[0091]#mysql proxy中线上数据库的个数[0092],,online_backend’[0093]#mysql proxy中是否有不在线[0094], ’ if_offline'[0095]#mysql proxy中主库是否已经岩机[0096], ’ is_master_down,[0097]#mysql proxy 的相应时间[0098], ’ reponse_time'[0099]);[0100]举例来说,监控代理可以根据预先的监控规则,利用生成的与各数据库的信息对 应的监控程序,对各自对应的数据库进行监控,并根据监控结果进行报警或绘图处理,还可 以定期对老数据库进行清理。[0101]其中,上述监控规则例如包括一个或一个以上的被监控的项目(简称监控项),每 一个监控项对应一个监控采集值,每一个监控项至少对应一个触发报警的阈值,当每个监 控项的监控采集值超过触发报警的阈值时,就会产生报警;当每一个监控项对应多个触发 报警的阈值(例如第一阈值、第二阈值和第三阈值),各触发报警的阈值与各告警级别相对 应,例如,当每个监控项的监控采集值超过对应的第一阈值时,产生一级报警(表示存在问 题),当每个监控项的监控采集值超过对应的第二阈值时,产生二级报警(表示问题严重), 当每个监控项的监控采集值超过对应的第三阈值时,产生三级报警(表示问题非常严重)。[0102]其中,报警可以利用短信进行报警,在短信报警过程中,进行策略定制化,例如,报 三次警,暂停一定时间,然后再触发报警等。[0103]假设本实施例对2个数据库进行监控,其中,一个数据库位于IP地址为 192.168.0.93的主机中,该数据库的类型例如为mysql,则该数据库的信息可以为运行该 数据库的主机的IP地址(192.168.0.93)和类型mysql ;[0104]另一个数据库位于IP地址为192.168.0.52的主机中,数据库类型为 mongdbadmin,则另一个数据库的信息可以为运行另一个数据库的主机的IP地址 (192.168.0.52 和类型 mongdbadmin ;[0105]对应地,每个数据库对应一个监控配置文件,该监控配置文件中例如包括监控项 的名称和监控项的参数,其中,监控项的参数包括一项或一项以上的参数;根据每个数据库 信息对应的监控配置文件生成监控程序,对各自对应的数据库进行监控;[0106]当数据库满足触发报警条件时,运行该数据库的主机触发报警,其中,本实施例 还可以设置接收报警信息的相关用户,相关用户就会收到报警信息(如短信提醒)。报警 信息例如为“192.168.0.93的主机发生HS.admin, service, not running故障”,或者为 “192.168.0.52的主机发生IIS.W3SVC服务终端故障”等提示信息。[0107]本实施例中利用监控程序的插件式的编程模式,即根据各数据库的信息,获取与 各数据库的信息对应的监控配置文件;根据获取的与各数据库的信息对应的监控配置文 件,利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控; 非常适合待监控的数据库种类繁多的应用场景,而且可以在监控代理本地进行实时监控,并根据监控结果进行短信报警或图形展示,减少误报的可能性;由于不需要监控代理轮询监控各种类的数据库,因此,可以提高数据监控的效率。
[0108]图2为本发明另一实施例提供的数据库监控装置的结构示意图;如图2所示,包括:
[0109]获取模块21,用于根据各数据库的信息,获取与各数据库的信息对应的监控配置文件;
[0110]监控模块22,用于根据获取的与各数据库的信息对应的监控配置文件,利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控。
[0111]可选地,所述的装置,还包括:
[0112]建立模块23,用于根据各数据库的信息,建立切分配置文件;
[0113]其中,所述切分配置文件中包括各数据库的信息以及与各数据库的信息对应的监控配置文件。
[0114]其中,所述获取模块21,具体用于根据各数据库的信息,从所述切分配置文件,获取与各数据库的信息对应的监控配置文件。
[0115]可选地,所述的装置,还包括:
[0116]处理模块24,用于根据预先的监控规则,将各监控程序对各自对应的数据库进行监控的结果分别进行报警和/或绘图处理。
[0117]本实施例中利用监控程序的插件式的编程模式,即根据各数据库的信息,获取与各数据库的信息对应的监控配置文件;根据获取的与各数据库的信息对应的监控配置文件,利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控;非常适合待监控的数据库种类繁多的应用场景,而且可以在监控代理本地进行实时监控,并根据监控结果进行短信报警或图形展示,减少误报的可能性;由于不需要监控代理轮询监控各种类的数据库,因此,可以提高数据监控的效率。
[0118]图3为本发明另一实施例提供的数据库监控设备的结构示意图,具体地,本实施例的数据监控设备例如为监控代理或者监控服务器(例如ZabbixServer),所述数据监控设备包括上述图2所示的数据库监控装置;在实际应用中,本实施例的数据库监控设备如图3所示,包括:处理器31、存储器32和通信总线33,其中,处理器31和存储器32通过通信总线33连接,存储器32中例如保存有切分程序、切分配置文件以及实现上述数据库监控方法的指令等;
[0119]本实施例中,处理器31调取存储器32中的指令,可以执行如下步骤:
[0120]根据各数据库的信息,获取与各数据库的信息对应的监控配置文件;
[0121]根据获取的与各数据库的信息对应的监控配置文件,利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控。
[0122]其中,所述根据各数据库的信息,获取与各数据库的信息对应的监控配置文件之前,包括:
[0123]根据各数据库的信息,建立切分配置文件;
[0124]所述切分配置文件中包括各数据库的信息以及与各数据库的信息对应的监控配置文件。
[0125]其中,所述根据各数据库的信息,获取与各数据库的信息对应的监控配置文件,包括:[0126]根据各数据库的信息,查询所述切分配置文件,获取与各数据库的信息对应的监 控配置文件。[0127]其中,所述利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的 数据库进行监控之后,包括:[0128]根据预先的监控规则,将各监控程序对各自对应的数据库进行监控的结果分别进 行报警和/或绘图处理。[0129]上述步骤的具体实现可以参考图1所示实施例中的相关描述,此处不再追赘述。[0130]本实施例中利用监控程序的插件式的编程模式,即根据各数据库的信息,获取与 各数据库的信息对应的监控配置文件;根据获取的与各数据库的信息对应的监控配置文 件,利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控; 非常适合待监控的数据库种类繁多的应用场景,而且可以在监控代理本地进行实时监控, 并根据监控结果进行短信报警或图形展示,减少误报的可能性;由于不需要监控代理轮询 监控各种类的数据库,因此,可以提高数据监控的效率。[0131]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或 讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦 合或通信连接,可以是电性,机械或其它的形式。[0132]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。[0133]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。[0134]上述以软件功能单元的形式实现的集成的单元,可以以代码的形式存储在一个计 算机可读取存储介质中。上述代码存储在一个计算机可读存储介质中,包括若干指令用以 使处理器或硬件电路执行本发明各个实施例所述方法的部分或全部步骤。而前述的存储介 质包括:通用串行总线接口的无需物理驱动器的微型高容量移动存储盘、移动硬盘、只读存 储器(英文:Read_0nly Memory,简称ROM)、随机存取存储器(英文:Random AccessMemory, 简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。[0135]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保 护范围。
【权利要求】
1.一种数据库监控方法,其包括: 根据各数据库的信息,获取与各数据库的信息对应的监控配置文件; 根据获取的与各数据库的信息对应的监控配置文件,利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控。
2.根据权利要求1所述的方法,其中,所述根据各数据库的信息,获取与各数据库的信息对应的监控配置文件之前,包括: 根据各数据库的信息,建立切分配置文件; 所述切分配置文件中包括各数据库的信息以及与各数据库的信息对应的监控配置文件。
3.根据权利要求2所述的方法,其中,所述根据各数据库的信息,获取与各数据库的信息对应的监控配置文件,包括: 根据各数据库的信息,查询所述切分配置文件,获取与各数据库的信息对应的监控配置文件。
4.根据权利要求1-3任一项所述的方法,其中,所述利用预先编写好的与各数据库的信息对应的监控程序,对各自对应的数据库进行监控之后,包括: 根据预先的监控规则,将各监控程序对各自对应的数据库进行监控的结果分别进行报警和/或绘图处理。
5.一种数据库监控装置,其包括: 获取模块,用于根据各数据库的信息,获取与各数据库的信息对应的监控配置文件;监控模块,用于利用预先编写好的与各据库的信息对应的监控程序,对各自对应的数据库进行监控。
6.根据权利要求5所述的装置,还包括: 建立模块,用于根据各数据库的信息,建立切分配置文件; 所述切分配置文件中包括各数据库的信息以及与各数据库的信息对应的监控配置文件。
7.根据权利要求6所述的装置,其中,所述获取模块,具体用于根据各数据库的信息,查询所述切分配置文件,获取与各数据库的信息对应的监控配置文件。
8.根据权利要求5-7任一项所述的装置,还包括: 处理模块,用于根据预先的监控规则,将各监控程序对各自对应的数据库进行监控的结果分别进行报警和/或绘图处理。
9.一种数据库监控设备,其包括: 如权利要求5-8任一项所述的数据库监控装置。
【文档编号】G06F17/30GK103605722SQ201310574254
【公开日】2014年2月26日 申请日期:2013年11月15日 优先权日:2013年11月15日
【发明者】杨挺, 黄智凯 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1