CN108595310A - 一种日志处理方法及装置 - Google Patents

一种日志处理方法及装置 Download PDF

Info

Publication number
CN108595310A
CN108595310A CN201711464596.0A CN201711464596A CN108595310A CN 108595310 A CN108595310 A CN 108595310A CN 201711464596 A CN201711464596 A CN 201711464596A CN 108595310 A CN108595310 A CN 108595310A
Authority
CN
China
Prior art keywords
daily record
resolver
attribute
plug
module
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.)
Pending
Application number
CN201711464596.0A
Other languages
English (en)
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.)
Beijing Lan Yun Technology Co Ltd
Original Assignee
Beijing Lan Yun Technology Co Ltd
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 Beijing Lan Yun Technology Co Ltd filed Critical Beijing Lan Yun Technology Co Ltd
Priority to CN201711464596.0A priority Critical patent/CN108595310A/zh
Publication of CN108595310A publication Critical patent/CN108595310A/zh
Pending legal-status Critical Current

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/3452Performance evaluation by statistical analysis

Abstract

本文公开了一种日志处理方法及装置,包括:获取日志;利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;将所述归一化数据输出;其中,所述公共属性表示日志之间的共有属性,所述专有属性表示日志独有的属性。本申请能够提高日志解析的精确度和日志解析的效率。

Description

