发明内容
本发明实施例提供一种错误信息获取方法及网络管理设备,用于解决准确排查代理设备执行命令失败的原因较为复杂的技术问题。
第一方面,提供一种错误信息获取方法,该方法包括:
网络管理设备向代理设备发送第一命令;其中,所述第一命令包括用于唯一标示所述第一命令的编号的第一ID;所述第一命令用于请求获取所述代理设备中的数据信息,或者用于设置所述代理设备的参数;
所述网络管理设备根据从所述代理设备获得的第一响应消息确定所述代理设备执行所述第一命令是否成功;
若确定未成功,则所述网络管理设备向所述代理设备发送第二命令,所述第二命令用于指示所述代理设备向所述网络管理设备发送用于表征所述代理设备执行所述第一命令未成功的第一错误信息;其中,所述代理设备中存储有包括所述ID和与所述ID对应的第一错误信息的错误信息表;
所述网络管理设备接收所述代理设备发送的与所述第二命令对应的第二响应消息,所述第二响应消息包括所述第一错误信息。
可选的,在所述第二响应消息包括所述第一错误信息所在的错误信息表时,所述方法还包括:
所述网络管理设备保存所述第一ID;
在所述网络管理设备接收所述代理设备发送的与所述第二命令对应的第二响应消息之后,所述方法还包括:
所述网络管理设备根据所述第一ID从所述错误信息表中筛选出所述第一ID对应的第一错误信息。
可选的,在所述第二命令包括所述第一ID时,所述网络管理设备接收所述代理设备发送的与所述第二命令对应的第二响应消息,包括:
所述网络管理设备接收所述代理设备发送的所述第一错误信息;所述第一错误信息为所述代理设备根据所述第一ID从所述第一错误信息所在的错误信息表中筛选出与所述第一ID对应的错误信息。
可选的,所述错误信息表中的至少一条错误信息为按照确定时间从早到晚的顺序依次存储在所述代理设备中的错误信息,所述确定时间为所述代理设备确定执行与所述第一命令同类型的命令未成功的时间;且所述错误信息表中包括的至少一条错误信息的数量小于或者等于预设阈值;其中,在所述至少一条错误信息的数量大于所述预设阈值时,通过所述代理设备删除所述错误信息表中确定时间最早的一条或多条错误信息。
第二方面,提供一种网络管理设备,该设备包括:
发送单元,用于向代理设备发送第一命令;其中,所述第一命令包括用于唯一标示所述第一命令的编号的第一ID;所述第一命令用于请求获取所述代理设备中的数据信息,或者用于设置所述代理设备的参数;
确定单元,用于根据从所述代理设备获得的第一响应消息确定所述代理设备执行所述第一命令是否成功;
所述发送单元还用于:若确定未成功,则向所述代理设备发送第二命令,所述第二命令用于指示所述代理设备向所述网络管理设备发送用于表征所述代理设备执行所述第一命令未成功的第一错误信息;其中,所述代理设备中存储有包括所述ID和与所述ID对应的第一错误信息的错误信息表;
接收单元,用于接收所述代理设备发送的与所述第二命令对应的第二响应消息,所述第二响应消息包括所述第一错误信息。
可选的,所述设备还包括保存单元和筛选单元;
所述保存单元用于:保存所述第一ID;
所述筛选单元用于:在所述接收单元接收所述代理设备发送的与所述第二命令对应的第二响应消息之后,且在所述第二响应消息包括所述第一错误信息所在的错误信息表时,根据所述第一ID从所述错误信息表中筛选出所述第一ID对应的第一错误信息。
可选的,在所述第二命令包括所述第一ID时,所述接收单元接收所述代理设备发送的与所述第二命令对应的第二响应消息,包括:
所述接收单元接收所述代理设备发送的所述第一错误信息;所述第一错误信息为所述代理设备根据所述第一ID从所述第一错误信息所在的错误信息表中筛选出与所述第一ID对应的错误信息。
可选的,所述错误信息表中的至少一条错误信息为按照确定时间从早到晚的顺序依次存储在所述代理设备中的错误信息,所述确定时间为所述代理设备确定执行与所述第一命令同类型的命令未成功的时间;且所述错误信息表中包括的至少一条错误信息的数量小于或者等于预设阈值;其中,在所述至少一条错误信息的数量大于所述预设阈值时,通过所述代理设备删除所述错误信息表中确定时间最早的一条或多条错误信息。
第三方面,提供一种计算机装置,所述装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面提供的错误信息获取方法中任一项所述方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面提供的错误信息获取方法中任一项所述方法的步骤。
在本发明实施例中,当网络管理设备根据代理设备返回的第一响应消息确定代理设备执行第一命令失败之后,则会向代理设备发送第二命令,以指示代理设备将第一命令执行失败的错误信息发送给网络管理设备,则网络管理设备可以根据错误信息确定代理设备执行第一命令失败的原因,更为简单快捷;同时由于不需要修改响应消息的配置,即不需要对SNMP协议进行修改,则可以适用于不同厂家的设备以及不同版本的设备,适用范围更广。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面介绍本发明实施例的技术背景。
请参见图1,为本发明实施例的技术背景示意图。其中,网络管理设备可以向代理设备发送Get命令或者Set命令等,Get命令用于获取指定的代理设备中的数据,Set命令用于获取指定的代理设备中的参数。当代理设备收到命令并且执行该命令后,会将执行结果通过响应消息(Reponse)反馈给网络管理设备,以使得网络管理设备知道命令执行的结果。
具体的,代理设备返回的响应消息中可以包括与该响应消息相对应的命令的标识(request-id)、差错状态(error-status)、差错索引(error-index)等信息。其中,差错状态用于指示代理设备执行命令是否出错,当代理设备执行命令成功时,差错状态为0,而当代理设备执行命令失败时,差错状态则为具体的错误类型;差错索引是用于在差错状态不为0时指示出错的数据的位置。而在目前的SNMP协议中,对于差错状态只定义了少量的类型配置,不足以表达出所有的错误类型;并且由于响应消息的数据长度有限,无法包括更为详细的错误信息,因此在排查代理设备执行命令失败的原因时,则会较为复杂。
鉴于此,本发明实施例提供一种错误信息获取方法,在该方法中,当网络管理设备根据代理设备返回的第一响应消息确定代理设备执行第一命令失败之后,则会向代理设备发送第二命令,以指示代理设备将第一命令执行失败的错误信息发送给网络管理设备,则网络管理设备可以根据错误信息确定代理设备执行第一命令失败的原因,更为简单快捷;同时由于不需要修改响应消息的配置,即不需要对SNMP协议进行修改,则可以适用于不同厂家的设备以及不同版本的设备,适用范围更广。
下面结合附图介绍本发明实施例提供的技术方案。
请参见图2,本发明一实施例提供一种错误信息获取方法,该方法的流程描述如下。
本发明实施例中,该方法可以通过本申请提供的网络管理设备来执行,该网络管理设备为可以通过SNMP协议与代理设备进行交互并管理代理设备中数据和参数等的任意设备,例如可以为基站的监控系统,或者其他网络设备的监控系统。其中,代理设备则相应的为被网络管理设备管理的代理设备中的任意一个代理设备,例如当网络管理设备为基站的监控系统是,则代理设备可以为基站。
本发明实施例中,为了使得本申请的方法的流程能够被更为清楚的描述,在下面的流程描述中还包括了代理设备侧的相应响应过程。
步骤S201:网络管理设备向代理设备发送第一命令,代理设备接收第一命令。
在本发明实施例中,网络管理设备在需要查询代理设备中的数据或者设置代理设备中的参数时,则可以向代理设备发送第一命令,其中,第一命令则是网络管理设备用于请求获取代理设备中的数据信息或者用于设置代理设备的参数。而在SNMP协议中,为了使得网络管理设备发送的命令和代理设备响应的消息能够对应,每一个命令中都会包括标示该命令的编号的ID。因此,第一命令中也会包括用于标示第一命令的编号的第一ID。另外,第一命令中还可以包括所要发送的代理设备的节点信息,该节点信息用于指示代理设备所在网络中的位置,例如代理设备的网络协议(Internet Protocol,IP)地址。当然,第一命令中还包括其他的信息,例如所要设置的参数以及所要获取的数据等等,在此不再赘述。
相对应的,在网络管理设备向代理设备发送第一命令后,代理设备则可以接收第一命令。
步骤S202:代理设备确定执行第一命令的结果。
在代理设备接收到第一命令后,代理设备则会执行第一命令,而代理设备在执行第一命令的过程中,首先会验证第一命令的正确性。具体的,代理设备可以验证第一命令的格式是否符合SNMP协议规定的格式,当第一命令的格式不符合SNMP协议规定的格式时,则代理设备执行第一命令是不会成功的。或者,代理设备还可以验证第一命令包含的内容是否符合代理设备的内部逻辑,例如,当第一命令用于设置代理设备的坐标参数时,并且第一命令的内容是将代理设备的坐标参数设置在非洲,而代理设备内存存储的坐标参数指示代理设备所在位置为亚洲,那么收到第一命令后验证第一命令的正确性时则会将坐标参数与代理设备内部存储的坐标参数进行对比,对比之后则会发现参数不一致,也就是说第一命令包括的参数信息并不符合代理设备的内部逻辑,这时执行第一命令也是不会成功的。当然,还可能是其他的原因造成的执行第一命令失败,本发明实施例对此不做限制。
本发明实施例中,在代理设备执行第一命令未成功时,代理设备则会保存第一命令的ID和执行第一命令未成功的错误信息,该错误信息则可以包括代理设备执行第一命令未成功的具体原因。
具体的,为了方便ID和错误信息的管理,可以在代理设备中保存一个错误信息表,该表中包括执行未成功的命令的ID和与该ID对应的错误信息。为了防止错误信息表占用过多的存储空间,代理设备还可以设置一个预设阈值,当错误信息的数量超过该预设阈值时,则删除超出预设阈值数量的错误信息。那么代理设备可以按照确定时间的顺序删除确定时间最早的一条或者多条错误信息。那么相对应的,在存储错误信息时,也可以按照确定时间从早到晚的顺序依次存储在错误信息表中,这里的确定时间是指确定命令被执行失败的时间,例如代理设备确定执行第一命令失败的时间。
本发明实施例中,预设阈值可以根据实际情况来设置一个固定值,例如可以根据基站和基站的监控系统的组网情况和互相的业务需求来设置。另外,代理设备也可以根据实际错误信息的数量来动态确定是否删除超过预设阈值的错误信息。具体的,代理设置验证命令的正确性的时间为a秒,假设a秒内代理设备共存储了b条错误信息,代理设备存储错误信息的有效期为c秒,则当a秒到达时,则可以得到一个a秒内存储错误信息的推荐数量d,且d=c/a*b,推荐数量d为此时可以存储的错误信息的最大数量。当这个推荐数量d大于代理设备内设置的预设阈值时,则可以不删除超过预设阈值的错误信息;而当推荐数量d小于代理设备内设置的预设阈值时,则需要删除超过预设阈值的错误信息。
步骤S203:代理设备向网络管理设备发送第一响应消息,网络管理设备接收第一响应消息。
本发明实施例中,代理设备在执行完成第一命令或者执行第一命令未成功时都会向网络管理设备发送第一响应消息,以通知网络管理设备第一命令被执行的结果。
步骤S204:网络管理设备根据第一响应消息确定代理设备执行第一命令是否成功。
在网络管理设备接收到第一响应消息之后,则会根据第一响应消息确定代理设备执行第一命令是否成功。具体的,若是代理设备执行第一命令成功,那么第一响应消息则指示代理设备执行第一命令成功,即第一响应消息中差错状态为0;若是代理设备执行第一命令成功,那么第一响应消息则指示代理设备执行第一命令失败,即第一响应消息中差错状态为相应的错误类型。
步骤S205:网络管理设备向代理设备发送第二命令,代理设备接收第二命令。
本发明实施例中,因为第一响应消息中仅仅包括错误类型等有限的信息,使得网络管理设备无法得知代理设备执行第一命令失败的具体的错误信息,因此当网络管理设备根据第一响应消息确定代理设备执行第一命令失败之后,网络管理设备则会向代理设备发送第二命令,第二命令是用于指示代理设备向网络管理设备发送执行第一命令未成功的第一错误信息。同时,网络管理设备中保存第一响应消息的ID,在SNMP协议中,为了能够使得命令和该命令的响应消息对应,因此命令和和该命令的响应消息的ID相同。因而第一响应消息的ID和第一命令的ID也是相同的。
具体的,第二命令可以是Get命令,即网络管理设备通过Get命令从代理设备中获取第一错误信息。
步骤S206:代理设备向网络管理设备发送第二响应消息,网络管理设备接收第二响应消息。
在代理设备接收到第二命令之后,代理设备则会向网络管理设备发送包括第一错误信息的第一响应消息。
具体的,代理设备可以将代理设备中存储的错误信息表直接发送给网络管理设备。那么网络管理设备接收到该错误信息表之后,则会根据网络管理设备保存的ID从错误信息表中筛选出与该ID对应的第一错误信息。
具体的,网络管理设备发送给代理设备的第二命令中还可以包括第一响应消息的ID,那么代理设备在接收到包括这个ID的第二命令后,则可以从代理设备中的错误信息表中筛选出与该ID对应的第一错误信息,再将第一错误信息发送给网络管理设备,以减少传输的数据量,减少数据传输的时间。
在网络管理设备接收到第一错误信息之后,还可以将第一错误信息进行显示,以使得网络管理人员,例如基站的监控系统的监控人员可以通过网络管理设备显示的第一错误信息得知代理设备执行第一命令失败的具体错误信息,以更加方便快捷的排查代理设备执行命令未成功的原因。
本发明实施例中,还可以在网络管理设备和代理设备中均设置功能开关。当网络管理设备中的功能开关的状态为关闭状态时,网络管理设备在收到第一响应消息并确定代理设备执行第一命令失败时不再向代理设备发送第二命令,也就是不再查询失败的具体原因,而只显示第一响应消息包括的错误类型等信息。当代理设备中的功能开关的状态为关闭状态时,当代理设备接收第二命令之后,向代理设备向网络管理设备发送的第二响应消息为空消息,即不包括任何数据,这样网络管理设备子啊接收到第二响应消息之后,仍然只显示第一响应消息中的错误类型等消息。这样既可以使的本发明实施例的错误信息获取方法适用于不同厂家或者不同版本的设备,使得适用范围更广。
综上所述,本发明实施例中,当网络管理设备根据代理设备返回的第一响应消息确定代理设备执行第一命令失败之后,则会向代理设备发送第二命令,以指示代理设备将第一命令执行失败的错误信息发送给网络管理设备,则网络管理设备可以根据错误信息确定代理设备执行第一命令失败的原因,更为简单快捷;同时由于不需要修改响应消息的配置,即不需要对SNMP协议进行修改,则可以适用于不同厂家的设备以及不同版本的设备,适用范围更广。
下面结合附图介绍本发明实施例提供的设备。
请参见图3,基于同一发明构思,本发明一实施例提供一种网络管理设备30,该设备包括:
发送单元301,用于向代理设备发送第一命令;其中,第一命令包括用于唯一标示第一命令的编号的第一ID;第一命令用于请求获取代理设备中的数据信息,或者用于设置代理设备的参数;
确定单元302,用于根据从代理设备获得的第一响应消息确定代理设备执行第一命令是否成功;
发送单元301还用于:若确定未成功,则向代理设备发送第二命令,第二命令用于指示代理设备向网络管理设备发送用于表征代理设备执行第一命令未成功的第一错误信息;其中,所述代理设备中存储有包括所述ID和与所述ID对应的第一错误信息的错误信息表;
接收单元303,用于接收代理设备发送的与第二命令对应的第二响应消息,第二响应消息包括第一错误信息。
可选的,设备还包括保存单元304和筛选单元305;
保存单元304用于:保存第一ID;
筛选单元305用于:在接收单元303接收代理设备发送的与第二命令对应的第二响应消息之后,且在第二响应消息包括第一错误信息所在的错误信息表时,根据第一ID从错误信息表中筛选出第一ID对应的第一错误信息。
可选的,在第二命令包括第一ID时,接收单元303接收代理设备发送的与第二命令对应的第二响应消息,包括:
接收单元303接收代理设备发送的第一错误信息;第一错误信息为代理设备根据第一ID从第一错误信息所在的错误信息表中筛选出与第一ID对应的错误信息。
可选的,错误信息表中的至少一条错误信息为按照确定时间从早到晚的顺序依次存储在代理设备中的错误信息,确定时间为代理设备确定执行与第一命令同类型的命令未成功的时间;且所述错误信息表中包括的至少一条错误信息的数量小于或者等于预设阈值;其中,在所述至少一条错误信息的数量大于所述预设阈值时,通过所述代理设备删除所述错误信息表中确定时间最早的一条或多条错误信息。
该设备可以用于执行图2所示的实施例所提供的方法。因此,对于该设备的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,不多赘述。其中,保存单元304和筛选单元305不是必选的功能模块,因此在图3中以虚线示出。
请参见图4,本发明一实施例还提供一种计算机装置,该计算机装置包括处理器401,处理器401用于执行存储器中存储的计算机程序时实现本发明实施例提供的错误信息获取方法的步骤。
可选的,处理器401具体可以是中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)开发的硬件电路,可以是基带处理器。
可选的,处理器401可以包括至少一个处理核心。
可选的,该计算机装置还包括存储器402,存储器402可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)和磁盘存储器。存储器402用于存储处理器401运行时所需的数据。存储器402的数量为一个或多个。其中,存储器402在图4中一并示出,但需要知道的是存储器402不是必选的功能模块,因此在图4中以虚线示出。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例提供的错误信息获取方法的步骤。
在本发明实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。
在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash drive)、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。