一种处理系统日志报文的方法和装置与流程

文档序号:12375656阅读:308来源:国知局
一种处理系统日志报文的方法和装置与流程

本发明涉及网络通信技术,尤指一种处理系统日志报文的方法和装置。



背景技术:

在Unix类操作系统上,系统日志(Syslog)消息可以通过网络发送到Syslog服务器,Syslog服务器可以对发送Syslog消息的设备的Syslog消息进行统一的存储,或解析其中的内容作相应的处理。

路由器是Syslog的应用场景之一。图1为现有的路由器的结构组成示意图,如图1所示,现有的路由器处理系统日志报文的方法大致包括:

端口模块将接收到的报文发送给协议栈模块,协议栈模块将报文中的调试信息发送给调试信息管理模块,调试信息管理模块根据命令行接口模块的第一配置信息选择性的向Syslog客户端模块发送调试信息;Syslog客户端模块根据命令行接口模块的第二配置信息(例如,互联网协议(IP,Internet Protocol)地址和端口)将调试信息组织成Syslog报文发送给协议栈模块,协议栈模块将Syslog报文封装成用户数据包协议(UDP,User Datagram Protocol)报文发送给端口模块;端口模块将UDP报文发送给Syslog服务器所在的设备;

或者,当路由器出现故障时,告警管理模块向Syslog客户端模块发送告警日志,Syslog客户端模块根据命令行接口模块的第一配置信息将告警日志组织成Syslog报文发送给协议栈模块,协议栈模块将Syslog报文封装成UDP报文发送给端口模块;端口模块将UDP报文发送给Syslog服务器所在的设备。

现有的处理系统日志报文的方法中,端口模块将UDP报文发送给Syslog服务器所在的设备后,如果Syslog服务器所在的设备查找不到与UDP报文中的IP地址和端口相匹配的Syslog服务器,则Syslog服务器所在的设备向 路由器发送控制报文协议(ICMP,Internet Control Message Protocol)对端不可达报文,路由器的端口模块将接收到的ICMP对端不可达报文发送给协议栈模块,并继续执行后续的步骤,这样就会形成Syslog报文回环,由于报文发送速度很快,会导致路由器的CPU使用率很高。



技术实现要素:

为了解决上述问题,本发明提出了一种处理系统日志报文的方法和装置,能够避免Syslog报文回环,从而降低CPU使用率。

为了达到上述目的,本发明提出了一种处理系统日志Syslog报文的方法,包括:

网络设备接收到来自Syslog服务器的控制报文协议ICMP对端不可达报文;

网络设备判断出ICMP对端不可达报文中的源互联网协议IP地址和第二配置信息中的IP地址相同,且ICMP对端不可达报文中的源端口和第二配置信息中的端口相同,不向Syslog服务器所在的设备发送Syslog报文。

优选地,当所述网络设备判断出所述ICMP对端不可达报文中的源IP地址和所述第二配置信息中的IP地址不相同,或所述ICMP对端不可达报文中的源端口和所述第二配置信息中的端口不相同时,该方法还包括:

所述网络设备向所述Syslog服务器所在的设备发送所述Syslog报文。

优选地,该方法还包括:

所述网络设备每隔预设时间向所述Syslog服务器所在的设备发送试探报文;

当所述网络设备未接收到试探报文对应的ICMP对端不可达报文,或判断出所述试探报文对应的ICMP对端不可达报文中的源IP地址和所述第二配置信息中的IP地址不相同,或判断出所述试探报文对应的ICMP对端不可达报文中的源端口和所述第二配置信息中的端口不相同时,向所述Syslog服务器所在的设备发送所述Syslog报文。

优选地,当所述网络设备接收到所述试探报文对应的ICMP对端不可达报文,且判断出所述试探报文对应的ICMP对端不可达报文中的源IP地址和所述第二配置信息中的IP地址相同,且判断出所述试探报文对应的ICMP对端不可达报文中的源端口和所述第二配置信息中的端口相同时,该方法还包括:

继续执行不向所述Syslog服务器发送所述Syslog报文的步骤。

优选地,当所述网络设备第(n-1)次发送所述试探报文的时间间隔小于预先设置的最大试探时间间隔时,所述网络设备第n次发送所述试探报文的时间间隔为: <mrow> <mi>&Delta;</mi> <msub> <mi>T</mi> <mi>n</mi> </msub> <mo>=</mo> <mi>k</mi> <mn>1</mn> <msup> <mi>e</mi> <mrow> <mi>k</mi> <mn>2</mn> <mi>&Delta;</mi> <msub> <mi>T</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mrow> </msup> <mo>;</mo> </mrow>