一种日志处理方法及装置
技术领域
本发明涉及数据处理技术领域,尤指一种日志处理方法及装置。
背景技术
目前对于大数据安全分析平台来说对接各种设备,处理千万级以上的事件已经是一种很普遍的现象。为了挖掘威胁事件,处理各种威胁告警,我们需要对事件进行关联分析。在处理事件过程中会发现各种网络设备,硬件设备都有各自的一套日志格式,没办法针对每一种设备提供一套分析引擎,这就需要对日志进行归一化处理。然而,相关技术的日志归一化处理方案,都存在归一化过程中日志解析效率低、日志处理不够精确的问题。
发明内容
本申请提供了一种日志处理方法及装置,至少能够提高日志解析的精确度和日志解析的效率。
本申请提供了如下技术方案。
一种日志处理的方法,包括:
获取日志;
利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
将所述归一化数据输出;
其中,所述公共属性表示日志之间的共有属性,所述专有属性表示日志独有的属性。
其中,利用Flume获取日志。
其中,所述利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据,包括:
查找缓存中是否存在与当前获取的日志相匹配的解析器;
存在与当前获取的日志相匹配的解析器时,利用所查找到的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
不存在与当前获取的日志相匹配的解析器时,从内存中查找与所述日志相匹配的解析器,将查找到的解析器加载到缓存,利用所述解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据。
其中,根据所述日志的正则表达式和设备类型,通过调用正则解析应用程序编程接口API对所述日志进行匹配处理,以查找所述日志相匹配的解析器;其中,所述日志为设备日志。
其中,所述方法还包括:对预先配置的正则插件进行注册操作,构造所述解析器并加载到内存。
其中,所述方法还包括:配置插件状态,生成内容为正则表达式的插件文件;通过所述插件文件启用所述正则插件。
其中,所述公共属性包括如下之一或多项:日志的级别信息、设备信息、时间信息、IP信息、模块名Module;所述专有属性包括如下之一或多项:设备ID、日志ID、类型、子类型、是否为虚拟设备、用户名、用户访问的URL、请求状态、异常原因、返回响应内容。
一种日志处理装置,包括:
获取模块,用于获取日志;
处理模块,用于利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
输出模块,用于将所述归一化数据输出;
其中,所述公共属性表示日志之间的共有属性,所述专有属性表示日志独有的属性。
其中,所述获取模块,具体用于利用Flume获取日志。
其中,还包括:查找模块,用于查找缓存中是否存在与当前获取的日志相匹配的解析器,在缓存中不存在与当前获取的日志相匹配的解析器时,从内存中查找与所述日志相匹配的解析器;加载模块,用于将所述内存中的解析器加载到缓存;所述处理模块,具体用于在缓存中存在与当前获取的日志相匹配的解析器时,利用所查找到的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据。
其中,所述查找模块,具体用于根据所述日志的正则表达式和设备类型,通过调用正则解析应用程序编程接口API分别对所述日志进行匹配处理,以查找所述日志相匹配的解析器;其中,所述日志为设备日志。
其中,还包括:构造模块,用于对预先配置的正则插件进行注册操作,构造所述解析器并加载到内存。
其中,还包括:预处理模块,用于配置插件状态,生成内容为正则表达式的插件文件;通过所述插件文件启用所述正则插件。
一种计算设备,包括:处理器、存储器;所述存储器存储有计算机程序,所述处理器配置为读取所述计算机程序以执行上述日志处理的方法的操作。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述日志处理的方法的步骤。
本申请的优点至少包括:
本发明实施例中,日志解析过程中,不仅通过使用缓存来实现日志的处理大大提升了日志解析的效率,而且通过提取日志的公共属性和专有属性来形成日志的归一化数据,该归一化数据还原了每一条日志的真实内容,从而大幅提高了日志分析的精确性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为实施例一的日志处理方法流程示意图;
图2为与大数据框架对接的场景中日志处理方法的实施过程示意图;
图3为实施例一的日志处理方法的示例性处理逻辑示意图;
图4为实施例二的日志处理装置的示例性结构示意图;
图5为实施例三的计算设备的示例性结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
目前,相关技术的日志处理方式中,通过开源安全信息管理系统(OSSIM,OPENSOURCE SECURITY INFORMATION MANAGEMENT)实现对日志的归一化处理。该日志归一化处理的实现过程如下:通过开发代理(agent)或者直接对接系统记录(syslog,system log)日志接收数据。接收的数据先以文件方式存放到服务器端。服务端定义各种日志类型的插件,插件内容是针对每一种日志创建的为正则表达式。然后服务端按行读各类日志文件,通过使用Python和内置的插件(即正则表达式)进行解析后归一化输出数据到数据库,以便做关联分析使用。
上述日志归一化处理的方案至少存在如下问题:
1、解析日志的过程中,需要按行读取日志文件,在数据量每秒上千条日志来说对系统的IO消耗非常大,而且用Python进行日志解析工作本身效率也非常低下。
2、OSSIM对日志的归一化处理过程中将所有的日志都进行了标准归一化处理(比如,所有日志输出字段都相同),对特殊的字段内容用简单的data1、data2等进行扩展处理。这无法达到精确分析日志的目的,因为很多情况下扩展字段的内容才是最有意义和价值的。
针对日志归一化过程中系统资源(比如IO)消耗大、解析效率低、日志分析不够精确的问题,本申请提出如下技术方案,不仅能够大幅提升日志分析的精确性,而且能够提高日志的解析效率同时降低日志处理对系统资源的消耗。
本申请所述日志归一化处理的方法或装置可通过任何能够实现本文所述功能的计算设备来实现。例如,计算设备可以被体现为(但不限于)服务器计算机、分布式计算系统、多处理器系统和/或被配置为执行本文所述功能的任何其他计算设备。
下面对本申请技术方案的实现方式进行说明。
实施例一
一种日志处理的方法,如图1所示,可包括:
步骤101,获取日志;
步骤102,利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
步骤103,将所述归一化数据输出;
其中,所述公共属性表示日志之间的共有属性,所述专有属性表示日志独有的属性。
本实施例的一种实现方式中,利用Flume获取日志。具体的,可以通过对接大数据框架(Flume和ES)来利用该框架中的Flume获取日志。由于Flume支持分布式部署,并且提供了高效的syslog日志接收能力,因此,利用Flume获取日志可以初步对syslog日志进行预处理(比如,对处理时间和日志级别等字段进行处理)。
实际应用中,在处理多设备日志的过程中,针对每种日志添加一种正则插件,该插件中定义了两种属性:公共属性和专有属性。这样,每一种设备的日志归一化后其数据将会分为公有部分和专有部分,最终会输出非结构化的归一化数据。
实际应用中,将归一化数据输出到外部设备,该外部设备同样支持非结构化数据的存储,这样,可以实现无缝对接,为以后的事件处理提供技术支撑。比如,对接大数据框架时,可以将归一化数据输出到该大数据框架的搜索引擎(ES,ElasticSearch),以便ES存储这些归一化数据,将这些归一化数据用于大数据分析。
本实施例中的一种实现方式中,所述公共属性包括如下之一或多项:日志的级别信息、设备信息、时间信息、IP信息(比如,源IP、目标IP等)、模块名(Module);所述专有属性包括如下之一或多项:设备ID、日志ID、类型、子类型、是否为虚拟设备(VD)、用户名(User)、用户访问的URL(UI)、请求状态(Status)、异常原因(Reason)、返回响应内容(Content)。通过提取公共属性和专用属性形成日志的归一化数据,使得该归一化数据能够还原日志的真实内容,从而提高日志解析的精确度。
本实施例的一种实现方式中,所述方法还可以包括:对预先配置的正则插件进行注册操作,构造所述解析器并加载到内存。实际应用中,此操作可以直接在内存中执行。
本实施例中的一种实现方式中,所述方法还可以包括:配置插件状态,生成内容为正则表达式的插件文件;通过所述插件文件启用所述正则插件。这里,通过启用正则插件实现解析器的构造,可加快执行效率。
本实施例的一种实现方式中,预先配置的正则插件可以包括两部分内容:plugins.ini文件和插件文件。其中,plugins.ini文件可以包含所支持日志的设备类型、以及插件状态。其中,插件文件可以包括插件内容,该插件内容可以包括插件基础信息、插件的默认属性、用于提取公共属性的字段、用于提取专有属性的字段等。
比如,plugins.ini文件内容可以为如下形式:
[plugins]
feita-fw=false
cisco-fw=false
cisco-vpn=false
...
其中,Plugins.ini文件中列出了所有支持的日志类型,[plugins]为文件名,feita-fw、cisco-fw、cisco-vpn分别表示插件对应的设备名称,同时也指定了该设备的产品类型(即日志的设备类型),False代表插件为启用状态,True代表插件为停用状态。
比如,插件名字定义如:feita-fw.cfg feita代表设备名称,fw代表设备的产品类型是防火墙,插件内容包括两部分:#config、#DEFAULT,具体如下:
#config部分列出了插件基础信息
[config]
id=feita#这里用id标识了产品名字
precheck=FG3040B#可提供预处理通过对该字段检查可以迅速定位到和日志匹配的正则表达式
regexpType=java#指定了解析正则的编程语言
priority=102#这里设定了插件解析的优先级数字约大优先级越高
#DEFAULT部分设定了插件的默认属性,这些属性是每一条日志事件的公有属性
[DEFAULT]
plugin_id=23#因插件的种类和数量会越来越多,需指定插件的序号。
LogVer=1.0#日志版本,如果设备日志没有版本字段默认设置成1.0
Vendor=FortiGate#指定了设备厂商或代理商
DevType=firewall#指定了设备类型为防火墙
LogType=syslog#指定了日志类型为syslog
SrcMAC=""#源和目标网卡内容默认是空
DstMAC=""
SrcPort=int:0#源和目标端口号默认为0
DstPort=int:0
SrcIP=""#日志内源和目标IP默认都为空
DstIP=""
Result=""#针对某些日志的操作结果内容,设置该字段存放结果
User=""#用户信息默认为空
Protocol=""#日志内协议信息,比如http,ftp等
Message={$Message}#该字段记录了日志的整条信息
#0001和0002分别是针对每种日志提取出公共属性,同时针对每种日志抽取自定义的字段即专有属性。比如,提取日志的公共属性和专有属性时,可通过如下方式实现:
[0001-action]
regexp=date=(?<date>\d{4}-\d{1,2}-\d{1,2})\s+time=(?<time>\d{1,2}:\d{1,2}:\d{1,2})\s+devname=(?<devname>[^\s]*)\sdevice_id=(?<devid>[^\s]*)\slog_i d=(?<logid>[^\s]*)\stype=(?<type>[^\s]*)\ssubtype=(?<stype>[^\s]*)\spri=(?<sev erity>[^\s
]*)\svd=(?<vd>\w+)\suser="(?<user>\w+)"\sui=(?<ui>[^\s]*)\saction=(?<act ion>\w+)\sstatus=(?<status>[^\s]*)\sreason=(?<reason>[^\s]*)\smsg="(?<content>[^"]*)"
DevName={$devname}#读取设备名字(公有属性)
DevID={$devid}#设备的ID(专有属性)
LogID={$logid}#日志ID(专有属性)
Type={$type}#类型(专有属性)
SubType={$stype}#子类型(专有属性)
SrcIP={resolv($devname)}#源、目标ip(公有属性)
DstIP={resolv($dst)}
Severity={$severity}#记录每条syslog的日志级别(公有属性)
VD={$vd}#专有属性
User={$user}#专有属性
UI={$ui}#专有属性
Module={$action}#公共属性
Status={$status}#专有属性
Reason={$reason}#专有属性
Content={$content}#日志内容,专有属性
Time={original_date($date,$time)}#公有属性
该部分字段解释同上
[0002-field]
regexp=(?<date>\d{4}-\d{1,2}-\d{1,2})\s+time=(?<time>\d{1,2}:\d{1,2}:\d{1,2})\s+devname=(?<devname>[^\s]*)\sdevice_id=(?<devid>[^\s]*)\slog_id=(?<logid>[^\s]*)\stype=(?<type>[^\s]*)\ssubtype=(?<stype>[^\s]*)\spri=(?<severity>[^\s]*)\s
vd=(?<vd>\w+)\suser="(?<user>\w+)"\sui=(?<ui>[^\s]*)\sfield=(?<field>[^\s]*)\smsg="(?<content>[^"]*)"
DevName={$devname}
DevID={$devid}
LogID={$logid}
Type={$type}
SubType={$stype}
SrcIP={resolv($devname)}
DstIP={resolv($dst)}
Severity={$severity}
VD={$vd}
User={$user}
UI={$ui}
Field={$field}
Content={$content}
Time={original_date($date,$time)}
图2为与大数据框架对接的场景中本实施例日志处理方法的示例性实施方式。如图2所示,本实施例日志处理方法的示例性实现过程可以包括:
首先,外部设备发送Syslog日志,Flume服务启动监听Syslog日志,即启动Flume的syslog服务,等待接收日志。
这里,Flume作为一个成熟的大数据日志收集系统,兼顾分布式、高可用、效率高的优点,并且支持多种日志收集方式包括:syslog(tcp/udp)、http/https、avro等。
其次,初始化日志解析引擎,包括:插件预处理、启动插件检测定时任务;
这里,如图2所示,插件预处理可以包括:Web端配置插件状态,形成插件文件,该插件文件的内容为正则表达式。该日志解析引擎为用于实现本实施例所述日志处理方法的装置,可以为软件、硬件或两者的结合。
这里,通过启动插件检测定时任务来定时检查插件是否启用。
最后,日志解析引擎对日志进行解析并进行归一化处理,将得到的归一化数据送到ES,ES存储该归一化数据以备关联分析时使用。
需要说明的是,上述图2仅为示例。基于应用场景的不同,本实施例的日志处理方法可通过不同的实施方式实现。
本实施例的一种实现方式中,步骤102的处理过程可以通过如下方式实现:查找缓存中是否存在与当前获取的日志相匹配的解析器;存在与当前获取的日志相匹配的解析器时,利用所查找到的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;不存在与当前获取的日志相匹配的解析器时,从内存中查找与所述日志相匹配的解析器,将查找到的解析器加载到缓存,利用所述解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据。首先,该方式日志解析的过程都可以在内存中进行,便于将解析器加载到缓存进而在缓存中完成日志的归一化处理,从而提高日志解析的效率。其次,该方式可以在缓存中通过解析器完成日志的处理,从而大幅提高日志解析的效率,同时降低日志解析带来的系统消耗。
实际应用中,可以通过如下方式判断是否存在与日志相匹配的解析器:根据所述日志的正则表达式和设备类型,通过调用正则解析应用程序编程接口API对所述日志进行匹配处理,以查找所述日志相匹配的解析器。这里,该日志为设备日志。如果一次进入缓存的Syslog日志中包含多种设备日志,可针对每条设备日志分别进行步骤102的处理。
图3为本实施例日志处理方法的示例性处理逻辑。如图3所示,可以包括:
步骤300,插件配置,即配置上文所述的正则插件;
步骤301,初始化过程中针对每一种插件(即上文所述的正则插件)进行注册操作,构造解析器;
这里,构造解析器的过程也可以在内存中执行。
步骤302,将所有解析器加载到内存(Memory);
步骤303,日志事件发生的时候,包含多种设备日志的Syslog日志进入缓存(Cache);
步骤304,判断缓存中的解析器是否能够解析上述Syslog日志中的所有设备日志;对于有匹配的解析器的设备日志可直接进入步骤309;对于没有相匹配的解析器的设备日志则进入步骤305;
这里,每个解析器对应一条正则表达式(即上文regexp的内容),进入缓存的Syslog日志中每条设备日志可以包含两个参数:日志的设备类型和正则表达式,可以基于这两个参数通过调用java相关的正则解析API(比如,Pattern.compile)对每条设备日志进行匹配处理,如果匹配成功说明能够解析,匹配不成功则说明不能解析。
步骤305,在内存中将设备日志与解析器进行匹配;
步骤306,判断是否能解析,对于能解析的设备日志进入步骤308;对于不能解析的设备日志则进入步骤307;
这里,判断是否能解析的方式与步骤304相同,不再赘述。
步骤307,对于不存在相匹配的解析器的设备日志,可以直接输出其原始日志到大数据平台(比如,ES),跳转至步骤311;
步骤308,将与设备日志相匹配的新的解析器加载到缓存,并将该设备日志再重新送入缓存,返回步骤304;
步骤309,利用缓存中的解析器提取日志内的公共属性和专有属性,生成日志的归一化数据;
步骤310,将日志的归一化数据输出到搜索引擎(ES,ElasticSearch)存储数据;
步骤311,存储数据(日志的归一化数据和/或原始日志)到ES,以便后续关联分析时使用。
需要说明的是,上述图3仅为示例。基于应用场景的不同,本实施例的日志处理方法可通过不同的处理逻辑实现。对此,本文不予限制。
本实施例的上述方法中,日志解析过程都发生在内存中,而且通过使用缓存大大提升了日志解析的效率。此外,还在正则插件中定义日志的公共属性和针对每一种设备日志的专有属性,通过提取日志的公共属性和专有属性来形成其归一化数据,使得该归一化数据能够还原每一条日志的真实内容,从而大幅提高日志分析的精确性。
实施例二
一种日志处理装置,如图4所示,可以包括:
获取模块41,用于获取日志;
处理模块42,用于利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
输出模块43,用于将所述归一化数据输出;
其中,所述公共属性表示日志之间的共有属性,所述专有属性表示日志独有的属性。
本实施例的一种实现方式中,所述获取模块41,具体可以用于利用Flume获取日志。
本实施例的一种实现方式中,上述日志处理装置还可包括:
查找模块44,用于查找缓存中是否存在与当前获取的日志相匹配的解析器,在缓存中不存在与当前获取的日志相匹配的解析器时,从内存中查找与所述日志相匹配的解析器;
加载模块45,用于将所述内存中的解析器加载到缓存;
所述处理模块42,具体可用于在缓存中存在与当前获取的日志相匹配的解析器时,利用所查找到的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据。
这里,输出模块43还可以用于在匹配模块44确定内存中不存在与当前获取所述日志相匹配的解析器时,直接将所述获取模块41所获取的日志输出。
本实施例的一种实现方式中,所述查找模块44,具体可用于根据所述日志的正则表达式和设备类型,通过调用正则解析应用程序编程接口API分别对所述日志进行匹配处理,以查找所述日志相匹配的解析器;其中,所述日志为设备日志。这里,该日志为设备日志。如果一次进入缓存的Syslog日志中包含多种设备日志,可针对每条设备日志分别进行处理。
本实施例中,上述日志处理装置还可以包括:构造模块46,构造模块,用于对预先配置的正则插件进行注册操作,构造所述解析器并加载到内存。
本实施例中,上述日志处理装置还可以包括:预处理模块47,用于配置插件状态,生成内容为正则表达式的插件文件;通过所述插件文件启用所述正则插件。通过预处理模块48启动正则插件,构造模块46方可基于该正则插件生成解析器。
本实施例中,所述公共属性可以包括如下之一或多项(但不限于此):日志的级别信息、设备信息、时间信息、IP信息(源IP和目标IP)、Module;所述专有属性可以包括如下之一或多项(但不限于此):设备ID、日志ID、类型、子类型、VD、User、UI、Status(值)、Reason、Content。
实际应用中,本实施例所述日志处理装置可以通过设置于计算设备实现或直接通过计算设备实现。该日志处理装置中,获取模块41、处理模块42、输出模块43、查找模块45、加载模块45、构造模块46、预处理模块47等分别可以是软件、硬件或两者的结合。一种实现方式中,本实施例的上述日志处理装置可以实现为上述的日志解析引擎。
本实施例的其他技术细节可参照实施例一。
实施例三
一种计算设备,如图5所示,包括:存储器51、处理器52;所述存储器51存储有计算机程序,所述处理器52配置为读取所述计算机程序以执行实施例一所述日志处理的方法的操作。
具体来讲,处理器52至少可以配置为读取所述计算机程序以执行实例一中的步骤101~步骤103。除此之外,处理器52还可以配置为读取所述计算机程序以执行实施例一所述方法的其他操作。这些操作的技术细节可参照实施例一。
如图5所示,为本实施例计算设备的示例性架构图。该示例性架构中,计算设备包括存储器和处理器。实际应用中,除包含上述基础结构(处理器、存储器)之外,还可以包括:通信组件、总线等部件。可以理解,本实施例的计算设备还可以采用其他架构形式。比如,该计算设备可以采用多处理器架构,以适应日志量比较的应用场景。
实施例四
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现实施例一所述日志处理方法的步骤。
具体来讲,所述计算机程序被处理器执行时至少实现步骤101~步骤103的操作。除此之外,所述计算机程序被处理器执行时还可以实现实施例一所述方法的其他步骤。这些步骤的技术细节可参照实施例一。
实际应用中,该计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (15)

