CN112800006B - 用于网络设备的日志存储方法及装置 - Google Patents
用于网络设备的日志存储方法及装置 Download PDFInfo
- Publication number
- CN112800006B CN112800006B CN202110109244.3A CN202110109244A CN112800006B CN 112800006 B CN112800006 B CN 112800006B CN 202110109244 A CN202110109244 A CN 202110109244A CN 112800006 B CN112800006 B CN 112800006B
- Authority
- CN
- China
- Prior art keywords
- field
- log
- index file
- file
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种用于网络设备的日志存储方法、装置、电子设备及计算机可读介质。该方法包括:获取网络设备产生的日志;计算得到所述日志中字段的散列值;将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;在匹配成功时,将所述字段按照预第一规则写入日志文件中;在匹配不成功时,将所述字段按照预第二规则写入日志文件中。本公开涉及的用于网络设备的日志存储方法、装置、电子设备及计算机可读介质,能够在日志存储信息完整有效的情况下,极大的降低网络设备上存储空间的占用量。
Description
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种用于网络设备的日志存储方法、装置、电子设备及计算机可读介质。
背景技术
在一般情况下,网络设备需要存储一些日志。这些日志可以帮助用户诊断网络问题。一条常见的日志格式为:|时间|字段1|字段2|字段3|...|。其中,字段中可能为IP、MAC、日志内容等具有实际意义的字符串或数字。在网络设备中,一条上述格式的日志可能以文件或者数据库的形式存储到永久性存储器。但是,由于成本限制,一些网络设备的永久性存储器容量比较小,常见的容量有8MB、16MB、32MB等大小。因为网络设备固件也要占用一部分空间,所以实际上留给日志存储的空间更加紧张。
现有的技术方案主要通过写入文件或者数据库来实现日志的存储。从逻辑上来说,每条日志依次排列形成如下结构:“第一条日志|第二条日志|……”,当需要查看日志的时候,读出每条日志即可。由于实际的网络环境中会产生大量的日志,所以网络设备只能存储一定量的日志条数。当超过最大可存储的日志条数时,***会删除时间最早的一些日志,腾出空间用于存储最新产生的日志。现有技术中的这种方式,受存储空间限制,能够存储的日志数量很少,也无法进行长时间的日志回溯。因此,需要一种新的用于网络设备的日志存储方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种用于网络设备的日志存储方法、装置、电子设备及计算机可读介质,能够在日志存储信息完整有效的情况下,极大的降低网络设备上存储空间的占用量。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提出一种用于网络设备的日志存储方法,该方法包括:获取网络设备产生的日志;计算得到所述日志中字段的散列值;将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;在匹配成功时,将所述字段按照预第一规则写入日志文件中;在匹配不成功时,将所述字段按照预第二规则写入日志文件中。
在本公开的一种示例性实施例中,计算得到所述日志中字段的散列值,包括:基于第一安全散列算法计算得到所述日志中字段的散列值。
在本公开的一种示例性实施例中,将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配之前,还包括:根据历史日志的字段的散列值生成所述索引文件。
在本公开的一种示例性实施例中,将所述字段按照预第一规则写入日志文件中,包括:获取匹配成功的所述索引文件;获取字段编号;将所述字段和所述字段编号存储在所述日志文件中。
在本公开的一种示例性实施例中,获取匹配成功的所述索引文件,包括:打开所述索引文件;解压缩所述索引文件;按照分隔符分割所述索引文件中的文件内容。
在本公开的一种示例性实施例中,获取字段编号,包括:在所述字段和所述索引文件中的已有字段匹配成功时,提取所述字段编号;在所述字段和所述索引文件中的已有字段未匹配成功时,生成文件内容和所述字段编号。
在本公开的一种示例性实施例中,还包括:在所述字段和所述索引文件中的已有字段未匹配成功时,将所述字段中的内容和分隔符、所述字段编号压缩并更新到所述索引文件中。
在本公开的一种示例性实施例中,生成文件内容和所述字段编号,包括:提取当前最大字段编号;将所述最大字段编号的下一个序号作为所述字段编号。
在本公开的一种示例性实施例中,将所述字段按照预第二规则写入日志文件中,包括:创建索引文件;将所述字段的散列值,初始字段编号写入所述索引文件;将所述字段的散列值和所述初始字段编号存储在所述日志文件中。
在本公开的一种示例性实施例中,还包括:提取所述日志文件;根据字段的散列值自称索引文件路径;基于所述索引文件路径获取索引文件;基于所述索引文件获取所述字段值并进行显示。
根据本公开的一方面,提出一种用于网络设备的日志存储装置,该装置包括:日志模块,用于获取网络设备产生的日志;散列值模块,用于计算得到所述日志中字段的散列值;匹配模块,用于将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;第一规则模块,用于在匹配成功时,将所述字段按照预第一规则写入日志文件中;第二规则模块,用于在匹配不成功时,将所述字段按照预第二规则写入日志文件中。
根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本公开的用于网络设备的日志存储方法、装置、电子设备及计算机可读介质,获取网络设备产生的日志;计算得到所述日志中字段的散列值;将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;在匹配成功时,将所述字段按照预第一规则写入日志文件中;在匹配不成功时,将所述字段按照预第二规则写入日志文件中的方式,能够在日志存储信息完整有效的情况下,极大的降低网络设备上存储空间的占用量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种用于网络设备的日志存储方法及装置的***框图。
图2是根据一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。
图3是根据另一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。
图4是根据另一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。
图5是根据另一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。
图6是根据一示例性实施例示出的一种用于网络设备的日志存储装置的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
图8是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
本公开涉及的技术缩略语解释如下:
SHA-1:可称为第一安全散列算法或安全散列算法-1,是一种密码散列函数,美国国家***设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
Linux:是一套***和自由传播的类Unix操作***,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作***。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作***。
zlib;zlib是提供数据压缩用的函式库。
本申请的发明人在仔细分析网络设备日常产生的日志之后,发现:某段时间内,设备产生了很多字段重复的日志。比如,“2020-2-11 08:00|1.2.3.4|接入网络”,“2020-2-1108:01|1.2.3.4|断开网络”,“2020-2-11 08:02|1.2.3.4|接入网络”,“2020-2-11 08:03|1.2.3.4|断开网络”。显然,这样4条日志中的IP字段都是重复的。然而现有的技术方案会记录4条日志,包括4条相同的IP,2条相同的“接入网络”,2条相同的“断开网络”。因此,网络设备产生的日志可能存在重复字段,占用空间,显得不够节约。
有鉴于上述分析和现有技术中的技术瓶颈,本公开提出一种用于网络设备的日志存储方法、装置,能够解决多条日志中存储重复字段的问题。
图1是根据一示例性实施例示出的一种用于网络设备的日志存储方法、装置的***框图。
如图1所示,***架构10可以包括终端设备101、102、103,网络104和网络设备105。网络104用以在终端设备101、102、103和网络设备105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与网络设备105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
网络设备105可对终端设备101、102、103的网络数据进行监控,并生成日志信息。网络设备105可例如获取日志;网络设备105可例如计算得到所述日志中字段的散列值;网络设备105可例如将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;网络设备105可例如在匹配成功时,将所述字段按照预第一规则写入日志文件中;网络设备105可例如在匹配不成功时,将所述字段按照预第二规则写入日志文件中。
需要说明的是,本公开实施例所提供的用于网络设备的日志存储方法可以由网络设备105执行,相应地,用于网络设备的日志存储装置可以设置于网络设备105中。
图2是根据一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。用于网络设备的日志存储方法20至少包括步骤S202至S210。
如图2所示,在S202中,获取网络设备产生的日志。网络设备及部件是连接到网络中的物理实体。网络设备可包括:集线器、交换机、网桥、路由器、网关、网络接口卡(NIC)、无线接入点(WAP)、打印机和调制解调器、光纤收发器、光缆等。日志***是网络设备中一个非常重要的功能组成部分。可通过查看交换机、路由器和其他网络设备的日志来迅速了解和诊断问题。
在S204中,计算得到所述日志中字段的散列值。包括:基于第一安全散列算法计算得到所述日志中字段的散列值。第一安全散列算法可为SHA-1。计算后得到散列值为40个十六进制数。
在S206中,将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配。
其中,将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配之前,还包括:根据历史日志的字段的散列值生成所述索引文件。
在S208中,在匹配成功时,将所述字段按照预第一规则写入日志文件中。可例如,获取匹配成功的所述索引文件;获取字段编号;将所述字段和所述字段编号存储在所述日志文件中。
具体内容将在图3对应的实施例中进行描述。
在S210中,在匹配不成功时,将所述字段按照预第二规则写入日志文件中。可例如,创建索引文件;将所述字段的散列值,初始字段编号写入所述索引文件;将所述字段的散列值和所述初始字段编号存储在所述日志文件中。
具体内容将在图4对应的实施例中进行描述。
根据本公开的用于网络设备的日志存储方法,获取网络设备产生的日志;计算得到所述日志中字段的散列值;将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;在匹配成功时,将所述字段按照预第一规则写入日志文件中;在匹配不成功时,将所述字段按照预第二规则写入日志文件中的方式,能够在日志存储信息完整有效的情况下,极大的降低网络设备上存储空间的占用量。
在本公开的用于网络设备的日志存储方法中,日志文件中存储的字段为字段值的“SHA-1值-id”;通过额外的索引文件来保存字段值;字段按照“字段1+分隔符+字段2”的形式拼接、压缩后存储到索引文件;字段SHA-1值的前面2个十六进制作为目录名;字段SHA-1值的剩余38个十六进制作为文件名;目录名+文件名组成索引文件路径;通过以上的设置方式进行存储的日志,能够极大的节约存储空间,
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
在一个实施例中,读取通过本公开的方式存储的日志的步骤可包括:提取所述日志文件;根据字段的散列值自称索引文件路径;基于所述索引文件路径获取索引文件;基于所述索引文件获取所述字段值并进行显示。
在本公开中,id的含义是索引文件中存储字段的编号。因为SHA-1是一种哈希散列函数,而哈希函数存在小概率的“冲突”可能性。换句话说,存在SHA-1(字段1)=SHA-2(字段2)的可能性。那么字段1和字段2就可能会散列到同一个索引文件。针对这种情况,在读取日志文件时,可通过以下方法读取以避免哈希冲突的问题。
1)日志文件中记录的字段为“SHA1(字段)值-id”,通过id指明索引文件中字段的编号。
2)将多个字段按照“字段1、分隔符、字段2、分隔符、字段3、……”这样的格式拼接。
3)然后将拼接好的多个字段使用zlib进行压缩,最后存入索引文件。
4)id就是字段拼接后所在的编号,比如字段1的id是1,字段2的id是2,以此类推。
后续查看网络设备的日志时,打开日志文件读取日志的字段。由于字段之前填写的是SHA-1值-id,首先根据SHA-1值,提取前2个十六进制和剩下的38个十六进制,组成索引文件路径。然后在文件***中,查找该索引文件。找到索引文件后,打开索引文件,使用zlib解压索引文件内容。将解压后的字段内容按照分隔符提取,再根据id值获取对应的字段值。最后将字段值显示。
图3是根据另一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。图3所示的流程30是对图2所示的流程中S208“将所述字段按照预第一规则写入日志文件中”的详细描述。
如图3所示,在S302中,获取匹配成功的所述索引文件。可例如,打开所述索引文件;解压缩所述索引文件;按照分隔符分割所述索引文件中的文件内容。
在S304中,获取字段编号。可例如,在所述字段和所述索引文件中的已有字段匹配成功时,提取所述字段编号;在所述字段和所述索引文件中的已有字段未匹配成功时,生成文件内容和所述字段编号。
其中,生成文件内容和所述字段编号,包括:提取当前最大字段编号;将所述最大字段编号的下一个序号作为所述字段编号。
在一个实施例中,还包括,在所述字段和所述索引文件中的已有字段未匹配成功时,将所述字段中的内容和分隔符、所述字段编号压缩并更新到所述索引文件中。
在S306中,将所述字段和所述字段编号存储在所述日志文件中。如果该字段值已经在索引文件中找到(同时得到id),那么将字段的SHA-1值-id写入日志文件中(假设日志文件保存在/tmp/log/2020-2-10.log中,此处的文件路径以Linux操作***为例)。
图4是根据另一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。图4所示的流程40是对图2所示的流程中S210“将所述字段按照预第二规则写入日志文件中”的详细描述。
如图4所示,在S402中,创建索引文件。如果字段值没有在索引文件中找到同样的匹配信息,则创建索引文件。索引文件的文件名称可为:”/tmp/index/6d/da9b434e3d40bd18ee92181a0652cbd8f56fba”。
在S404中,将所述字段的散列值,初始字段编号写入所述索引文件。
在S406中,将所述字段的散列值和所述初始字段编号存储在所述日志文件中。此处的文件路径以Linux操作***为例,可将字段的“SHA-1值-1”写入日志文件/tmp/log/2020-2-10.log中。
图5是根据另一示例性实施例示出的一种用于网络设备的日志存储方法的流程图。图5所示的流程50是本申请全部处理过程的详细描述。
如图5所示,在S501中,网络设备产生日志。
在S502中,计算日志字段的SHA-1值。首先计算字段的SHA-1值,即40个十六进制数,如果字段值为“1.2.3.4”,那么SHA-1(1.2.3.4)=“6dda9b434e3d40bd18ee92181a0652cbd8f56fba“。
在S503中,SHA-1值对应的索引文件是否存在。
在S504中,打开并解压缩索引文件;按照分隔符分割文件内容。
在S505中,查找字段是否存在。
在S506中,id=查找到的编号。
在S507中,创建索引文件。
在S508中,压缩字段值,id=1,写入索引文件。
在S509中,id=当前最大编号+1。
在S510中,生成新文件。
在S511中,将字段SHA-1值和id写入日志文件。如果该字段值已经在索引文件中找到(同时得到id),那么将字段的SHA-1值-id写入日志文件中。如果字段值没有在索引文件中找到,则将字段的“SHA-1值-1”写入日志文件中。同时,在设备的文件***中创建一个索引文件。如:”/tmp/index/6d/da9b434e3d40bd18ee92181a0652cbd8f56fba”。值得一提的是,这里目录名6d是SHA-1(1.2.3.4)的最开始两个十六进制,而文件名da9b434e3d40bd18ee92181a0652cbd8f56fba是SHA-1(1.2.3.4)剩下的38个十六进制。最后,使用zlib工具压缩字段值1.2.3.4后,存入da9b434e3d40bd18ee92181a0652cbd8f56fba索引文件中。
原本多条日志重复存储字段,在本公开的方法中,只保留一份字段值,日志中仅记录“SHA-1值-id”。如果字段的长度很长(比如100多个字符),那么采用本专利的方法可以有效降低存储空间占用。另外,采用了zlib压缩字段值,进一步减少空间占用。
索引文件示例:
文件路径:
/tmp/index/6d/da9b434e3d40bd18ee92181a0652cbd8f56fba
文件内容:
+++++++++++
字段值(id=1)
+++++++++++
文件路径:
/tmp/index/eb/3cf4c0f840058d986d19a9fa2a9ed48589c81e
文件内容:
++++++++++++++++++++++++++
字段值(id=1)分隔符字段值(id=2)
++++++++++++++++++++++++++
日志文件示例:
文件路径:/tmp/log/2020-2-10.log
文件内容:
+++++++++++++++++++++++++++++++++++++++++++++
|时间|6dda9b434e3d40bd18ee92181a0652cbd8f56fba-1|
+++++++++++++++++++++++++++++++++++++++++++++
|时间|eb3cf4c0f840058d986d19a9fa2a9ed48589c81e-1|
+++++++++++++++++++++++++++++++++++++++++++++
|时间|eb3cf4c0f840058d986d19a9fa2a9ed48589c81e-2|
+++++++++++++++++++++++++++++++++++++++++++++
由上述的文件实例可知,日志文件存储的是SHA-1值-id。同时,索引文件单独存储压缩后的字段值
值得一提的是,还可以通过新建多张数据库表,采用表1的字段引用表2,表3的主键来实现。比如表1为“id主键|引用表2主键|引用表3主键”;表2为“id主键|字段1”;表3“id主键|字段1”。即日志存储为表1为“1|2|3”,表2为“2|1.2.3.4”,表3为“3|接入网络”。表2和表3相当于是索引文件的功能。但是该方案要求网络设备支持数据库,而小容量的网络设备性能受限,不一定能支持数据库。而文件***一般都是支持的。所以该替代方案存在一定局限性。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图6是根据另一示例性实施例示出的一种用于网络设备的日志存储装置的框图。如图6所示,用于网络设备的日志存储装置60包括:日志模块602,散列值模块604,匹配模块606,第一规则模块608,第二规则模块610。
日志模块602用于获取网络设备产生的日志;
散列值模块604用于计算得到所述日志中字段的散列值;
匹配模块606用于将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;
第一规则模块608用于在匹配成功时,将所述字段按照预第一规则写入日志文件中;
第二规则模块610用于在匹配不成功时,将所述字段按照预第二规则写入日志文件中。
根据本公开的用于网络设备的日志存储装置,获取网络设备产生的日志;计算得到所述日志中字段的散列值;将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;在匹配成功时,将所述字段按照预第一规则写入日志文件中;在匹配不成功时,将所述字段按照预第二规则写入日志文件中的方式,能够在日志存储信息完整有效的情况下,极大的降低网络设备上存储空间的占用量。
图7是根据一示例性实施例示出的一种电子设备的框图。
下面参照图7来描述根据本公开的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同***组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图2,图3,图4,图5中所示的步骤。
所述存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
所述存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备700’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备700交互的设备通信,和/或该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:获取网络设备产生的日志;计算得到所述日志中字段的散列值;将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;在匹配成功时,将所述字段按照预第一规则写入日志文件中;在匹配不成功时,将所述字段按照预第二规则写入日志文件中。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (7)
1.一种用于网络设备的日志存储方法,其特征在于,包括:
获取网络设备产生的日志;
计算得到所述日志中字段的散列值;
将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;
在匹配成功时,获取匹配成功的所述索引文件, 在字段和所述索引文件中的已有字段匹配成功时,提取字段编号,在所述字段和所述索引文件中的已有字段未匹配成功时,生成文件内容和所述字段编号,以及将所述字段和所述字段编号存储在日志文件中,以及在所述字段和所述索引文件中的已有字段未匹配成功时,将所述字段中的内容和分隔符、所述字段编号压缩并更新到所述索引文件中;
在匹配不成功时,创建索引文件,将所述字段的散列值,初始字段编号写入所述索引文件,以及将所述字段的散列值和所述初始字段编号存储在所述日志文件中。
2.如权利要求1所述的方法,其特征在于,计算得到所述日志中字段的散列值,包括:
基于第一安全散列算法计算得到所述日志中字段的散列值。
3.如权利要求1所述的方法,其特征在于,将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配之前,还包括:
根据历史日志的字段的散列值生成所述索引文件。
4.如权利要求1所述的方法,其特征在于,获取匹配成功的所述索引文件,包括:
打开所述索引文件;
解压缩所述索引文件;
按照分隔符分割所述索引文件中的文件内容。
5.如权利要求1所述的方法,其特征在于,生成文件内容和所述字段编号,包括:
提取当前最大字段编号;
将所述最大字段编号的下一个序号作为所述字段编号。
6.如权利要求1所述的方法,其特征在于,还包括:
提取所述日志文件;
根据字段的散列值制成索引文件路径;
基于所述索引文件路径获取索引文件;
基于所述索引文件获取所述字段值并进行显示。
7.一种用于网络设备的日志存储装置,其特征在于,包括:
日志模块,用于获取网络设备产生的日志;
散列值模块,用于计算得到所述日志中字段的散列值;
匹配模块,用于将所述散列值和所述网络设备中已有的索引文件的文件名进行匹配;
第一规则模块,用于在匹配成功时,获取匹配成功的所述索引文件, 在字段和所述索引文件中的已有字段匹配成功时,提取字段编号,在所述字段和所述索引文件中的已有字段未匹配成功时,生成文件内容和所述字段编号,以及将所述字段和所述字段编号存储在日志文件中,以及在所述字段和所述索引文件中的已有字段未匹配成功时,将所述字段中的内容和分隔符、所述字段编号压缩并更新到所述索引文件中;
第二规则模块,用于在匹配不成功时,创建索引文件,将所述字段的散列值,初始字段编号写入所述索引文件,以及将所述字段的散列值和所述初始字段编号存储在所述日志文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110109244.3A CN112800006B (zh) | 2021-01-27 | 2021-01-27 | 用于网络设备的日志存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110109244.3A CN112800006B (zh) | 2021-01-27 | 2021-01-27 | 用于网络设备的日志存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112800006A CN112800006A (zh) | 2021-05-14 |
CN112800006B true CN112800006B (zh) | 2023-05-26 |
Family
ID=75812057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110109244.3A Active CN112800006B (zh) | 2021-01-27 | 2021-01-27 | 用于网络设备的日志存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112800006B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535654B (zh) * | 2021-06-11 | 2023-10-31 | 安徽安恒数智信息技术有限公司 | 日志处理方法、***、电子装置和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及*** |
CN107515901A (zh) * | 2017-07-24 | 2017-12-26 | 中国科学院信息工程研究所 | 一种链式日志存储结构及其哈希索引结构、数据操作方法及服务器、介质 |
CN109857714A (zh) * | 2018-12-24 | 2019-06-07 | 浪潮电子信息产业股份有限公司 | 日志获取方法、装置、电子设备及计算机可读存储介质 |
CN109885549A (zh) * | 2019-03-04 | 2019-06-14 | 安克创新科技股份有限公司 | 一种日志收集方法、装置、***及计算机存储介质 |
CN111008182A (zh) * | 2019-11-07 | 2020-04-14 | 中国电信集团工会上海市委员会 | 一种可变字段日志型数据的查询方法及*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7325002B2 (en) * | 2003-04-04 | 2008-01-29 | Juniper Networks, Inc. | Detection of network security breaches based on analysis of network record logs |
US8718978B2 (en) * | 2011-02-28 | 2014-05-06 | Apple Inc. | Performance logging framework |
US9031997B2 (en) * | 2011-10-25 | 2015-05-12 | International Business Machines Corporation | Log file compression |
US20180157700A1 (en) * | 2016-12-06 | 2018-06-07 | International Business Machines Corporation | Storing and verifying event logs in a blockchain |
CN107688624B (zh) * | 2017-08-18 | 2020-12-29 | 杭州迪普科技股份有限公司 | 一种日志索引构建方法及装置 |
CN110209642A (zh) * | 2018-02-05 | 2019-09-06 | 北京智明星通科技股份有限公司 | 信息处理的方法、装置、服务器及计算机可读介质 |
US11144506B2 (en) * | 2018-10-29 | 2021-10-12 | EMC IP Holding Company LLC | Compression of log data using field types |
CN109684290B (zh) * | 2018-12-20 | 2021-08-17 | 东软集团股份有限公司 | 日志存储方法、装置、设备及计算机可读存储介质 |
CN110569214B (zh) * | 2019-08-02 | 2023-07-28 | 杭州云纪网络科技有限公司 | 用于日志文件的索引构建方法、装置及电子设备 |
-
2021
- 2021-01-27 CN CN202110109244.3A patent/CN112800006B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及*** |
CN107515901A (zh) * | 2017-07-24 | 2017-12-26 | 中国科学院信息工程研究所 | 一种链式日志存储结构及其哈希索引结构、数据操作方法及服务器、介质 |
CN109857714A (zh) * | 2018-12-24 | 2019-06-07 | 浪潮电子信息产业股份有限公司 | 日志获取方法、装置、电子设备及计算机可读存储介质 |
CN109885549A (zh) * | 2019-03-04 | 2019-06-14 | 安克创新科技股份有限公司 | 一种日志收集方法、装置、***及计算机存储介质 |
CN111008182A (zh) * | 2019-11-07 | 2020-04-14 | 中国电信集团工会上海市委员会 | 一种可变字段日志型数据的查询方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN112800006A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146639B1 (en) | Recovery of virtual machines from a protection tier | |
CN107506256B (zh) | 一种崩溃数据监控的方法和装置 | |
CN110858172A (zh) | 一种自动化测试代码生成方法和装置 | |
CN110618999A (zh) | 数据的查询方法及装置、计算机存储介质、电子设备 | |
CN112800006B (zh) | 用于网络设备的日志存储方法及装置 | |
CN110674084A (zh) | 用于数据保护的方法、设备和计算机可读存储介质 | |
WO2023092580A1 (zh) | 页面显示方法、装置、存储介质及电子设备 | |
CN109325002B (zh) | 文本文件处理方法、装置、***、电子设备、存储介质 | |
CN111338834A (zh) | 数据存储方法和装置 | |
CN111046010A (zh) | 日志储存方法、装置、***、电子设备和计算机可读介质 | |
CN113268453A (zh) | 日志信息压缩存储方法及装置 | |
CN112436943B (zh) | 基于大数据的请求去重方法、装置、设备及存储介质 | |
CN111104259B (zh) | 一种数据库恢复方法、装置及存储介质 | |
CN110750388B (zh) | 一种备份解析方法、装置、设备和介质 | |
WO2021012554A1 (zh) | 区块链中数据字段的更新方法、装置、介质、电子设备 | |
WO2023169215A1 (zh) | 页面显示方法、装置、存储介质及电子设备 | |
CN116028917A (zh) | 权限检测方法及装置、存储介质及电子设备 | |
CN114741158A (zh) | 页面切换方法、装置、设备以及存储介质 | |
CN113722007A (zh) | Vpn分支设备的配置方法、装置及*** | |
CN111988405A (zh) | 负载均衡装置的报文重写方法及负载均衡装置 | |
CN111723153A (zh) | 一种数据同步处理方法、装置、设备及存储介质 | |
CN112000491A (zh) | 一种应用程序接口调用方法、装置、设备和存储介质 | |
CN113094332B (zh) | 一种文件管理方法和装置 | |
CN113900895B (zh) | 信息处理方法、信息处理装置、存储介质与电子设备 | |
CN112732471B (zh) | 接口返回数据的纠错方法和纠错装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |