具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
对于华为ME60设备,需要使用测试方法snmpwalk,才能查询到逻辑端口与物理端口。步骤如下:使用命令snmpwalk-v2c-c[共同体][设备ip地址].1.3.6.1.4.1.2011.5.25.110.1.2.1.2,例如,snmpwalk-v2c-c hncrc2003ro222.40.0.33.1.3.6.1.4.1.2011.5.25.110.1.2.1.2查看对应关系,查询结果如图1所示。华为ME60设备这种端口查询方法不能一次查询多个IP地址上的设备,且无法直接查询到逻辑端口由那几个物理端口捆绑成,需要查表对应,查询过程较为繁琐。
本发明实施例针对上述情况,通过管理信息库(Management Information Base,MIB)采集方式,查询华为ME60设备逻辑端口与被捆绑的物理端口的所属关系。但华为ME60设备中的逻辑端口与被捆绑的物理端口之间只有间接的对应关系,需要通过查询两张表格,即通过hwTrunkIfTable表,查询逻辑端口的索引与该索引对应的逻辑口名称,通过hwTrunkMemTable表,查询逻辑端口的索引对应的物理端口的索引,根据查询出的信息,获得逻辑端口与物理端口之间的对应关系,更新端口的捆绑逻辑接口属性,存入到设备信息表中。
图2为本发明实施例示出的数据采集方法的流程图,如图2所示,本实施例的方法包括:
S110,从数据库中查询目标IP地址的设备信息,设备信息包括端口信息和索引信息;其中,端口信息和索引信息包括逻辑端口名称与逻辑端口索引之间的对应关系、逻辑端口索引与物理端口索引之间的对应关系。
S120,根据端口信息和索引信息获得逻辑端口名称与物理端口索引之间的对应关系。
S130,从数据库中查询物理端口索引与物理端口名称之间的对应关系,并根据逻辑端口名称与物理端口索引之间的对应关系,获得逻辑端口名称与物理端口名称之间的对应关系。
S140,将逻辑口名称与物理口名称之间的对应关系更新到数据库的端口属性表中。
本实施例通过查询目标IP地址的设备信息获取逻辑端口名称与物理端口索引之间的对应关系,再根据从数据库中查询到的物理端口索引与物理端口名称之间的对应关系,得到逻辑端口名称与物理端口名称之间的对应关系,通过将得到的逻辑端口名称与物理端口名称之间的对应关系更新到数据库的端口属性表中,使得在需要采集设备的逻辑端口与被捆绑的物理端口的从属关系时,可以通过查询端口属性表,直接采集逻辑端口与被捆绑的物理端口的从属关系,采集方式简单,且能够一次查询多个IP地址上设备的逻辑端口与被捆绑的物理端口的从属关系,采集效率较高。
图3为本发明实施例示出的定期采集设备信息的流程图,以下参考图3对上述步骤S210-S240进行详细的说明。
首先执行步骤S210,即从数据库中查询目标IP地址的设备信息,设备信息包括端口信息和索引信息;其中,端口信息和索引信息包括逻辑端口名称与逻辑端口索引之间的对应关系、逻辑端口索引与物理端口索引之间的对应关系。
本实施例采用MIB方式,不间断的定时从数据库中同时查询一个或多个目标IP地址的设备信息,如采集逻辑端口名称与逻辑端口索引之间的对应关系、逻辑端口索引与物理端口索引之间的对应关系。
在本实施例中,通过下述方式从数据库中查询目标IP地址的设备信息:建立数据采集任务,该数据采集任务包括采集频率、目标IP地址和目标端口信息;启动数据采集任务,并按照采集频率从数据库中的目标表格内采集设备信息,目标表格包括描述目标IP地址上的设备端口信息的表格。
如图3所示,启动数据管理服务NmsProbe并添加数据采集任务,设置数据任务参数(如任务名称、采集频率、目标IP、端口信息等),启动数据采集任务,进行任务轮询,例如每隔一分钟,用当前时间减去上次采集数据的时间,与采集周期进行对比,判断是否进行采集,在判断需要进行采集时,采集数据库中描述设备端口信息的表格内的数据,得到所需的设备信息。
在获得设备信息之后,继续执行步骤S220,即根据端口信息和索引信息获得逻辑端口名称与物理端口索引之间的对应关系。
本实施例获得的端口信息和设备信息包括逻辑端口名称与逻辑端口索引之间的对应关系、逻辑端口索引与物理端口索引之间的对应关系,相应的,本实施例根据逻辑端口名称与逻辑端口索引之间的对应关系、逻辑端口索引与物理端口索引之间的对应关系,获得逻辑端口名称与物理端口索引之间的对应关系。
在一个实施例中,根据逻辑端口名称与物理端口索引之间的对应关系,以物理端口索引为键key,以逻辑端口名称值value,将所述键值对保存在内存中,以便于后续继续该对应关系得到逻辑端口与被捆绑的物理端口的从属关系。
在得到逻辑端口名称与物理端口索引之间的对应关系之后,继续执行步骤S230,即从数据库中查询物理端口索引与物理端口名称之间的对应关系,并根据逻辑端口名称与物理端口索引之间的对应关系,获得逻辑端口名称与物理端口名称之间的对应关系。
本实施例通过MIB的采集方式,获取目标设备包括的物理端口索引,以及物理端口索引与物理端口名称之间的对应关系;由于通过MIB采集的信息包括很多的非相关信息,本实施例从获取到的物理端口索引中过滤掉非目标物理端口索引,获得目标物理端口索引与物理端口名称之间的对应关系。本实施例根据物理端口的索引过滤掉不需要采集的端口,减少后续需要更新的端口属性表。
在获得逻辑端口名称与物理端口名称之间的对应关系之后,继续执行步骤S240,即将逻辑口名称与物理口名称之间的对应关系更新到数据库的端口属性表中。
在获得逻辑口名称与物理口名称之间的对应关系时,即可得到逻辑端口与被捆绑的物理端口的所属关系。本实施例预先在物理端口的端口属性表中添加归属逻辑端口E_thunk字段,表示物理端口对应的逻辑端口,将物理端口对应的逻辑端口名称更新到端口属性表的归属逻辑端口字段中,以方便查看物理端口对应的逻辑端口。
为详细说明本实施例的数据采集方法,本实施例通过对华为ME60设备进行数据采集为例。
首先,在华为ME60的物理端口的端口属性表中添加E_thunk字段,表示物理端口对应的逻辑端口。
然后,查询hwTrunkIfTable表,hwTrunkIfTable表表示逻辑端口索引与逻辑端口名称之间的对应关系。
假设本实施例查询的是IP地址为183.203.254.130上的ME60的设备信息。
使用Mib“1.3.6.1.4.1.2011.5.25.41.1.3.3.1.2”获取ME60设备的对象标识符(Object Identifier,OID),再使用snmpwalk-c TYJW_NMS-v 2c 183.203.254.130 1.3.6.1.4.1.2011.5.25.41.1.3.3.1.2查询逻辑端口TRUNK接口的索引对应的TRUNK接口号;假设上述查询命令的查询报文为:
SNMPv2-SMI::enterprises.2011.5.25.41.1.3.3.1.2.
0=INTEGER:
SNMPv2-SMI::enterprises.2011.5.25.41.1.3.3.1.2.
1=INTEGER:
SNMPv2-SMI::enterprises.2011.5.25.41.1.3.3.1.2.
2=INTEGER:
SNMPv2-SMI::enterprises.2011.5.25.41.1.3.3.1.2.
3=INTEGER:
上述查询报文最后一位索引A对应的接口号的值为B,即每行A的值对应的逻辑端口是TRUNK B。例如,第一条查询报文的最后一位索引0对应的逻辑端口名称是TRUNK 1,第二条查询报文的最后一位索引1对应的逻辑端口名称是TRUNK 2,第三条查询报文的最后一位索引2对应的逻辑端口名称是TRUNK 10,第四条查询报文的最后一位索引3对应的逻辑端口名称是TRUNK 6。
接着,查询hwTrunkMemTable表,hwTrunkMemTable表表示逻辑端口索引与物理端口索引之间的对应关系。
使用Mib“1.3.6.1.4.1.2011.5.25.41.1.4.1.1.2”获取ME60设备的OID,再使用snmpwalk-c TYJW_NMS-v 2c183.203.254.130.1.3.6.1.4.1.2011.5.25.41.1.4.1.1.2查询逻辑端口TRUNK接口的索引对应的TRUNK接口号;假设上述查询命令的查询报文为:
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.0.24=INTEGER:1
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.0.464=INTEGER:1
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.1.16=INTEGER:1
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.1.456=INTEGER:1
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.2.19=INTEGER:1
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.2.459=INTEGER:1
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.3.15=INTEGER:1
SNMPv2-SMI::enterprises.2011.5.25.41.1.4.1.1.2.3.455=INTEGER:1
在上述查询报文中波浪下划线中的两位数值中,例如第一条报文中的数据0.24,倒数第二位索引E与倒数第一位索引F表示逻辑端口的索引E对应被捆绑的物理端口的索引F。例如,第一条查询报文的逻辑端口索引0对应的被捆绑的物理端口的索引24,第二条查询报文的逻辑端口索引0对应的被捆绑的物理端口的索引464,第三条查询报文的逻辑端口索引1对应的被捆绑的物理端口的索引16,第四条查询报文的逻辑端口索引1对应的被捆绑的物理端口的索引456,第五条查询报文的逻辑端口索引2对应的被捆绑的物理端口的索引19,第六条查询报文的逻辑端口索引2对应的被捆绑的物理端口的索引459,第七条查询报文的逻辑端口索引3对应的被捆绑的物理端口的索引15,第八条查询报文的逻辑端口索引3对应的被捆绑的物理端口的索引455。
接着,获得逻辑端口名称与物理端口索引之间的对应关系。
根据上述采集的数据,即逻辑端口的索引E捆绑的物理端口的索引F,得到逻辑端口的名称B与物理端口的索引F的对应关系,将索引F当做key值,逻辑端口的名称B为value,将key-value存在内存的map集合中。
然后,获得逻辑端口名称与物理端口名称之间的对应关系。
使用MIB方式查询数据库中的ifTable表,ifTable表表示了物理端口名称与物理端口索引之间的对关系,通过读取ifTable表,可以得到物理端口的索引号G(如24)对应的物理端口名称为N(如GigabitEthernet1/0/15),结合内存中map集合中保存的key-value,获得逻辑端口与被捆绑的物理端口的从属关系。
其中,在使用MIB方式查询ifTable表时,由于通过MIB采集的信息包括很多的非相关信息,可以根据物理端口的索引,过滤不需要采集的物理端口,读取目标物理端口索引对应的物理端口名称。
例如通过使用Mib“1.3.6.1.2.1.2.2.1.2.”查询设备的OID,接着使用snmpwalk-cTYJW_NMS-v 2c 183.203.254.130 1.3.6.1.2.1.2.2.1.2.查询ifTable表,过滤掉不需要采集的物理端口之后,得到的报文如下:
IF-MIB::ifDescr.24=STRING:GigabitEthernet1/0/15
IF-MIB::ifDescr.464=STRING:GigabitEthernet2/0/15
IF-MIB::ifDescr.16=STRING:GigabitEthernet1/0/7
IF-MIB::ifDescr.456=STRING:GigabitEthernet2/0/7
IF-MIB::ifDescr.19=STRING:GigabitEthernet1/0/10
IF-MIB::ifDescr.459=STRING:GigabitEthernet2/0/10
IF-MIB::ifDescr.15=STRING:GigabitEthernet1/0/6
IF-MIB::ifDescr.455=STRING:GigabitEthernet2/0/6
根据上述报文,获得物理端口的索引对应的物理端口名称,在根据保存在内存中的key-value,获得逻辑口名称与物理口名称之间的对应关系。
最后,更新数据库的端口属性表中。
根据逻辑口名称与物理口名称之间的对应关系,将物理端口对应的逻辑端口名称更新到端口属性表中预先添加的E_thunk字段,以方便快速查看物理端口所从属的逻辑端口。
与本发明数据采集方法相对应的,本发明实施例还提供了一种数据采集装置。
图4为本发明实施例示出的数据采集装置的结构框图,如图3所示,本实施例的数据采集装置包括:
查询单元41,用于从数据库中查询目标IP地址的设备信息,设备信息包括端口信息和索引信息;以及,从数据库中查询物理端口索引与物理端口名称之间的对应关系;其中,端口信息和索引信息包括逻辑端口名称与逻辑端口索引之间的对应关系、逻辑端口索引与物理端口索引之间的对应关系;
计算单元42,用于根据端口信息和索引信息获得逻辑端口名称与物理端口索引之间的对应关系;以及根据逻辑端口名称与物理端口索引之间的对应关系,获得逻辑端口名称与物理端口名称之间的对应关系;
更新单元43,用于将逻辑口名称与物理口名称之间的对应关系更新到数据库的端口属性表中。
本实施例中的查询单元41包括第一查询模块和第二查询模块;
第一查询模块,用于建立数据采集任务,数据采集任务包括采集频率、目标IP地址和目标端口信息;启动数据采集任务,并按照采集频率从数据库中的目标表格内采集设备信息,目标表格包括描述目标IP地址上的设备端口信息的表格。
第二查询模块,用于通过MIB的采集方式,获取目标设备包括的物理端口索引,以及物理端口索引与物理端口名称之间的对应关系;从获取到的物理端口索引中过滤掉非目标物理端口索引,获得目标物理端口索引与物理端口名称之间的对应关系。
本实施例的计算单元42,用于根据逻辑端口名称与逻辑端口索引之间的对应关系、逻辑端口索引与物理端口索引之间的对应关系,获得逻辑端口名称与物理端口索引之间的对应关系。
本实施例的更新单元43,用于将物理端口对应的逻辑端口名称更新到端口属性表中预先添加的归属逻辑端口字段中,归属逻辑端口字段用于表示物理端口对应的逻辑端口名称。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请提供的数据采集装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,参照图5所示,本申请提供的告警管理装置可包括处理器501、存储有机器可执行指令的机器可读存储介质502。处理器501与机器可读存储介质502可经由系统总线503通信。并且,通过读取并执行机器可读存储介质502中与数据采集逻辑对应的机器可执行指令,处理器501可执行上文描述的数据采集方法。
本申请中提到的机器可读存储介质502可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
根据本申请公开的示例,本申请还提供了一种包括机器可执行指令的机器可读存储介质,例如图5中的机器可读存储介质502,机器可执行指令可由数据采集装置中的处理器501执行以实现上文描述的数据采集方法。
为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。