一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于缓存的网络设备syslog信息的规则匹配方法与流程

2022-03-04 22:08:32 来源:中国专利 TAG:


1.本发明涉及对网络设备syslog信息进行规则匹配的领域,尤其是基于缓存的网络设备syslog信息的规则匹配方法。


背景技术:

2.网络设备指构成电信运营商网络的物理实体,主要包括交换机、宽带远程接入服务器以及路由器等。现代电信运营商网络由数以千计的网络设备组成。
3.现代电信运营商网络的平稳和高效运行依赖于每一台网络设备的正常运行。这就要求当网络设备发生故障时,网管软件能够在最短时间内生成告警,便于网络运维人员进行对网络设备故障尽早发现,尽早处理。
4.当前主流网络设备会自动将设备运行日志逐条通过syslog(系统日志)协议实时发送给网管syslog采集探针,如图1所示。
5.每条设备运行日志是类似如下的文本信息:
[0006][0007][0008]
网管syslog采集探针收集上述文本信息,并根据运营商网络运维人员设置的syslog规则集,将上述syslog信息分类为普通系统日志和告警信息。对于告警信息,还需要将其进一步划分为不同的种类和不同的级别等。
[0009]
网管syslog采集探针的核心工作之一就是对收到的每一条syslog信息,从syslog规则集中寻找适用于该syslog信息内容的syslog规则,并执行规则中定义的相应操作。通常的做法是遍历syslog规则集,将syslog信息与各个syslog规则进行匹配测试,直到成功
匹配某个规则,再执行该规则中定义的相应操作。
[0010]
通常syslog规则集中有成百上千条规则,所以上述的规则匹配测试是网管syslog采集探针程序中比较耗时的程序,消耗了大量的cpu计算资源,需要进行专门的优化设计,以实现对设备运行日志高效处理,避免积压。


技术实现要素:

[0011]
为克服重复执行耗时的syslog规则匹配测试的问题,本发明提供基于缓存的网络设备syslog信息的规则匹配方法,通过建立syslog模式与syslog规则集的对应关系,精确限定需进行匹配测试的syslog规则集,从而实现高效的syslog规则匹配。
[0012]
为实现上述目的,本发明采用下述技术方案:
[0013]
在本发明一实施例中,提出了基于缓存的网络设备syslog信息的规则匹配方法,该方法包括:
[0014]
步骤一,对syslog信息,获取其syslog模式,记为p;
[0015]
步骤二,在网管系统缓存中,查询syslog模式p对应的syslog规则集,记为{rule}
p

[0016]
步骤三,遍历{rule}
p
中的syslog规则,直到成功匹配;若在{rule}
p
中没有成功匹配的syslog规则,则将该syslog信息与全部syslog规则集{rule}
all
中的syslog规则进行匹配测试,并将成功匹配的syslog规则添加到syslog模式p对应的syslog规则集{rule}
p
中。进一步地,步骤一中syslog模式的获取方法包括:
[0017]
将syslog信息记为s并复制一份,记为s
copy
,通过正则表达式替换的方法,删除s
copy
中的阿拉伯数字;
[0018]
利用sha-1将s
copy
转换为消息摘要,记为s
digest

[0019]
将s
digest
作为该条syslog信息对应的syslog模式p。
[0020]
更进一步地,syslog信息s用于后续的syslog规则匹配测试,s
copy
用于生成syslog模式p。
[0021]
更进一步地,消息摘要的长度固定为20字节,呈现形式为40个16进制数,记为s
digest

[0022]
进一步地,步骤二中网管系统缓存采用内存数据库来实现。
[0023]
更进一步地,内存数据库中存储syslog模式p和syslog规则集{rule}
p
二者之间的对应关系。
[0024]
进一步地,步骤二中syslog模式p对应的syslog规则集的查询方法包括:
[0025]
根据syslog模式p在内存数据库中查询在是否存在对应的syslog规则集{rule}
p