其中,ΔTn为所述网络设备第n次发送所述试探报文的时间间隔,ΔTn-1为所述网络设备第(n-1)发送所述试探报文的时间间隔,k1和k2为常数,n为大于或等于2的整数。

优选地,当所述网络设备第(n-1)次发送所述试探报文的时间间隔大于或等于预先设置的最大试探时间间隔时,所述网络设备第n次发送所述试探报文的时间间隔为所述最大试探时间间隔;其中,n为大于或等于2的整数。

本发明还提出了一种处理系统日志Syslog报文的装置,至少包括:

接收模块,用于接收到来自Syslog服务器的控制报文协议ICMP对端不可达报文;

发送模块,用于判断出ICMP对端不可达报文中的源互联网协议IP地址和第二配置信息中的IP地址相同,且ICMP对端不可达报文中的源端口和第二配置信息中的端口相同,不向Syslog服务器所在的设备发送Syslog报文。

优选地,所述发送模块还用于:

判断出所述ICMP对端不可达报文中的源IP地址和所述第二配置信息中的IP地址不相同,或所述ICMP对端不可达报文中的源端口和所述第二配置信息中的端口不相同,向所述Syslog服务器所在的设备发送所述Syslog报文。

优选地,所述发送模块还用于:

每隔预设时间向所述Syslog服务器所在的设备发送试探报文;当未接收 到试探报文对应的ICMP对端不可达报文,或判断出所述试探报文对应的ICMP对端不可达报文中的源IP地址和所述第二配置信息中的IP地址不相同,或判断出所述试探报文对应的ICMP对端不可达报文中的源端口和所述第二配置信息中的端口不相同时,向所述Syslog服务器所在的设备发送所述Syslog报文。

优选地,所述接收模块还用于:

接收到所述试探报文对应的ICMP对端不可达报文;

所述发送模块还用于:

判断出所述试探报文对应的ICMP对端不可达报文中的源IP地址和所述第二配置信息中的IP地址相同,且判断出所述试探报文对应的ICMP对端不可达报文中的源端口和所述第二配置信息中的端口相同,继续执行不向所述Syslog服务器发送所述Syslog报文的步骤。

与现有技术相比,本发明包括:网络设备接收到来自Syslog服务器的ICMP对端不可达报文;网络设备判断出ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址相同,且ICMP对端不可达报文中的源端口和第二配置信息中的端口相同,不向Syslog服务器所在的设备发送Syslog报文。通过本发明的方案,在判断出ICMP对端不可达报文中的源互联网协议IP地址和第二配置信息中的IP地址相同,且ICMP对端不可达报文中的源端口和第二配置信息中的端口相同时,不向Syslog服务器所在的设备发送Syslog报文,从而避免了Syslog报文的回环,降低了CPU的使用率。

附图说明

下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。

图1为现有的路由器的结构组成示意图;

图2为本发明处理Syslog报文的方法的流程图;

图3为本发明处理Syslog报文的装置的结构组成示意图。

具体实施方式

为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。

参见图2,本发明提出了一种处理Syslog报文的方法,包括:

步骤200、网络设备接收到来自Syslog服务器的ICMP对端不可达报文。

本步骤中,网络设备可以是网络中的任意设备,例如路由器等。

步骤201、网络设备判断出ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址相同,且ICMP对端不可达报文中的源端口和第二配置信息中的端口相同,不向Syslog服务器所在的设备发送Syslog报文。

本步骤中,当网络设备判断出ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址不相同,或ICMP对端不可达报文中的源端口和第二配置信息中的端口不相同时,向Syslog服务器所在的设备发送Syslog报文。

该方法还可以包括:网络设备每隔预设时间向Syslog服务器所在的设备发送试探报文;当网络设备试探报文对应的ICMP对端不可达报文,或判断出试探报文对应的ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址不相同,或判断出试探报文对应的ICMP对端不可达报文中的源端口和第二配置信息中的端口不相同时,向Syslog服务器所在的设备发送Syslog报文。

其中,当网络设备接收到试探报文对应的ICMP对端不可达报文,且判断出试探报文对应的ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址相同,且判断出试探报文对应的ICMP对端不可达报文中的源端口和第二配置信息中的端口相同时,继续执行不向Syslog服务器发送Syslog报文的步骤。

其中,当网络设备第(n-1)次发送试探报文的时间间隔小于预先设置的 最大试探时间间隔时,网络设备第n次发送试探报文的时间间隔可以是:其中,ΔTn为网络设备第n次发送试探报文的时间间隔,ΔTn-1为网络设备第(n-1)发送试探报文的时间间隔,k1和k2为常数,n为大于或等于2的整数;当网络设备第(n-1)次发送试探报文的时间间隔大于或等于预先设置的最大试探时间间隔时,网络设备第n次发送试探报文的时间间隔可以是最大试探时间间隔。

