[0030] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0031] 本发明的目的在于提供一种读取网络设备的信息的方法及系统,用于解决现有技术中对网络设备的读操作效率低的问题。以下将详细阐述本发明的一种读取网络设备的信息的方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种读取网络设备的信息的方法及系统。
[0032] 本实施例提供一种读取网络设备的信息的方法及系统,应用于网络管理系统通过SNMP代理设备向网络设备读写信息的过程中,每次当网络管理系统向SNMP代理读取网络设备信息时,SNMP代理立即从缓存服务器中读取内容,这样大大提高了读的效率,同时也减轻了网络设备的压力。具体地,如图1所示,所述读取网络设备的信息的方法包括以下步骤。
[0033] 步骤S11,在接收到网络管理系统发送的读取网络设备的信息的读取请求时,SNMP代理设备从预先设置的缓存有所述网络设备的信息的缓存服务器中读取所述网络设备的信息。
[0034] 步骤S12,SNMP代理设备定时校验所述网络设备的信息与所述缓存服务器中缓存的所述网络设备的信息是否一致,并在所述网络设备的信息与所述缓存服务器中缓存的所述网络设备的信息不一致时,同步所述缓存服务器中缓存的所述网络设备的信息。
[0035] 以下对步骤S11和步骤S12进行详细说明。
[0036] 步骤S11,在接收到网络管理系统发送的读取网络设备的信息的读取请求时,SNMP代理设备从预先设置的缓存有所述网络设备的信息的缓存服务器中读取所述网络设备的信息。
[0037] 其中,于本实施例中,所述缓存服务器通过Redis数据库缓存所述网络设备的信息,所述SNMP代理设备通过套接字(socket)通信方式访问所述Redis数据库。Redis是一种非关系型数据库,其读写速度非常高,将Redis数据库部署到一台服务器上作为缓存服务器,SNMP代理通过socket访问Redis数据库,这样做的好处是可以减轻SNMP代理的压力,从而提高性能。
[0038] 于本实施例中,每次当网络管理系统向SNMP代理设备读取网络设备信息时,SNMP代理设备立即从缓存服务器中读取内容,这样大大提高了读的效率,同时也减轻了网络设备的压力。
[0039] 步骤S12,SNMP代理设备定时校验所述网络设备的信息与所述缓存服务器中缓存的所述网络设备的信息是否一致,并在所述网络设备的信息与所述缓存服务器中缓存的所述网络设备的信息不一致时,同步所述缓存服务器中缓存的所述网络设备的信息。
[0040] 管理信息库(MIB,Management Information Base)是TCP/IP网络管理协议标准框架的内容之一,MIB定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义,即管理系统可访问的受管设备的控制和状态信息等数据变量都保存在MIB中。
[0041] 如图2所示,MIB节点是一个树状结构,树的结构是根据功能而划分的,比如MIB节点根据功能分为N个模块,M(N-1),M(N-2),…,M(1),M(0),每个模块的节点内容都存储到一片缓存中,图2所示的是设备端(网络设备)与缓存服务器中的节点的对应关系,设备端每当有值发生了变化,立即通知到SNMP代理,SNMP代理更新缓存服务器的内容,如果某一个节点的内容变化了,则对应的缓存中的内容也要发生变化,这样网络管理系统向SNMP代理读取内容的时候,SNMP代理可以直接从缓存中读取。如果设备端由于不稳定,很难保证该操作完全正确,如果某一个节点的内容变化了,没有通知SNMP代理某个节点发生了变化,则SNMP代理永远不会更新缓存服务器的内容,也就是说,缓存中的内容未必一直与设备的信息保持同步的。因此为了保证缓存服务器的内容和SNMP代理的内容完全一致,需要定时将缓存的内容与设备的内容进行同步,但是由于MIB节点数量很多,一般会有数百甚至数千个,如果每次全部同步的话,会很消耗大量时间,为了数个节点的不同而进行数百数千个节点的同步很没有必要。
[0042] 具体地,于本实施例中,所述SNMP代理设备通过判断所述网络设备的所有MIB节点的校验值与所述缓存服务器中缓存的所述网络设备的所有MIB节点的校验值是否一致来定时校验所述网络设备的信息与所述缓存服务器中缓存的所述网络设备的信息是否一致,并在所述网络设备的所有MIB节点的校验值与所述缓存服务器中缓存的所述网络设备的所有MIB节点的校验值不一致时,同步所述缓存服务器中缓存的所述网络设备的信息,其中,于本实施例中,所述定时的时间间隔为但不限于1min~10min。
[0043] 也就是说,于本实施例中,同步MIB节点的内容具体为:SNMP代理设备每隔一段时间都要计算设备端每个模块的MIB节点的校验值,计算方法为S(校验值)=S1(模块1校验值)+S2(模块2校验值)+…+SN(模块N校验值),然后计算缓存服务器中的校验值S’(校验值)=S’1(模块1校验值)+S’2(模块2校验值)+…+S’N(模块N校验值)。如果S!=S’,则说明该模块需要同步,则进行同步。
[0044] 所以于本实施例中,计算每个模块所有节点的校验值,根据校验值来判断该模块是否需要同步,这样每次同步的时候,SNMP代理只需逐个计算出设备模块的校验值,还有缓存中的模块校验值,比较这两个值是否一样,如果不一样则同步该模块,否则不同步。这样做的直接好处就是,由于模块的数量是很少的,一般就十几个,同步十几个校验值只需消耗很小的资源。
[0045] 如图3所示,为实现上述读取网络设备的信息的方法,本实施例对应提供一种读取网络设备的信息的系统1,应用于网络管理系统2通过SNMP代理设备11向网络设备读写信息的过程中,具体地,于本实施例中,所述读取网络设备的信息的系统1包括:缓存服务器12和SNMP代理设备11,其中,所述SNMP代理设备11包括读取请求接收模块111,设备信息读取模块112以及校验同步模块113。
[0046] 于本实施例中,所述缓存服务器12用于预先缓存网络设备的信息。其中,具体地,于本实施例中,所述缓存服务器12通过Redis数据库缓存所述网络设备的信息;所述设备信息读取模块112通过套接字通信方式访问所述Redis数据库。
[0047] 也就是说,于本实施例中,所述缓存服务器12通过Redis数据库缓存所述网络设备的信息,所述SNMP代理设备11通过套接字(socket)通信方式访问所述Redis数据库。Redis是一种非关系型数据库,其读写速度非常高,将Redis数据库部署到一台服务器上作为缓存服务器12,SNMP代理通过socket访问Redis数据库,这样做的好处是可以减轻SNMP代理的压力,从而提高性能。
[0048] 于本实施例中,所述读取请求接收模块111用于接收网络管理系统2发送的读取网络设备的信息的读取请求。所述设备信息读取模块112分别与所述缓存服务器12和所述读取请求接收模块111相连,用于在接收到网络管理系统2发送的读取网络设备的信息的读取请求时从所述缓存服务器12中读取所述网络设备的信息。
[0049] 于本实施例中,每次当网络管理系统2向SNMP代理设备11读取网络设备信息时,所述设备信息读取模块112立即从缓存服务器12中读取内容,这样大大提高了读的效率,同时也减轻了网络设备的压力。
[0050] 于本实施例中,所述校验同步模块113与所述缓存服务器12和所述设备信息读取模块112相连,用于定时校验所述网络设备的信息与所述缓存服务器12中缓存的所述网络设备的信息是否一致,并在所述网络设备的信息与所述缓存服务器12中缓存的所述网络设备的信息不一致时,同步所述缓存服务器12中缓存的所述网络设备的信息。
[0051] 管理信息库(MIB,Management Information Base)是TCP/IP网络管理协议标准框架的内容之一,MIB定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义,即管理系统可访问的受管设备的控制和状态信息等数据变量都保存在MIB中。
[0052] 如图2所示,MIB节点是一个树状结构,树的结构是根据功能而划分的,比如MIB节点根据功能分为N个模块,M(N-1),M(N-2),…,M(1),M(0),每个模块的节点内容都存储到一片缓存中,图2所示的是设备端(网络设备)与缓存服务器12中的节点的对应关系,设备端每当有值发生了变化,立即通知到SNMP代理,SNMP代理更新缓存服务器12的内容,如果某一个节点的内容变化了,则对应的缓存中的内容也要发生变化,这样网络管理系统2向SNMP代理读取内容的时候,SNMP代理可以直接从缓存中读取。如果设备端由于不稳定,很难保证该操作完全正确,如果某一个节点的内容变化了,没有通知SNMP代理某个节点发生了变化,则SNMP代理永远不会更新缓存服务器12的内容,也就是说,缓存中的内容未必一直与设备的信息保持同步的。因此为了保证缓存服务器12的内容和SNMP代理的内容完全一致,需要定时将缓存的内容与设备的内容进行同步,但是由于MIB节点数量很多,一般会有数百甚至数千个,如果每次全部同步的话,会很消耗大量时间,为了数个节点的不同而进行数百数千个节点的同步很没有必要。
[0053] 于本实施例中,具体地,所述校验同步模块113通过判断所述网络设备的所有MIB节点的校验值与所述缓存服务器12中缓存的所述网络设备的所有MIB节点的校验值是否一致来定时校验所述网络设备的信息与所述缓存服务器12中缓存的所述网络设备的信息是否一致,并在所述网络设备的所有MIB节点的校验值与所述缓存服务器12中缓存的所述网络设备的所有MIB节点的校验值不一致时,同步所述缓存服务器12中缓存的所述网络设备的信息。其中,于本实施例中,所述定时的时间间隔为1min~10min。
[0054] 也就是说,于本实施例中,同步MIB节点的内容具体为:所述校验同步模块113每隔一段时间都要计算设备端每个模块的MIB节点的校验值,计算方法为S(校验值)=S1(模块1校验值)+S2(模块2校验值)+…+SN(模块N校验值),然后计算缓存服务器12中的校验值S’(校验值)=S’1(模块1校验值)+S’2(模块2校验值)+…+S’N(模块N校验值)。如果S!=S’,则说明该模块需要同步,则进行同步。
[0055] 所以于本实施例中,计算每个模块所有节点的校验值,根据校验值来判断该模块是否需要同步,这样每次同步的时候,SNMP代理只需逐个计算出设备模块的校验值,还有缓存中的模块校验值,比较这两个值是否一样,如果不一样则同步该模块,否则不同步。这样做的直接好处就是,由于模块的数量是很少的,一般就十几个,同步十几个校验值只需消耗很小的资源。
[0056] 综上所述,本发明通过从预先设置的缓存有所述网络设备的信息的缓存服务器12中读取所述网络设备的信息,可以避免每次读操作都要到网络设备中进行重复的信息查询,有效提高了对网络设备的读操作效率,减轻了SNMP代理设备的压力;本发明通过定时校验所述网络设备的信息与所述缓存服务器中缓存的所述网络设备的信息,使得所述缓存服务器中缓存的所述网络设备的信息同步,节省了大量时间。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0057] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。