[0026]
若存在对应的{rule}
p
,则将syslog信息s与{rule}
p
中的syslog规则进行匹配;
[0027]
若不存在对应的{rule}
p
或者{rule}
p
中不存在匹配的syslog规则,则执行“与全部syslog规则集进行匹配测试”。
[0028]
进一步地,对某个syslog模式p的第一个syslog信息,需要执行“与全部syslog规则集{rule}
all
进行匹配测试”,并将成功匹配的syslog规则写入到内存数据库中,对syslog模式p和syslog规则集{rule}
p
二者的对应关系进行维护,供该syslog模式p后续的syslog信息直接使用。
[0029]
进一步地,对某个syslog信息s与syslog规则集{rule}
p
中的syslog规则进行匹配测试时,可能会找不到匹配的syslog规则,需要执行“与全部syslog规则集{rule}
all
进行匹配测试”,并将成功匹配的syslog规则更新到syslog规则集{rule}
p
中,供后续的syslog信息使用。
[0030]
进一步地,某个syslog信息唯一对应一个syslog模式p,syslog模式p对应的syslog规则集{rule}
p
是网管全部的syslog规则集{rule}
all
的一个子集,包括少数几个syslog规则。
[0031]
进一步地,在网管系统缓存中,以key-value方式保存上述的syslog模式p以及对应的syslog规则集{rule}
p
,其中syslog模式p为key,syslog规则集{rule}
p
为value。
[0032]
有益效果:
[0033]
与传统方法相比,本发明利用syslog信息的相似性,通过对syslog信息进行简单处理,提取其syslog模式,进而建立syslog模式与syslog规则集的对应关系,从而精确限定了syslog规则匹配测试的范围,提升了处理效率。
附图说明
[0034]
图1是当前主流网络设备的运行日志传输示意图;
[0035]
图2是本发明一实施例的数据对应关系示意图;
[0036]
图3是本发明一实施例的基于缓存的网络设备syslog信息的规则匹配方法流程示意图。
具体实施方式
[0037]
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0038]
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
[0039]
根据本发明的实施方式,提出了基于缓存的网络设备syslog信息的规则匹配方法。
[0040]
通常,网管的syslog规则只与syslog信息中的关键字进行匹配测试,基本忽略syslog信息中的数字内容。例如对华为设备的“bfd会话down”syslog规则,匹配测试时只检查syslog信息中是否包含字符串“bfd session changed to down”。对下面这条“bfd会话down”syslog信息,在与网管syslog规则进行匹配测试时,真正起作用的是“bfd session changed to down”。
[0041][0042]
我们发现不同的syslog信息之间存在高度的相似性。以某运营商和某省的syslog数据为例,在今年5月1日~5月7日期间,全部syslog信息的记录数量为12744366条。在对syslog信息进行简单文本替换处理(删掉syslog信息中的全部数字内容,只保留字符内容)后,就会出现大量的重复信息,不重复的syslog记录数量为288254,仅为原有syslog总数的2.26%。
[0043]
这些高度精简且不重复的syslog信息,可以被当做syslog信息模式。以最常见的设备端口down syslog信息为例,示意如下:
[0044]
在上例中,被删掉的数字内容只与时间、设备ip地址、设备型号和设备端口编号等有关。其它的syslog信息也都类似。而通常这些信息并不是网管syslog规则集所关注的内容。
[0045]
通常,网管syslog规则集只与syslog模式中的关键词的组合进行匹配测试。如果记录下网管syslog规则与syslog模式之间的对应关系,基本上只有某个syslog模式的第一条syslog信息才需要与全部的syslog规则集进行匹配测试,对于该syslog模式的后续
syslog信息,只需要查询一下网管系统缓存,就可以获取该syslog模式需要进行匹配测试的syslog规则集,而不再需要对全部syslog规则集遍历一遍,从而大量减少syslog规则的匹配测试数量,从而提升syslog信息处理效率。
[0046]
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
[0047]
图3是本发明一实施例的基于缓存的网络设备syslog信息的规则匹配方法流程示意图。如图3所示,该方法包括:
[0048]
步骤一,对syslog信息,获取其syslog模式,记为p;
[0049]
步骤二,在网管系统缓存中,查询syslog模式p对应的syslog规则集,记为{rule}
p

[0050]
步骤三,遍历{rule}
p
中的syslog规则,直到成功匹配;若在{rule}
p
中没有成功匹配的syslog规则,则将该syslog信息与全部syslog规则集{rule}
all
中的syslog规则进行匹配测试,并将成功匹配的syslog规则添加到syslog模式p对应的syslog规则集{rule}
p
中。
[0051]
图2是本发明一实施例的数据对应关系示意图。如图2所示,某个syslog信息唯一对应一个syslog模式p,而syslog模式p对应的syslog规则集{rule}
p
只是网管全部的syslog规则集{rule}
all
的一个子集,只包括少数几个syslog规则。
[0052]
在网管系统缓存中,以键值对(key-value)方式保存上述的syslog模式p、以及对应的syslog规则集{rule}
p
,其中syslog模式p为key(键),syslog规则集{rule}
p
为value(值)。
[0053]
在本技术方案中,syslog模式的获取方法包括:
[0054]
将syslog信息(记为s)复制一份,记为s
copy
,通过正则表达式替换的方法,删除s
copy
中的阿拉伯数字。s用于后续的syslog规则匹配测试,s
copy
用于生成syslog模式p;
[0055]
考虑到需要缓存的syslog模式p的数据量较大,由于s
copy
是一个长度可变的且较长的文本信息,如果直接以s
copy
作为syslog模式p,会影响查询效率。因此,利用sha-1(安全散列算法1)将s
copy
转换为消息摘要,该消息摘要长度固定为20字节,通常呈现形式为40个16进制数,记为s
digest

[0056]
将s
digest
作为该条syslog信息对应的syslog模式p。
[0057]
在本技术方案中,网管系统缓存采用内存数据库来实现,例如redis(一种开源的内存数据库)。在内存数据库中存储syslog模式p、syslog规则集{rule}
p
二者之间的对应关系。
[0058]
在本技术方案中,syslog模式p对应的syslog规则集的查询方法包括:
[0059]
根据syslog模式p在内存数据库中查询在是否存在对应的syslog规则集{rule}
p

[0060]
若存在对应的{rule}
p
,则将syslog信息s与{rule}
p
中的syslog规则进行匹配;
[0061]
若不存在对应的{rule}
p
或者{rule}
p
中不存在匹配的syslog规则,则执行“与全部syslog规则集进行匹配测试”。
[0062]
在本技术方案中,对某个syslog模式p的第一个syslog信息,需要执行“与全部syslog规则集{rule}
all
进行匹配测试”,并将成功匹配的syslog规则写入到内存数据库中,对syslog模式p和syslog规则集{rule}
p
二者的对应关系进行维护,供该syslog模式p后续的syslog信息直接使用。
[0063]
在本技术方案中,对某个syslog信息s与syslog规则集{rule}
p
中的syslog规则进
行匹配测试时,可能会找不到匹配的syslog规则,需要执行“与全部syslog规则集{rule}
all
进行匹配测试”,并将成功匹配的syslog规则更新到syslog规则集{rule}
p
中,供后续的syslog信息使用。
[0064]
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0065]
为了对上述基于缓存的网络设备syslog信息的规则匹配方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
[0066]
下面举例来更加详细的说明基于缓存的网络设备syslog信息的规则匹配方法,具体如下:
[0067]
计算syslog模式:
[0068]
第一步,将syslog信息(记为s)复制一份,记为s
copy
。通过正则表达式替换的方法,删除s
copy
中的阿拉伯数字。s用于后续的syslog规则匹配测试。s
copy
用于生成syslog模式p。示意如下:
[0069]
[0070][0071]
第二步,考虑到需要缓存的syslog模式p的数据量较大,由于s
copy
是一个长度可变的且较长的文本信息,如果直接以s
copy
作为syslog模式p,会影响查询效率。因此,我们利用sha-1(安全散列算法1)将s
copy
转换为消息摘要,该消息摘要长度固定为20字节,通常呈现形式为40个16进制数,记为s
digest
。示意如下:
[0072]
state.”对应“规则101、规则202”,分别与这2个规则进行匹配即可。
[0080]
若不存在对应的{rule}
p
、或者{rule}
p
中的不存在匹配的syslog规则,则执行“与全部syslog规则集进行匹配测试”。例如syslog信息“may 6 09:02:43::ffff:19.10.10.1 aa-bb-cc-dd-1.eee.ne5000e%%01bfd/4/stachg_todwn(l):cid=0x8 0740448;bfd session changed to down.(slotnumber=16,discriminator=32198,diagnostic=detectdown,applications=pim,processpst=false,bindinterfacename=100ge16/0/0.301,interfacephysicalstate=up,interfaceprotocolstate=up)#015”在缓存中没有对应的规则,则需要执行下一步。
[0081]
与全部syslog规则集进行匹配测试:
[0082]
这一步是比较耗时的,也是本技术方案中想尽量跳过的步骤。
[0083]
基本上对某个syslog模式的第一个syslog信息需要执行此步骤,与全部syslog规则集{rule}
all
进行匹配测试,并将匹配成功的syslog规则写入到内存数据库中,对p、{rule}
p
二者的对应关系进行维护,供该syslog模式p后续的syslog信息直接使用。例如对于syslog信息“may 6 09:02:43::ffff:19.10.10.1 aa-bb-cc-dd-1.eee.ne5000e%%01bfd/4/stachg_todwn(l):cid=0x8 0740448;bfd session changed to down.(slotnumber=16,discriminator=32198,diagnostic=detectdown,applications=pim,processpst=false,bindinterfacename=100ge16/0/0.301,interfacephysicalstate=up,interfaceprotocolstate=up)#015”,将其于syslog规则集“规则1、规则2、......规则n”进行匹配,与“规则303”匹配成功,则按该规则对syslog信息进行处理,并修改缓存信息,示意如下:
[0084][0085]
在特殊情况下,某些syslog规则也会用到syslog信息的某些数字部分。对这种情况,本方案也是支持的。在这种情况下,某个syslog信息s与{rule}
p
中的syslog规则进行匹配测试时,可能会找不到匹配的syslog规则。这时,也会跳转到这一步,与全部syslog规则集进行匹配测试,并将成功匹配的syslog规则更新到{rule}
p
中,供后续的syslog信息使用。
[0086]
本发明提出的基于缓存的网络设备syslog信息的规则匹配方法与传统方法相比,本技术方案利用syslog信息的相似性,通过对syslog信息进行简单处理,提取其syslog模式,进而建立syslog模式与syslog规则集的对应关系,从而精确限定了syslog规则匹配测试的范围,提升了处理效率。
[0087]
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本
发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
[0088]
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献