CN109308247A - 一种日志处理方法、装置、设备及一种网络设备 - Google Patents

一种日志处理方法、装置、设备及一种网络设备 Download PDF

Info

Publication number
CN109308247A
CN109308247A CN201710625028.8A CN201710625028A CN109308247A CN 109308247 A CN109308247 A CN 109308247A CN 201710625028 A CN201710625028 A CN 201710625028A CN 109308247 A CN109308247 A CN 109308247A
Authority
CN
China
Prior art keywords
log
processed
parameter preset
shared drive
preset information
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.)
Granted
Application number
CN201710625028.8A
Other languages
English (en)
Other versions
CN109308247B (zh
Inventor
李拓
刘芳宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN201710625028.8A priority Critical patent/CN109308247B/zh
Publication of CN109308247A publication Critical patent/CN109308247A/zh
Application granted granted Critical
Publication of CN109308247B publication Critical patent/CN109308247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种日志处理方法、装置、设备及一种网络设备,所述方法包括:第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中;第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。本发明能够保证第二进程对共享内存区域中的日志进行处理时,不影响第一进程对数据包的处理和转发,保证了数据转发平面的正常工作。

Description

一种日志处理方法、装置、设备及一种网络设备
技术领域
本发明涉及数据处理领域,具体涉及一种日志处理方法、装置、设备及一种网络设备。
背景技术
网络设备的主要功能是用于处理和转发来自不同端口的数据包,具体的,数据包的处理和转发功能通常由网络设备中的数据转发平面实现。
为了监测网络状态,网络管理员往往会开启数据转发平面的日志功能。也就是说,数据转发平面不仅需要实现数据包的处理和转发功能,同时还需要实现日志功能。
实际应用中,数据转发平面在实现日志功能时,需要通过系统调用对日志进行处理,而系统调用是指用户程序向操作系统内核请求需要更高权限运行的服务,此时CPU由用户态切换到内核态,上下文切换开销巨大,严重影响数据转发平面的性能,从而影响数据转发平面对数据包的处理和转发。
发明内容
鉴于上述问题,本发明提供了一种日志处理方法、装置、设备及一种网络设备,能够在处理日志时,避免影响数据转发平面对数据包的处理和转发。
本发明提供了一种日志处理方法,数据转发平面包括第一进程和第二进程,所述方法包括:
所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中;
所述第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
优选地,所述共享内存区域中存储有预先建立的优先级队列;所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中之前,还包括:
所述第一进程根据待处理日志的预设参数信息,确定所述待处理日志的优先级等级;
相应的,所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中,具体为:
所述第一进程根据所述待处理日志的优先级等级,将所述待处理日志的预设参数信息,写入所述共享内存区域中与所述优先级等级对应的优先级队列。
优选地,所述第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息,包括:
所述第二进程根据优先级的高低顺序,依次轮循所述共享内存区域中的各个优先级队列;
从所述共享内存区域中与所述优先级等级对应的优先级队列中,读取所述待处理日志的预设参数信息。
优选地,所述预设参数信息包括日志属性,其中,各种日志属性具有对应的优先级等级;
所述第一进程根据所述待处理日志的预设参数信息,确定所述待处理日志的优先级等级,包括:
所述第一进程确定所述待处理日志具有的日志属性;
如果所述待处理日志具有一种日志属性,则将所述日志属性对应的优先级等级,确定为所述待处理日志的优先级等级;
如果所述待处理日志具有至少两种日志属性,则利用公式(1)计算所述待处理日志的优先级等级;
其中,P向上取整后作为所述待处理日志的优先级等级,pn为第n种日志属性对应的优先级等级,wn为第n种日志属性的权重值。
优选地,所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中之前,还包括:
所述第一进程利用公式(2)计算共享内存区域的大小,并根据所述共享内存区域的大小创建共享内存区域;
M=(n*l*Slog+n*p*l)*(1+α) (2)
其中,M为共享内存区域的大小,n为所述优先级队列的数量,l为所述优先级队列的长度,Slog为用于存储日志的预设参数信息的数据结构的大小,p为用于存储日志的预设参数信息的数据结构的指针大小,α为冗余因子,且0<α<1。
优选地,所述第一进程和所述第二进程运行于不同的CPU上,或者,所述第一进程和所述第二进程运行于同一CPU上,且所述第一进程的优先级高于所述第二进程。
本发明还提供了一种日志处理装置,所述日志处理装置上运行有第一进程和第二进程,所述第一进程包括写入模块,所述第二进程包括读取模块和添加模块;
所述写入模块,用于将待处理日志的预设参数信息,写入预先建立的共享内存区域中;
所述读取模块,用于从所述共享内存区域中,读取所述待处理日志的预设参数信息;
所述添加模块,用于将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
优选地,所述共享内存区域中存储有预先建立的优先级队列;所述第一进程还包括优先级确定模块;
所述优先级确定模块,用于根据待处理日志的预设参数信息,确定所述待处理日志的优先级等级;
相应的,所述写入模块,具体用于根据所述待处理日志的优先级等级,将所述待处理日志的预设参数信息,写入所述共享内存区域中与所述优先级等级对应的优先级队列。
优选地,所述读取模块包括轮循子模块和读取子模块;
所述轮循子模块,用于根据优先级的高低顺序,依次轮循所述共享内存区域中的各个优先级队列;
所述读取子模块,用于从所述共享内存区域中与所述优先级等级对应的优先级队列中,读取所述待处理日志的预设参数信息。
优选地,所述预设参数信息包括日志属性,其中,各种日志属性具有对应的优先级等级;
所述优先级确定模块,包括:
第一确定子模块,用于确定所述待处理日志具有的日志属性;
第二确定子模块,用于在所述待处理日志具有一种日志属性时,将所述日志属性对应的优先级等级,确定为所述待处理日志的优先级等级;
计算子模块,用于在所述待处理日志具有至少两种日志属性时,利用公式(1)计算所述待处理日志的优先级等级;
其中,P向上取整后作为所述待处理日志的优先级等级,pn为第n种日志属性对应的优先级等级,wn为第n种日志属性的权重值。
优选地,所述第一进程还包括:
内存创建模块,用于利用公式(2)计算共享内存区域的大小,并根据所述共享内存区域的大小创建共享内存区域;
M=(n*l*Slog+n*p*l)*(1+α) (2)
其中,M为共享内存区域的大小,n为所述优先级队列的数量,l为所述优先级队列的长度,Slog为用于存储日志的预设参数信息的数据结构的大小,p为用于存储日志的预设参数信息的数据结构的指针大小,α为冗余因子,且0<α<1。
优选地,所述第一进程和所述第二进程运行于不同的CPU上,或者,所述第一进程和所述第二进程运行于同一CPU上,且所述第一进程的优先级高于所述第二进程。
本发明还提供了一种网络设备,所述网络设备上运行有上述权利要求6-10中任一项所述的日志处理装置。
本发明还提供了一种日志处理设备,所述设备包括存储器和处理器,
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令,执行以下步骤:第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中;第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
本发明提供的日志处理方法中,数据转发平面包括第一进程和第二进程,具体的,第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中;第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。本发明能够保证第二进程对共享内存区域中的日志进行处理时,不影响第一进程对数据包的处理和转发,保证了数据转发平面的正常工作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的一种日志处理方法的流程图;
图2示出了本发明实施例提供的另一种日志处理方法的流程图;
图3示出了本发明实施例提供的一种确定待处理日志的优先级等级的方法流程图;
图4示出了本发明实施例提供的一种日志处理装置的结构示意图;
图5示出了本发明实施例提供的一种日志处理设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
数据转发平面在实现日志功能时,需要通过系统调用对日志进行处理,而系统调用是指用户程序向操作系统内核请求需要更高权限运行的服务,此时CPU由用户态切换到内核态,上下文切换开销巨大,严重影响数据转发平面的性能,从而影响数据转发平面对数据包处理和转发的基本功能。
基于此,本发明提出了一种日志处理方法,将数据转发平面利用两个进程实现,即第一进程和第二进程,其中,第一进程和第二进程具有相互独立的地址空间。具体的,第一进程主要用于实现数据转发平面中对数据包处理和转发的基本功能,当第一进程接收到的数据包触发产生日志时,第一进程将该日志的预设参数信息写入预先建立的共享内存区域中。第二进程用于实现对日志的处理功能,具体的,第二进程从共享内存区域中,读取日志的预设参数信息后,将预设参数信息添加到日志模板中,得到待发送日志,最后将该待发送日志发送至接收端,完成对日志的处理。
由于本发明是利用两个进程的异步操作实现日志处理功能,所以,第二进程在对共享内存区域中的日志进行处理时,并不影响第一进程对数据包的处理和转发,保证了数据转发平面的正常工作。
以下进行实施例具体内容的介绍。
本发明实施例提供了一种日志处理方法,参考图1,为本发明实施例提供的一种日志处理方法的流程图。其中,数据转发平面包括第一进程和第二进程,所述日志处理方法具体包括:
S101:所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中。
进程,是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
本发明实施例中,第一进程在接收到触发产生日志的数据包后,将产生的日志确定为待处理日志,并将该待处理日志的预设参数信息,写入预先建立的共享内存区域中。
具体的,预设参数信息可以包括日志属性、入侵者IP地址、被攻击者IP地址、发生时间等信息。具体的,日志属性可以包括日志类型、日志包含的IP地址攻击等,日志类型可以为攻击类型,例如拒绝服务攻击的攻击类型等,日志包含的IP地址攻击可以为针对某个IP地址的攻击,例如针对IP地址2.2.2.2的攻击。
实际应用中,第一进程预先申请一段内存,用于建立共享内存区域,其中,共享内存区域能够同时被第一进程和第二进程进行访问,用于第一进程和第二进程之间交换待处理日志的预设参数信息。
S102:所述第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
本发明实施例中,第二进程能够对共享内存区域进行访问,从共享内存区域中读取待处理日志的预设参数信息,例如为该待处理日志的日志属性、入侵者IP地址、被攻击者IP地址、发生时间等信息。
为了保证日志的格式规范化,当第二进程读取待处理日志的预设参数信息后,将该预设参数信息中包括的日志属性、入侵者IP地址、被攻击者IP地址、发生时间等信息,分别添加到预设日志模板中,得到待发送日志。最终,第二进程通过系统调用将该待发送日志发送至接收端,完成对日志的处理。
实际应用中,日志的接收端可以为系统管理员的计算机、日志分析计算机等设备。
本发明实施例提供的日志处理方法中,数据转发平面包括第一进程和第二进程,首先,第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中。然后,第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。本发明中的数据转发平面利用两个进程的异步操作实现日志处理功能,使得第二进程在对共享内存区域中的日志进行处理时,不影响第一进程对数据包的处理和转发,保证了数据转发平面的正常工作。
一种实际应用场景中,在系统初始化阶段,数据转发平面的第一进程启动后,由第一进程创建共享内存区域,并将该共享内存区域映射到自身进程空间,以便第一进程能够对共享内存区域进行访问。
另外,第一进程还用于创建第二进程,第二进程作为第一进程的子进程,同时第二进程也将该共享内存区域映射到自身进程空间,以便第二进程也能够对该共享内存区域进行访问。
为了进一步避免第二进程对第一进程的数据包处理和转发造成影响,本发明实施例中的第一进程和第二进程可以具有相互独立的地址空间,彼此之间不能相互访问。
实际应用中,第一进程将待处理日志的预设参数信息,写入该共享内存区域中,第二进程启动一个线程,循环访问该共享内存区域,并从该共享内存区域中读取该待处理日志的预设参数信息,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端,完成日志的处理。
为了保证日志的接收端能够优先处理比较重要的日志,避免重要日志被湮没,本发明实施例提供的日志处理方法,能够根据日志的优先级对日志进行处理。
参考图2,为本发明实施例提供的另一种日志处理方法的流程图,其中,数据转发平面包括第一进程和第二进程,所述日志处理方法具体包括:
S201:第一进程根据待处理日志的预设参数信息,确定所述待处理日志的优先级等级。
本发明实施例中,待处理日志的预设参数信息能够反映该待处理日志的重要性,所以,第一进程可以根据待处理日志的预设参数信息,确定该待处理日志的优先级等级。
具体的,预设参数信息包括日志属性,日志属性可以包括日志类型、日志包含的IP地址攻击等,日志类型可以为攻击类型,例如拒绝服务攻击的攻击类型等,日志包含的IP地址攻击可以为针对某个IP地址的攻击,例如针对IP地址2.2.2.2的攻击。
由于日志属性能够更准确的反映出日志的重要性,所以本发明实施例根据待处理日志具有的日志属性,确定该待处理日志的优先级等级。
实际应用中,可以在网络设备出厂之前,预先完成各种日志属性对应的优先级等级的设置,也可以根据用户对日志的处理需求,预先设置各种日志属性对应的优先级等级。例如,为日志属性:拒绝服务攻击,设置的优先级等级为8,为日志属性:针对IP地址2.2.2.2的攻击,设置的优先级等级为6。另外,值得注意的是,针对IP地址2.2.2.2的拒绝服务攻击相关日志同时具有上述两种日志属性。
具体的,参考图3,为本发明实施例提供的一种确定待处理日志的优先级等级的方法流程图,其中,所述方法包括:
S301:第一进程确定所述待处理日志具有的日志属性,并判断所述待处理日志是否具有至少两种日志属性,如果是,则执行S303,否则执行S302。
S302:如果所述待处理日志具有一种日志属性,则将所述日志属性对应的优先级等级,确定为所述待处理日志的优先级等级。
S303:如果所述待处理日志具有至少两种日志属性,则利用公式(1)计算所述待处理日志的优先级等级;
其中,P向上取整后作为所述待处理日志的优先级等级,pn为第n种日志属性对应的优先级等级,wn为第n种日志属性的权重值。
本发明实施例中,第一进程确定待处理日志仅具有一种日志属性后,直接将该日志属性对应的优先级等级确定为该待处理日志的优先级等级。第一进程确定待处理进程具有至少两种日志属性后,结合各种日志属性对应的优先级等级以及权重值,计算待处理日志的平均优先级等级P,并对P向上取整后作为该待处理日志的优先级等级。
S202:第一进程根据所述待处理日志的优先级等级,将所述待处理日志的预设参数信息,写入所述共享内存区域中与所述优先级等级对应的优先级队列。
本发明实施例中,共享内存区域中存储有预先建立的优先级队列,值得注意的是,优先级队列的数量与日志的优先级等级的数量相同,例如,日志的优先级等级分为高中低三个等级,则共享内存区域中存储有三个优先级队列,分别对应高中低三个等级。实际应用中,第一进程在确定待处理日志的优先级等级后,将待处理日志的预设参数信息写入与该优先级等级对应的优先级队列中。
一种实现方式中,第一进程可以在共享内存区域中申请数据结构,用于存储待处理日志的预设参数信息,并根据该待处理日志的优先级等级,将该数据结构的内存地址的指针写入该优先级等级对应的优先级队列中,后续第二进程可以通过内存地址的指针,直接访问该数据结构中存储的待处理日志的预设参数信息,而无需数据拷贝,减少了数据拷贝次数。
另外,在第一进程将该数据结构的内存地址的指针写入该优先级等级对应的优先级队列之前,首先判断该优先级队列是否已满,如果该优先级队列已满,则说明当前优先级队列中没有足够的资源,用于处理该指针对应的待处理日志,所以,第一进程可以直接丢弃该指针,并释放该指针所指向的数据结构。
另一种处理方式中,如果第一进程确定该优先级队列已满,则可以将该指针写入较低优先级的队列中,以保证该指针对应的待处理日志最终能够被处理。
实际应用中,第一进程创建共享内存区域之前,需要预先确定共享内存区域的大小,并根据确定的共享内存区域的大小,创建共享内存区域,具体的,可以利用公式(2)计算共享内存区域的大小,如下:
M=(n*l*Slog+n*p*l)*(1+α) (2)
其中,M为共享内存区域的大小,n为优先级队列的数量,l为优先级队列的长度,Slog为用于存储日志的预设参数信息的数据结构的大小,p为用于存储日志的预设参数信息的数据结构的指针大小,α为冗余因子,且0<α<1。
n*l*Slog表示共享内存区域中需要存储的日志的预设参数信息的数据结构所占用的空间,n*p*l表示共享内存区域中需要存储的日志的预设参数信息的数据结构的指针所占用的空间。n*l*Slog与n*p*l的和,表示共享内存区域中存入的内容需要占用的总空间。
由于第一进程在申请内存时,不可避免的会产生内存空洞,所以,在创建共享内存区域时,需要增加一定的冗余内存,有利于避免内存分配失败,即为冗余因子α设置的必要。另外,值得注意的是,为了提高数据处理效率,l一般选为2的幂数。
S203:所述第二进程根据优先级的高低顺序,依次轮循所述共享内存区域中的各个优先级队列。
由于共享内存区域中的各个优先级队列具有优先级关系,第二进程根据优先级的高低关系,依次轮循各个优先级队列,从不为空的优先级队列中优先级最高的优先级队列中读取数据。
实际应用中,如果第二进程连续N次轮循确定各个优先级队列均为空时,暂停对优先级队列的轮循,并开始计时,当计时结束后,再次对各个优先级队列进行轮序,依此,能够节约系统资源的开销。
S204:从所述共享内存区域中与所述优先级等级对应的优先级队列中,读取所述待处理日志的预设参数信息。
S205:将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
本发明实施例中,第二进程从与待处理日志的优先级等级对应的优先级队列中,读取预设参数信息后,将该预设参数信息分别添加到预设日志模板的对应位置,得到待发送日志,最终由第二进程将待发送日志发送至接收端,完成日志的处理。
本发明实施例提供的日志处理方法,能够根据日志的重要程度,确定日志的优先级,并根据优先级对日志进行处理,保证日志的接收端能够优先处理比较重要的日志,避免重要日志被湮没。
一种应用场景中,本发明实施例中的第一进程和第二进程运行于不同的CPU上,进而第一进程与第二进程的资源相互独立,彼此不会相互影响,从而保证了第二进程对共享内存区域中的日志进行处理时,不影响第一进程对数据包的处理和转发,保证了数据转发平面的正常工作。
另一种应用场景中,本发明实施例中的第一进程和第二进程还可以运行于同一CPU上,但是第一进程的优先级要高于第二进程,也就是说,通过优先级保证第二进程对共享内存区域中的日志进行处理时,不影响第一进程对数据包的处理和转发,保证了数据转发平面的正常工作。
另外,本发明实施例还提供了一种日志处理装置,参考图4,为本发明实施例提供的一种日志处理装置的结构示意图。
具体的,所述日志处理装置400上运行有第一进程410和第二进程420,所述第一进程410包括写入模块411,所述第二进程420包括读取模块421和添加模块422;
所述写入模块411,用于将待处理日志的预设参数信息,写入预先建立的共享内存区域430中;
所述读取模块421,用于从所述共享内存区域430中,读取所述待处理日志的预设参数信息;
所述添加模块422,用于将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
一种实现方式中,所述共享内存区域中存储有预先建立的优先级队列;
所述第一进程410还包括优先级确定模块;
所述优先级确定模块,用于根据待处理日志的预设参数信息,确定所述待处理日志的优先级等级;
相应的,所述写入模块411,具体用于根据所述待处理日志的优先级等级,将所述待处理日志的预设参数信息,写入所述共享内存区域中与所述优先级等级对应的优先级队列。
所述读取模块421包括轮循子模块和读取子模块;
所述轮循子模块,用于根据优先级的高低顺序,依次轮循所述共享内存区域中的各个优先级队列;
所述读取子模块,用于从所述共享内存区域中与所述优先级等级对应的优先级队列中,读取所述待处理日志的预设参数信息。
具体的,所述预设参数信息包括日志属性,其中,各种日志属性具有对应的优先级等级;
所述优先级确定模块,包括:
第一确定子模块,用于确定所述待处理日志具有的日志属性;
第二确定子模块,用于在所述待处理日志具有一种日志属性时,将所述日志属性对应的优先级等级,确定为所述待处理日志的优先级等级;
计算子模块,用于在所述待处理日志具有至少两种日志属性时,利用公式(1)计算所述待处理日志的优先级等级;
其中,P向上取整后作为所述待处理日志的优先级等级,pn为第n种日志属性对应的优先级等级,wn为第n种日志属性的权重值。
另外,所述第一进程还可以包括:
内存创建模块,用于利用公式(2)计算共享内存区域的大小,并根据所述共享内存区域的大小创建共享内存区域;
M=(n*l*Slog+n*p*l)*(1+α) (2)
其中,M为共享内存区域的大小,n为所述优先级队列的数量,l为所述优先级队列的长度,Slog为用于存储日志的预设参数信息的数据结构的大小,p为用于存储日志的预设参数信息的数据结构的指针大小,α为冗余因子,且0<α<1。
实际应用中,所述第一进程和所述第二进程运行于不同的CPU上,或者,所述第一进程和所述第二进程运行于同一CPU上,且所述第一进程的优先级高于所述第二进程。
另外,本发明实施例还提供了一种网络设备,其中,所述网络设备上运行有上述任一种日志处理装置。
本发明实施例能够保证第二进程对共享内存区域中的日志进行处理时,不影响第一进程对数据包的处理和转发,同时,还能够根据日志的重要程度,确定日志的优先级,并根据优先级对日志进行处理,保证日志的接收端能够优先处理比较重要的日志,避免重要日志被湮没。
相应的,本发明实施例还提供一种日志处理设备,参见图5所示,可以包括:
处理器501、存储器502、输入装置503和输出装置504。日志处理设备中的处理器501的数量可以一个或多个,图5中以一个处理器为例。在本发明的一些实施例中,处理器501、存储器502、输入装置503和输出装置504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行日志处理设备的各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置303可用于接收输入的数字或字符信息,以及产生与电日志处理设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中;
所述第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明实施例所提供的一种日志处理方法、装置、设备及一种网络设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种日志处理方法,其特征在于,数据转发平面包括第一进程和第二进程,所述方法包括:
所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中;
所述第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
2.根据权利要求1所述的日志处理方法,其特征在于,所述共享内存区域中存储有预先建立的优先级队列;所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中之前,还包括:
所述第一进程根据待处理日志的预设参数信息,确定所述待处理日志的优先级等级;
相应的,所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中,具体为:
所述第一进程根据所述待处理日志的优先级等级,将所述待处理日志的预设参数信息,写入所述共享内存区域中与所述优先级等级对应的优先级队列。
3.根据权利要求2所述的日志处理方法,其特征在于,所述第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息,包括:
所述第二进程根据优先级的高低顺序,依次轮循所述共享内存区域中的各个优先级队列;
从所述共享内存区域中与所述优先级等级对应的优先级队列中,读取所述待处理日志的预设参数信息。
4.根据权利要求2所述的日志处理方法,其特征在于,所述预设参数信息包括日志属性,其中,各种日志属性具有对应的优先级等级;
所述第一进程根据所述待处理日志的预设参数信息,确定所述待处理日志的优先级等级,包括:
所述第一进程确定所述待处理日志具有的日志属性;
如果所述待处理日志具有一种日志属性,则将所述日志属性对应的优先级等级,确定为所述待处理日志的优先级等级;
如果所述待处理日志具有至少两种日志属性,则利用公式(1)计算所述待处理日志的优先级等级;
其中,P向上取整后作为所述待处理日志的优先级等级,pn为第n种日志属性对应的优先级等级,w n为第n种日志属性的权重值。
5.根据权利要求2所述的日志处理方法,其特征在于,所述第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中之前,还包括:
所述第一进程利用公式(2)计算共享内存区域的大小,并根据所述共享内存区域的大小创建共享内存区域;
M=(n*l*Slog+n*p*l)*(1+α) (2)
其中,M为共享内存区域的大小,n为所述优先级队列的数量,l为所述优先级队列的长度,Slog为用于存储日志的预设参数信息的数据结构的大小,p为用于存储日志的预设参数信息的数据结构的指针大小,α为冗余因子,且0<α<1。
6.根据权利要求1-5中任一项所述的日志处理方法,其特征在于,所述第一进程和所述第二进程运行于不同的CPU上,或者,所述第一进程和所述第二进程运行于同一CPU上,且所述第一进程的优先级高于所述第二进程。
7.一种日志处理装置,其特征在于,所述日志处理装置上运行有第一进程和第二进程,所述第一进程包括写入模块,所述第二进程包括读取模块和添加模块;
所述写入模块,用于将待处理日志的预设参数信息,写入预先建立的共享内存区域中;
所述读取模块,用于从所述共享内存区域中,读取所述待处理日志的预设参数信息;
所述添加模块,用于将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
8.根据权利要求7所述的日志处理装置,其特征在于,所述共享内存区域中存储有预先建立的优先级队列;所述第一进程还包括优先级确定模块;
所述优先级确定模块,用于根据待处理日志的预设参数信息,确定所述待处理日志的优先级等级;
相应的,所述写入模块,具体用于根据所述待处理日志的优先级等级,将所述待处理日志的预设参数信息,写入所述共享内存区域中与所述优先级等级对应的优先级队列。
9.一种网络设备,其特征在于,所述网络设备上运行有上述权利要求7或8所述的日志处理装置。
10.一种日志处理设备,其特征在于,所述设备包括存储器和处理器,
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令,执行以下步骤:第一进程将待处理日志的预设参数信息,写入预先建立的共享内存区域中;第二进程从所述共享内存区域中,读取所述待处理日志的预设参数信息后,将所述预设参数信息添加到预设日志模板,得到待发送日志,并将所述待发送日志发送至接收端。
CN201710625028.8A 2017-07-27 2017-07-27 一种日志处理方法、装置、设备及一种网络设备 Active CN109308247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710625028.8A CN109308247B (zh) 2017-07-27 2017-07-27 一种日志处理方法、装置、设备及一种网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710625028.8A CN109308247B (zh) 2017-07-27 2017-07-27 一种日志处理方法、装置、设备及一种网络设备

Publications (2)

Publication Number Publication Date
CN109308247A true CN109308247A (zh) 2019-02-05
CN109308247B CN109308247B (zh) 2023-02-03

Family

ID=65202262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710625028.8A Active CN109308247B (zh) 2017-07-27 2017-07-27 一种日志处理方法、装置、设备及一种网络设备

Country Status (1)

Country Link
CN (1) CN109308247B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111199423A (zh) * 2019-12-25 2020-05-26 平安证券股份有限公司 用户行为轨迹生成方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101989916A (zh) * 2009-08-04 2011-03-23 西安交大捷普网络科技有限公司 一种分离式多级缓冲网络内容过滤系统及方法
CN102891873A (zh) * 2011-07-21 2013-01-23 腾讯科技(深圳)有限公司 一种存储日志数据的方法及日志数据存储系统
US8407335B1 (en) * 2008-06-18 2013-03-26 Alert Logic, Inc. Log message archiving and processing using a remote internet infrastructure
CN106708578A (zh) * 2016-12-23 2017-05-24 北京五八信息技术有限公司 基于双线程的日志输出方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407335B1 (en) * 2008-06-18 2013-03-26 Alert Logic, Inc. Log message archiving and processing using a remote internet infrastructure
CN101989916A (zh) * 2009-08-04 2011-03-23 西安交大捷普网络科技有限公司 一种分离式多级缓冲网络内容过滤系统及方法
CN102891873A (zh) * 2011-07-21 2013-01-23 腾讯科技(深圳)有限公司 一种存储日志数据的方法及日志数据存储系统
CN106708578A (zh) * 2016-12-23 2017-05-24 北京五八信息技术有限公司 基于双线程的日志输出方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111199423A (zh) * 2019-12-25 2020-05-26 平安证券股份有限公司 用户行为轨迹生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN109308247B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN1210651C (zh) 多线程环境中的读锁定失败控制
EP2851807B1 (en) Method and system for supporting resource isolation under multi-core architecture
US20160132541A1 (en) Efficient implementations for mapreduce systems
US8325603B2 (en) Method and apparatus for dequeuing data
EP2645259B1 (en) Method, device and system for caching data in multi-node system
US8402248B2 (en) Explicitly regioned memory organization in a network element
US9086920B2 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
US9584628B2 (en) Zero-copy data transmission system
US11863469B2 (en) Utilizing coherently attached interfaces in a network stack framework
CN112948149A (zh) 一种远端内存共享方法、装置、电子设备及存储介质
US20210377150A1 (en) Memory pooled time sensitive networking based architectures
JP2020087499A (ja) スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体
CN115374046B (zh) 一种多处理器数据交互方法、装置、设备及存储介质
CN112948293A (zh) 一种多用户接口的ddr仲裁器及ddr控制器芯片
US11385900B2 (en) Accessing queue data
CN111309805B (zh) 数据库的数据读写方法及装置
US20080126726A1 (en) Lock manager rotation in a multiprocessor storage area network
JP2561261B2 (ja) バッファ記憶アクセス方法
US7913059B2 (en) Information processing device, data transfer method, and information storage medium
CN109308247A (zh) 一种日志处理方法、装置、设备及一种网络设备
US20200371827A1 (en) Method, Apparatus, Device and Medium for Processing Data
CN116521608A (zh) 数据迁移方法及计算设备
US20090328229A1 (en) System, method and computer program product for performing a data protection operation
JP6059360B2 (ja) バッファ処理方法及び装置

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