1.一种日志处理的方法,包括:
获取日志;
利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
将所述归一化数据输出;
其中,所述公共属性表示日志之间的共有属性,所述专有属性表示日志独有的属性。
2.根据权利要求1所述的方法,其特征在于:利用Flume获取日志。
3.根据权利要求1所述的方法,其特征在于,所述利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据,包括:
查找缓存中是否存在与当前获取的日志相匹配的解析器;
存在与当前获取的日志相匹配的解析器时,利用所查找到的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
不存在与当前获取的日志相匹配的解析器时,从内存中查找与所述日志相匹配的解析器,将查找到的解析器加载到缓存,利用所述解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据。
4.根据权利要求3所述的方法,其特征在于:
根据所述日志的正则表达式和设备类型,通过调用正则解析应用程序编程接口API对所述日志进行匹配处理,以查找所述日志相匹配的解析器;其中,所述日志为设备日志。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对预先配置的正则插件进行注册操作,构造所述解析器并加载到内存。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
配置插件状态,生成内容为正则表达式的插件文件;
通过所述插件文件启用所述正则插件。
7.根据权利要求1所述的方法,其特征在于,
所述公共属性包括如下之一或多项:日志的级别信息、设备信息、时间信息、IP信息、模块名Module;
所述专有属性包括如下之一或多项:设备ID、日志ID、类型、子类型、是否为虚拟设备、用户名、用户访问的URL、请求状态、异常原因、返回响应内容。
8.一种日志处理装置,其特征在于,包括:
获取模块,用于获取日志;
处理模块,用于利用缓存中的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据;
输出模块,用于将所述归一化数据输出;
其中,所述公共属性表示日志之间的共有属性,所述专有属性表示日志独有的属性。
9.根据权利要求8所述的装置,其特征在于,所述获取模块,具体用于利用Flume获取日志。
10.根据权利要求8所述的装置,其特征在于,还包括:
查找模块,用于查找缓存中是否存在与当前获取的日志相匹配的解析器,在缓存中不存在与当前获取的日志相匹配的解析器时,从内存中查找与所述日志相匹配的解析器;
加载模块,用于将所述内存中的解析器加载到缓存;
所述处理模块,具体用于在缓存中存在与当前获取的日志相匹配的解析器时,利用所查找到的解析器提取所述日志的公共属性和专有属性,并生成所述日志的归一化数据。
11.根据权利要求10所述的方法,其特征在于:
所述查找模块,具体用于根据所述日志的正则表达式和设备类型,通过调用正则解析应用程序编程接口API分别对所述日志进行匹配处理,以查找所述日志相匹配的解析器;其中,所述日志为设备日志。
12.根据权利要求8所述的装置,其特征在于,还包括:
构造模块,用于对预先配置的正则插件进行注册操作,构造所述解析器并加载到内存。
13.根据权利要求12所述的装置,其特征在于,还包括:
预处理模块,用于配置插件状态,生成内容为正则表达式的插件文件;通过所述插件文件启用所述正则插件。
14.一种计算设备,包括:处理器、存储器;其特征在于,所述存储器存储有计算机程序,所述处理器配置为读取所述计算机程序以执行权利要求1至7任一项所述日志处理的方法的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述日志处理的方法的步骤。
CN201711464596.0A 2017-12-28 2017-12-28 一种日志处理方法及装置 Pending CN108595310A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711464596.0A CN108595310A (zh) 2017-12-28 2017-12-28 一种日志处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711464596.0A CN108595310A (zh) 2017-12-28 2017-12-28 一种日志处理方法及装置