参见图3,本发明还提出了一种处理Syslog报文的装置,可以设置在网络设备中,至少包括:

接收模块,用于接收到来自Syslog服务器的控制报文协议ICMP对端不可达报文;

发送模块,用于判断出ICMP对端不可达报文中的源互联网协议IP地址和第二配置信息中的IP地址相同,且ICMP对端不可达报文中的源端口和第二配置信息中的端口相同,不向Syslog服务器所在的设备发送Syslog报文。

本发明的装置中,发送模块还用于:

判断出ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址不相同,或ICMP对端不可达报文中的源端口和第二配置信息中的端口不相同,向Syslog服务器所在的设备发送Syslog报文。

本发明的装置中,发送模块还用于:

每隔预设时间向Syslog服务器所在的设备发送试探报文;当未接收到试探报文对应的ICMP对端不可达报文,或判断出试探报文对应的ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址不相同,或判断出试探报文对应的ICMP对端不可达报文中的源端口和第二配置信息中的端口不相同时,向Syslog服务器所在的设备发送Syslog报文。

本发明的装置中,接收模块还用于:

接收到试探报文对应的ICMP对端不可达报文;

发送模块还用于:

判断出试探报文对应的ICMP对端不可达报文中的源IP地址和第二配置 信息中的IP地址相同,且判断出试探报文对应的ICMP对端不可达报文中的源端口和第二配置信息中的端口相同,继续执行不向Syslog服务器发送Syslog报文的步骤。

下面通过具体实施例详细说明本发明的方法。

如图1所示,端口模块将接收到的报文发送给协议栈模块,协议栈模块将报文中的调试信息发送给调试信息管理模块,调试信息管理模块根据命令行接口模块的第一配置信息选择性的向Syslog客户端模块发送调试信息;Syslog客户端模块根据命令行接口模块的第二配置信息(例如,IP地址和端口)将调试信息组织成Syslog报文发送给协议栈模块,协议栈模块将Syslog报文封装成用户数据包协议(UDP,User Datagram Protocol)报文发送给端口模块;端口模块将UDP报文发送给Syslog服务器所在的设备;

或者,当网络设备出现故障时,告警管理模块向Syslog客户端模块发送告警日志,Syslog客户端模块根据命令行接口模块的第一配置信息将告警日志组织成Syslog报文发送给协议栈模块,协议栈模块将Syslog报文封装成UDP报文发送给端口模块;端口模块将UDP报文发送给Syslog服务器所在的设备。

端口模块将UDP报文发送给Syslog服务器所在的设备后,如果Syslog服务器所在的设备查找不到与UDP报文中的IP地址和端口相匹配的Syslog服务器,则Syslog服务器所在的设备向网络设备发送ICMP对端不可达报文,网络设备的端口模块接收到ICMP对端不可达报文后,将ICMP对端不可达报文发送给协议栈模块,协议栈模块将ICMP对端不可达报文中的调试信息发送给调试信息管理模块,调试信息管理模块根据命令接口模块的第一配置信息选择性的向Syslog客户端模块发送调试信息,当Syslog客户端模块判断出调试信息中的源IP地址和第二配置信息中的IP地址相同,且调试信息中的源端口和第二配置信息中的端口相同时,不将调试信息组织成Syslog报文发送给协议栈模块。

其中,当Syslog客户端模块判断出调试信息中的源IP地址和第二配置信息中的IP地址不相同,且调试信息中的源端口和第二配置信息中的端口不 相同时,将调试信息组织成Syslog报文发送给协议栈模块,协议栈模块将Syslog报文封装成UDP报文发送给端口模块,端口模块将UDP报文发送给Syslog服务器所在的设备。

之后,Syslog客户端模块每隔预设时间向协议栈模块发送试探报文,协议栈模块将试探报文封装成UDP报文发送给端口模块,端口模块将UDP报文发送给Syslog服务器所在的设备。

当端口模块未接收到试探报文对应的ICMP对端不可达报文,或Syslog客户端模块判断出试探报文对应的ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址不相同,或判断出试探报文对应的ICMP对端不可达报文中的源端口和第二配置信息中的端口不相同时,向Syslog服务器所在的设备发送Syslog报文。

当端口模块接收到试探报文对应的ICMP对端不可达报文,且Syslog客户端模块判断出试探报文对应的ICMP对端不可达报文中的源IP地址和第二配置信息中的IP地址相同,且判断出试探报文对应的ICMP对端不可达报文中的源端口和第二配置信息中的端口相同时,Syslog客户端模块继续执行不向Syslog服务器发送所述Syslog报文的步骤。

需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1