一种监控数据采集方法、装置、电子设备及存储介质与流程

文档序号:19951111发布日期:2020-02-18 10:31阅读:128来源:国知局
本发明涉及运维监控
技术领域
:,具体涉及一种监控数据采集方法、装置、电子设备及存储介质。
背景技术
::随着互联网的发展,网络系统一旦发生故障带来的经济损失将是巨大的,为此,网络系统的运维监控工作越来越受到重视,为完成运维监控和告警需要采集数据,而目前的监控数据采集中的监控对象多,采集效率低的问题亟待解决。技术实现要素:本发明提供了一种监控数据采集方法、装置、电子设备及存储介质,降低了数据采集时间消耗,减少了内存占用并加快了采集效率。为达到上述技术目的,本申请的技术方案是这样实现的:根据本申请的一个方面,提供了一种监控数据采集方法,包括:根据分布式缓存memcached服务器的ip地址和端口号与memcached服务器建立socket连接;在启动memcache服务之后,向memcached服务器发送远程命令并接收memcached服务器针对所述远程命令的返回值;解析所述返回值得到属性信息,将得到的属性信息上传至网络管理系统的数据库中保存,以供监控展现。根据本申请的另一个方面,提供了一种监控数据采集装置,应用于网络管理系统,包括:连接单元,用于根据分布式缓存memcached服务器的ip地址和端口号与memcached服务器建立socket连接;采集单元,用于在启动memcache服务之后,向memcached服务器发送远程命令并接收memcached服务器针对所述远程命令的返回值;上传单元,用于解析所述返回值得到属性信息,将得到的属性信息上传至网络管理系统的数据库中保存,以供监控展现。根据本申请又一个方面,提供了一种电子设备,所述电子设备包括:处理器,以及存储有可在处理器上运行的计算机程序的存储器;其中,所述处理器,用于在执行所述存储器中的计算机程序时执行本申请一个方面所述的监控数据采集方法。根据本申请的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请一个方面所述的监控数据采集方法。有益效果:本发明实施例的监控数据采集方法和装置,通过与memcached服务器建立socket连接,在启动memcache服务之后,向memcached服务器发送远程命令并接收memcached服务器针对所述远程命令的返回值,解析所述返回值得到属性信息,将得到的属性信息上传至网络管理系统的数据库中保存,以供监控展现。由于memcached服务器作为数据库和web应用之间的中间件,memcached服务器上保存了大量的、有价值的监控数据,从而与现有技术相比,通过与memcached服务器建立可靠连接,并发送命令行获取memcached服务器返回值并解析后得到多个属性值,以供后续进行监控和展现,如此,避免了从多个数据库或web应用中采集数据造成的采集效率低的问题,提高了采集时间,减少了对内存的占用,满足了实际需求。附图说明图1是本发明一个实施例的监控数据采集方法的流程图;图2是本发明又一个实施例的监控数据采集方法的流程示意图;图3是本发明一个实施例的监控数据采集装置的框图;图4是本发明一个实施例的电子设备的框图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明的设计构思在于对memcached服务资源和性能数据的快速采集后上传网管系统。是通过socket连接到memcached服务器,使用telnet命令取得分布式缓存memcached上的属性信息,将解析后的属性值上传网管系统,以供监控展现。为便于理解,这里先对memcached服务器进行简要说明。memcached是一个自由开源的,高性能,分布式内存对象缓存系统。是一种基于内存的key-value存储,用来存储小块的任意数据(包括字符串、对象)。这些数据可以是数据库调用、api调用或者是页面渲染的结果。本质上,它是一个简洁的key-value存储系统。一般的使用目的是通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度、提高可扩展性。memcached作为高速运行的分布式缓存服务器,具有以下的特点:协议简单、基于libevent的事件处理、内置内存存储方式、不互相通信的分布式。概言之,memcached用于动态web应用以减轻数据库负载,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了动态的、数据库驱动网站的速度。memcached的服务器与客户端通信并不使用复杂的xml等格式,而使用简单的基于文本行的协议。因此,通过telnet也能在memcached上保存数据、取得数据。图1是本发明一个实施例的监控数据采集方法的流程图,参见图1,本发明实施例监控数据采集方法包括下列步骤:步骤s101,根据分布式缓存memcached服务器的ip地址和端口号与memcached服务器建立socket连接;步骤s102,在启动memcache服务之后,向memcached服务器发送远程命令并接收memcached服务器针对所述远程命令的返回值;步骤s103,解析所述返回值得到属性信息,将得到的属性信息上传至网络管理系统的数据库中保存,以供监控展现。由图1所示可知,本实施例的监控数据采集方法通过与memcached服务器建立socket连接,并在memcache服务启动之后,向memcached服务器发送远程命令并接收memcached服务器针对远程命令的返回值,解析返回值可以得到属性信息,这些属性信息即为采集的监控数据,将这些属性信息上传到网络管理系统nms之后,nms可以基于这些监控数据进行展现以及告警等操作。由于memcached服务器作为中间系统,其上存储了大量的与数据库或web应用交互的数据,这些数据对于实现监控具有极大的价值,与现有技术相比,从memcached服务器采集这些监控数据,避免了从数据库或web应用等多个数据源采集数据导致的采集效率低、时间长的问题。并且,由于memcached是轻量级服务器,在网管系统中作为中间件使用,定时通过telnet命令获取数据,也不需要繁复的查询及处理方式,降低了网管系统cpu使用率及内存占用率。需要说明的是,本实施例中之所以与memcached服务器建立socket连接是因为远程连接(telnet)需要不定长度的数据被可靠地传输,socket连接正是基于tcp传输协议,从而保证了数据传输的可靠性。注:socket通常用来实现客户方和服务方的连接。网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个socket。socket是tcp/ip协议的一个十分流行的编程界面,一个socket由一个ip地址和一个端口号来唯一确定。图2是本发明又一个实施例的监控数据采集方法的流程示意图,结合图2对本发明一个实施例的监控数据采集方法的实现步骤进行说明。参见图2,流程开始,首先执行通过socket线程连接到memcached服务。具体的,根据获取的memcached服务器的ip地址和端口号,向memcached服务器发送连接建立请求,并根据memcached服务器的响应建立双向传输链接。建立socket连接的主要代码示意如下:socket=newsocket(ip,port);其中ip和port为memcached服务器的ip地址和端口号。如果与memcached服务器的连接建立失败,则等待下次连接。如果连接建立成功,则发送指定命令行到memcached服务器并取得返回值。一个实施例中,向memcached服务器发送的远程命令包括:stats远程命令和二级子项slab远程命令。在发送stats远程命令和二级子项slab远程命令之前可先发送其他cmd命令行。例如,启动memcached服务之后,发送下列命令行以查看memcached服务的状态。发送下列命令以查看memcached服务器上的进程id(identity,即,标识)。为了实现监控数据采集目的,本实施例中,主要用到的是stats和二级子项slab两个命令。具体的,发送下列stats命令[root@sgm2bin]#echostats|nc****11211,后即可获得memcached服务器的返回值,如下所示:statsstatpid17357//memcached服务进程的进程idstatversion1.4.22//memcache版本statlibevent1.4.13-stable//libevent版本statcurr_connections5//当前打开着的连接数stattotal_connections9//表示从memcached服务启动到当前时间,系统打开过的连接的总数。statconnection_structures6//表示从memcached服务启动到当前时间,被服务器分配的连接结构的数量statcmd_get2//get命令的请求次数statcmd_set5//set命令的请求次数statcmd_flush0//flush_all命令的请求次数注,命令中的*表示ip地址对应的数字,实际应用中应替换为真实ip地址数字。发送下列slab命令:[root@sgm2bin]#echostatsslabs|nc****11211,之后,获得memcached服务器的返回值如下所示:tatsslabsstat1:chunk_size96//当前slab每个chunk的大小stat1:chunks_per_page10922//每个page有多少个chunkstat1:total_pages1//分配给当前slab的page总数stat1:used_chunks1//使用了多少个chunkstat1:free_chunks10921//过期数据空出的chunk里还没有被使用的chunk数stat1:free_chunks_end0//新分配的但是还没有被使用的chunk数stat1:mem_requested74//请求存储在该slab的字节数注,命令中的*表示ip地址对应的数字,实际应用中应替换为真实ip地址数字。在取得memcached服务器返回的返回值后进行逐行解析,分解返回值得到指定的属性信息即,获得属性值。在获得属性值之后,以“memcached服务名称+服务ip+端口号”形式拼接成唯一的资源对象名称。也就是说,本实施例中,将以memcached服务名称+服务ip+端口号的形式拼接唯一的资源对象名称,每个memcached服务对应一个唯一的资源对象名称,从而保证后续运维监控展现时清晰、明了。将拼接的资源对象名称上传至nms(networkmanagementsystem)网络管理系统。具体是上传到nms的数据库中。参见图2,本实施例中对于获取的属性值,按资源指标或者性能指标将解析得到的属性信息进行分类,以使得在监控展现时按类别展现。也就是说,本实施例中对获得的属性值进行了划分,对于指示配置信息的属性值对应到资源kpi下,而对于指示性能的属性值对应到性能kpi(关键绩效指标,keyperformanceindicator)下,这样方便后续nms网管系统进行分类展现。接上例,memcached服务器的返回值中包括了多个属性值,例如,statpid17357,statversion1.4.22,statlibevent1.4.13-stable这三个属性值分别表示memcached服务进程的进程id,memcache的版本号以及libevent的版本号。这些属性值是对memcached服务的基本描述信息或称为配置信息,因此后续将被对应到资源kpi下。而属性chunk_size96,chunks_per_page10922,以及total_pages1这些属性值表示的是memcache服务的性能状况,所以将被对应到性能kpi下。参见图2,对获得的属性信息按照内容进行分类之后,本实施例中将两个类别下的属性信息对应到资源名称。需要说明的是,在网络管理系统中记录有memcached资源,例如,采集的memcached服务器基本信息时,通过远程命令采集到的分类数据才能挂载在该memcache资源下,并输出显示为该memcache资源的属性信息和性能信息。即,当解析返回值得到属性信息时,查找网络管理系统的数据库中是否存在相应的资源对象名称,若存在,则将得到的属性信息上传至网络管理系统的数据库中资源对象名称所属目录下保存。如此,实现了按照类别对应保存属性信息,方便后续分类展现的技术效果。如图2所示,性能kpi和资源kpi下的属性信息在对应到资源名称后,均被上传到nms网管系统,供网管系统进行运维监控、展现。至此,本发明实施例的这种基于memcached分布式缓存的监控数据(包括资源配置数据和性能数据)采集方法,时间消耗及内存占用少,加快了数据采集效率,方便大规模推广应用。图3是本发明一个实施例的监控数据采集装置的框图,参见图3,监控数据采集装置300应用于网络管理系统,包括:连接单元301,用于根据分布式缓存memcached服务器的ip地址和端口号与memcached服务器建立socket连接;采集单元302,用于在启动memcache服务之后,向memcached服务器发送远程命令并接收memcached服务器针对所述远程命令的返回值;上传单元303,用于解析所述返回值得到属性信息,将得到的属性信息上传至网络管理系统的数据库中保存,以供监控展现。在本发明的一个实施例中,采集单元302,具体用于向memcached服务器发送stats远程命令和二级子项slab远程命令。在本发明的一个实施例中,上传单元303,具体用于以memcached服务名称+服务ip+端口号的形式拼接成唯一的资源对象名称,将该资源对象名称上传至网络管理系统的数据库中,对memcached服务器返回的stats远程命令或slab远程命令的返回值进行解析,当解析返回值得到属性信息时,查找网络管理系统的数据库中是否存在相应的资源对象名称,若存在,则将得到的属性信息上传至网络管理系统的数据库中资源对象名称所属目录下保存。在本发明的一个实施例中,监控数据采集装置300还包括:分类单元,用于按资源配置指标或者性能指标将解析得到的属性信息进行分类,以使得在监控展现时按类别展现。关于图3所示监控数据采集装置中的各单元所执行的功能的举例解释说明,与前述方法实施例中的举例解释说明一致,这里不再一一赘述。需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的页面性能测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。例如,图4是本发明实施例中的电子设备的结构示意图。该电子设备400包括:处理器410,以及存储有可在所述处理器410上运行的计算机程序的存储器420。处理器410,用于在执行所述存储器420中的计算机程序时执行本发明中方法的各步骤。存储器420可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器420具有存储用于执行上述监控数据采集方法中的任何方法步骤的计算机程序431的存储空间430。计算机程序431可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。本发明实施例中还提供了一种计算机可读存储介质。该计算机可读存储介质存储有用于执行根据本发明的监控数据采集方法步骤的计算机程序,可以被电子设备的处理器读取,当计算机程序由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算程序可以执行上述任一实施例中示出的方法。计算机程序可以以适当形式进行压缩。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围以权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1