Publications (1)

Publication Number Publication Date
CN108595310A true CN108595310A (zh) 2018-09-28

Family

ID=63633595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711464596.0A Pending CN108595310A (zh) 2017-12-28 2017-12-28 一种日志处理方法及装置

Country Status (1)

Country Link
CN (1) CN108595310A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656894A (zh) * 2018-11-13 2019-04-19 平安科技(深圳)有限公司 日志规范化存储方法、装置、设备及可读存储介质
CN111737091A (zh) * 2020-08-27 2020-10-02 北京安帝科技有限公司 一种日志处理方法、装置及可读介质
CN111858093A (zh) * 2020-07-10 2020-10-30 北京和德宇航技术有限公司 一种消息处理的方法、装置、设备及存储介质
CN112182160A (zh) * 2020-09-30 2021-01-05 中国民航信息网络股份有限公司 一种日志数据处理方法、装置、存储介质及电子设备
CN113806321A (zh) * 2021-09-02 2021-12-17 北京天融信网络安全技术有限公司 一种日志处理方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法
CN102164050A (zh) * 2011-05-16 2011-08-24 北京星网锐捷网络技术有限公司 日志解析方法及日志解析节点设备
CN102768636A (zh) * 2011-05-05 2012-11-07 阿里巴巴集团控股有限公司 一种日志解析方法及装置
WO2014158182A2 (en) * 2013-03-29 2014-10-02 Ajit Bhave Organizing and fast searching of data
CN105005549A (zh) * 2015-07-31 2015-10-28 山东蚁巡网络科技有限公司 一种自定义链式日志解析装置及方法
CN105550378A (zh) * 2016-02-04 2016-05-04 贵州电网有限责任公司信息中心 一种复杂网络体系下异构安全日志信息的提取与分析方法
US20160170892A1 (en) * 2014-12-11 2016-06-16 HGST Netherlands B.V. Expression pattern matching in a storage subsystem
CN106021554A (zh) * 2016-05-30 2016-10-12 北京奇艺世纪科技有限公司 一种日志解析方法及装置
CN106598827A (zh) * 2016-12-19 2017-04-26 东软集团股份有限公司 提取日志数据的方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法
CN102768636A (zh) * 2011-05-05 2012-11-07 阿里巴巴集团控股有限公司 一种日志解析方法及装置
CN102164050A (zh) * 2011-05-16 2011-08-24 北京星网锐捷网络技术有限公司 日志解析方法及日志解析节点设备
WO2014158182A2 (en) * 2013-03-29 2014-10-02 Ajit Bhave Organizing and fast searching of data
US20160170892A1 (en) * 2014-12-11 2016-06-16 HGST Netherlands B.V. Expression pattern matching in a storage subsystem
CN105005549A (zh) * 2015-07-31 2015-10-28 山东蚁巡网络科技有限公司 一种自定义链式日志解析装置及方法
CN105550378A (zh) * 2016-02-04 2016-05-04 贵州电网有限责任公司信息中心 一种复杂网络体系下异构安全日志信息的提取与分析方法
CN106021554A (zh) * 2016-05-30 2016-10-12 北京奇艺世纪科技有限公司 一种日志解析方法及装置
CN106598827A (zh) * 2016-12-19 2017-04-26 东软集团股份有限公司 提取日志数据的方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656894A (zh) * 2018-11-13 2019-04-19 平安科技(深圳)有限公司 日志规范化存储方法、装置、设备及可读存储介质
CN111858093A (zh) * 2020-07-10 2020-10-30 北京和德宇航技术有限公司 一种消息处理的方法、装置、设备及存储介质
CN111858093B (zh) * 2020-07-10 2021-03-26 北京和德宇航技术有限公司 一种消息处理的方法、装置、设备及存储介质
CN111737091A (zh) * 2020-08-27 2020-10-02 北京安帝科技有限公司 一种日志处理方法、装置及可读介质
CN112182160A (zh) * 2020-09-30 2021-01-05 中国民航信息网络股份有限公司 一种日志数据处理方法、装置、存储介质及电子设备
CN112182160B (zh) * 2020-09-30 2023-12-26 中国民航信息网络股份有限公司 一种日志数据处理方法、装置、存储介质及电子设备
CN113806321A (zh) * 2021-09-02 2021-12-17 北京天融信网络安全技术有限公司 一种日志处理方法及系统
CN113806321B (zh) * 2021-09-02 2023-11-10 北京天融信网络安全技术有限公司 一种日志处理方法及系统

Similar Documents

Publication Publication Date Title
CN108595310A (zh) 一种日志处理方法及装置
US9529662B1 (en) Dynamic rule-based automatic crash dump analyzer
IL275042A (en) Security monitoring Level of application programming programming with self-adaptation
US10567409B2 (en) Automatic and scalable log pattern learning in security log analysis
US9853876B1 (en) Mobile application identification in network traffic via a search engine approach
CN104298921B (zh) 动画源文件安全漏洞检查方法及装置
CN109800258A (zh) 数据文件部署方法、装置、计算机设备及存储介质
CN108108288A (zh) 一种日志数据解析方法、装置及设备
CN106649120A (zh) 一种数据获取方法、分析方法及系统
US11977934B2 (en) Automation solutions for event logging and debugging on KUBERNETES
CN110392039A (zh) 基于日志和流量采集的网络系统事件溯源方法及系统
CN106530121A (zh) 电力监控系统安全防护合规性检测方法和系统
US11681606B2 (en) Automatic configuration of logging infrastructure for software deployments using source code
CN108667840A (zh) 注入漏洞检测方法及装置
CN114528457A (zh) Web指纹检测方法及相关设备
CN108055166B (zh) 一种嵌套的应用层协议的状态机提取系统及其提取方法
Azodi et al. A new approach to building a multi-tier direct access knowledgebase for IDS/SIEM systems
Rosa et al. A comparative study of correlation engines for security event management
Azodi et al. Pushing the limits in event normalisation to improve attack detection in IDS/SIEM systems
CN110830416A (zh) 网络入侵检测方法和装置
CN110716912A (zh) 一种sql性能检测方法及服务器
US10419351B1 (en) System and method for extracting signatures from controlled execution of applications and application codes retrieved from an application source
CN110881030A (zh) 基于logstash的记录web服务管理员操作日志的方法及装置
CN104363256B (zh) 一种手机病毒的识别和控制方法、设备与系统
CN113032341A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180928