CN112269825A - 一种etl解析异常数据留存的方法及装置 - Google Patents

一种etl解析异常数据留存的方法及装置 Download PDF

Info

Publication number
CN112269825A
CN112269825A CN202011266712.XA CN202011266712A CN112269825A CN 112269825 A CN112269825 A CN 112269825A CN 202011266712 A CN202011266712 A CN 202011266712A CN 112269825 A CN112269825 A CN 112269825A
Authority
CN
China
Prior art keywords
data
exception
log
abnormal
etl
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
CN202011266712.XA
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.)
Zhongying Youchuang Information Technology Co Ltd
Original Assignee
Zhongying Youchuang Information 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 Zhongying Youchuang Information Technology Co Ltd filed Critical Zhongying Youchuang Information Technology Co Ltd
Priority to CN202011266712.XA priority Critical patent/CN112269825A/zh
Publication of CN112269825A publication Critical patent/CN112269825A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种ETL解析异常数据留存的方法及装置,其中,该方法包括:步骤一,采集数据;步骤二,处理数据:logstash程序收到filebeat程序发来的数据后,对数据执行转换和过滤的各种操作;在处理数据时,通过不同的插件解析规则,并带上当前处理时间,记录元数据和异常日志数据的对应关系;logstash程序记录异常日志对应元数据所在主机名、文件名和文件所在目录名信息,并将这些信息追加到异常数据中;步骤三,将异常数据写入定义的目标存储。该方法及装置自动留存数据类型、格式、解析错误等异常日志,并快速定位异常问题原因、归属主机名、文件名等源头信息。

Description

一种ETL解析异常数据留存的方法及装置
技术领域
本发明涉及异常数据留存领域,尤其是一种ETL解析异常数据留存的方法及装置。
背景技术
图1是目前异常数据留存常规操作流程示意图。如图1所示,该流程如下:
1、filebeat采集数据
开启filebeat程序,启动一个或多个探测器检测指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程,每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据,汇聚至logstash进行各种数据转换加工处理。
2、logstash处理数据
通过数据输入端从各种数据源收集到的数据可能有很多不是我们想要的,需要logstash做各种转换、过滤,常见的过滤有json数据解析、csv解析、grok正则表达式匹配、根据指定分隔符提取字段、日期转换等。
3、异常日志处理
在logstash转换过滤数据过程中,由于各种原因解析失败的数据,通常有如下两种操作:
(1)没有做失败校验,导致结果数据不正常,可能再增加后续程序对结果数据再做一层处理,把异常数据剔除掉;
(2)直接丢弃;
(3)增加正常或异常的标识字段,写入目标存储,即正常和异常的日志混合在一起,通过一个标识字段进行识别正常和异常的日志,再后续通过程序分离正常和异常的日志,将异常日志集中存放在专用的目标库或本地。
上述操作流程存在的问题如下:
(1)没有做失败校验,导致结果数据不正常,可能再增加后续程序对结果数据再做一层处理,虽然可以达到剔除异常数据目标,但效率较低,无法定位日志异常的原因,无法优化源头的日志生成逻辑;
(2)直接丢弃日志,将导致数据缺失,无法定位日志异常的原因,无法优化源头的日志生成逻辑;
(3)通过字段标识正常和异常日志的问题如下:
A、异常日志集中存放在目标库或本地,即使按时间维度分别存储在不同目录下,对于海量数据源如WEB网站访问日志、流量流向日志等,每天产生的异常日志数据量可能较大,给开发或运维排错,查找问题原因带来很大困难。
B、异常日志数据只是做简单留存,没有有效做前后关联,如异常日志数据对应的数据源原始数据不清楚,异常日志数据的异常类型、来源主机、来源的文件等信息都缺失。
发明内容
为解决目前异常数据留存常规操作流程存在的问题,本发明提供一种ETL解析异常数据留存的方法及装置,可以自动留存数据类型、格式、解析错误等异常日志,并快速定位异常问题原因、归属主机、文件名等源头信息。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种ETL解析异常数据留存的方法,该方法包括:
步骤一,采集数据
开启filebeat程序,启动一个或多个探测器检测指定的日志目录或文件,对于探测器找出的每一个日志目录或文件,filebeat程序启动收割进程,每一个收割进程读取一个日志目录或文件的新内容,并发送这些新内容,汇总到logstash程序;
步骤二,处理数据
logstash程序收到filebeat程序发来的数据后,对数据执行转换和过滤的各种操作;
在处理数据时,通过不同的插件解析规则,并带上当前处理时间,记录元数据和异常日志数据的对应关系;
logstash程序记录异常日志对应元数据所在主机名、文件名和文件所在目录名信息,并将这些信息追加到异常数据中;
步骤三,将异常数据写入定义的目标存储。
进一步地,不同的插件解析规则,包括:
使用ruby插件自定义解析规则,json异常解析规则,grok异常解析规则以及其他异常解析规则。
进一步地,使用ruby插件自定义解析规则,包括:
通过logstash的ruby插件解析数据,校验字段的数据类型、字段数量、时间格式是否符合规则,如果不符合规则,则抛出异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,json异常解析规则,包括:
通过logstash的json插件解析json格式的数据,对于无法解析的json字符串,抛出_jsonparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,grok异常解析规则,包括:
通过logstash的grok插件基于正则表达式解析数据,对于无法解析的grok字符串,抛出_grokparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,其他异常解析规则,包括:
对于mutate_error无法解析,抛出_mutate_error异常,对于dissect无法解析,抛出_dissectfailure异常,对于时间戳无法解析,抛出_timestampparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,元数据使用ruby脚本解析。
在本发明一实施例中,还提出了一种ETL解析异常数据留存的装置,该装置包括:
采集数据模块,用于开启filebeat程序,启动一个或多个探测器检测指定的日志目录或文件,对于探测器找出的每一个日志目录或文件,filebeat程序启动收割进程,每一个收割进程读取一个日志目录或文件的新内容,并发送这些新内容,汇总到logstash程序;
处理数据模块,用于logstash程序收到filebeat程序发来的数据后,对数据执行转换和过滤的各种操作;在处理数据时,通过不同的插件解析规则,并带上当前处理时间,记录元数据和异常日志数据的对应关系;logstash程序记录异常日志对应元数据所在主机名、文件名和文件所在目录名信息,并将这些信息追加到异常数据中;
异常数据写入存储模块,用于将异常数据写入定义的目标存储。
进一步地,处理数据模块中不同的插件解析规则,包括:
使用ruby插件自定义解析规则,json异常解析规则,grok异常解析规则以及其他异常解析规则。
进一步地,使用ruby插件自定义解析规则,包括:
通过logstash的ruby插件解析数据,校验字段的数据类型、字段数量、时间格式是否符合规则,如果不符合规则,则抛出异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,json异常解析规则,包括:
通过logstash的json插件解析json格式的数据,对于无法解析的json字符串,抛出_jsonparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,grok异常解析规则,包括:
通过logstash的grok插件基于正则表达式解析数据,对于无法解析的grok字符串,抛出_grokparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,其他异常解析规则,包括:
对于mutate_error无法解析,抛出_mutate_error异常,对于dissect无法解析,抛出_dissectfailure异常,对于时间戳无法解析,抛出_timestampparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
进一步地,处理数据模块中元数据使用ruby脚本解析。
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述ETL解析异常数据留存的方法。
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行ETL解析异常数据留存的方法的计算机程序。
有益效果:
本发明可以减轻开发及运维人员工作负担,提高工作效率,特别是在紧急排查问题情况下可快速定义异常数据所在的主机名、路径、文件名以及日志在文件中的偏移量,大幅度提高效率;另外,作为一个通用程序设计可灵活配置,适用于各项目场景。
附图说明
图1是目前异常数据留存常规操作流程示意图;
图2是本发明一实施例的ETL解析异常数据留存的方法流程示意图;
图3是本发明一实施例的ETL解析异常数据留存的装置结构示意图;
图4是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种ETL解析异常数据留存的方法及装置,ETL(Extract-Transform-Load的缩写)用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。该方法及装置针对logstash处理数据这部分进行改进,在处理数据时,通过不同的插件解析规则,如有无法解析的字段抛出对应插件的异常信息,写在tags里面,将日志是否正常的标识设置为2,标识该条日志为异常数据,带上当前处理时间,记录元数据和异常日志数据的对应关系,方便溯源。另外,程序记录异常日志对应元数据所在主机、文件名、文件所在目录等信息,并将以上这些信息追加到异常数据中。最终将异常数据写入规则的存储,如ES、oracle等。
改进后的优点如下:
1、以上过程由程序自动完成,减轻维护人员工作负担,提高工作效率。
2、灵活支持多种目标存储种类,如ES、oracle、Kafka、mysql等。同一种存储可根据不同维度分类存储,如ES中按时间创建不同索引分别存储异常日志数据和正常数据。
3、方便开发、运维根据异常数据里异常类型、异常信息(问题原因)、所在主机等信息快速复核问题,极大提高工作效率。为项目后续优化数据源数据、解析处理规则优化等提供有力支撑。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图2是本发明一实施例的ETL解析异常数据留存的方法流程示意图。如图1所示,该方法包括:数据记录,经N次转换正常,得到正常数据,经N次转换异常,则得到异常数据,异常数据追加:主机名、目录、文件名、异常类型、偏移量、时间戳。具体如下:
1、采集数据
开启filebeat程序,启动一个或多个探测器检测指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程,每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序,处理程序汇总这些日志数据最终发送汇总数据到logstash程序。
定义filebeat采集逻辑,在filebeat配置文件中,对接logstash的监听端口。
如下示例:
Figure BDA0002776299210000091
2、处理数据
logstash程序收到filebeat程序发来的数据后按照业务逻辑规则对数据执行转换、过滤等各种操作。
如WEB网站的访问日志,filebeat程序发来的数据一般为源IP、目的IP、源端口、目的端口、域名、URL、传输层协议、访问时间。其中URL为base64位加密。
logstash程序根据业务逻辑规则,首先对各字段值做数据类型、字段数量、字段值是否符合预置规则等各种格式和数值有效性校验,然后对URL做base64位解密,过滤掉传输层协议为UDP的数据,添加指定的计数字段(默认1),添加指定的处理时间(默认当前系统时间),解析转换处理过后的最终数据为:
源IP、目的IP、源端口、目的端口、域名、URL(base64解码后)、传输层协议(TCP)、访问时间、访问次数、处理时间。
以上过程中如发现字段有缺少、数据类型不正确、字段值不符合预置规则等情况,如域名为www.poweron.cn“=”“www.poweron.cn”;SELECT等明显错误的,记录异常类型为异常,异常信息(问题原因)为_grokparsefailure异常,grok有专门解析域名的关键字,也支持自定义正则表达式,将异常日志所在主机名、文件名、目录名等信息追加到此条异常数据里面。
再如WEB网站的流量流向数据,filebeat程序发来的数据一般为开始时间、结束时间、源区域、目的区域、应用类型名称、应用名称、上行流量、下行流量。
logstash程序根据业务逻辑规则,首先对各字段值做数据类型、字段数量、字段值是否符合预置规则等各种格式和数值有效性校验,然后移除结束时间,添加指定的处理时间(默认当前系统时间),对上下行流量转换为统一单位(不同厂家上报的流量单位不一样),解析转换处理过后的最终数据为:
开始时间、源区域、目的区域、应用类型名称、应用名称、上行流量、上行流量、处理时间。
WEB网站的流量流向数据处理解析得到的异常日志数据追加信息同上访问日志。
以下为具体的处理逻辑:
(1)定义目标存储的信息
例如定义数据存储到ES,如果抛出异常,则修改变量的值,修改标识和索引名。
在下面的配置中,正常的日志存储至flux索引中,标识为1,如果出现异常日志,则把异常日志存储至flux_failure索引中,标识为2。
Figure BDA0002776299210000111
(2)解析数据
使用json、grok、dissect、mutate等logstash的插件对数据进行解析过滤。
对于无法解析的数据,抛出异常,并解析日志的元数据信息,获取元数据的主机名、文件名、时间戳等信息。
解析规则如下:
A、使用ruby插件自定义解析规则
通过logstash的ruby插件,解析数据,校验字段的数据类型、字段数量、时间格式等是否符合规则,如果不符合规范,则抛出异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
B、json异常的解析规则
对于无法解析的json字符串,抛出_jsonparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。注意json插件只能处理数据源是json格式的数据。
C、grok异常的解析规则
对于无法解析的grok字符串,抛出_grokparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
grok异常是基于正则表达式的解析,用处最为广范,通过其内置规划几乎可以实现各种校验,可校验字段的数据类型、字段的长度、日期的格式、自定义正则表达式等。以下以grok插件内置规则为例:
grok表达式如下:
grok{match=>{"message"=>"%{DATA:circuitid},%{NUMBER:fluxtime},%{NUMBER:interval},%{NUMBER:influx},%{NUMBER:outflux}"}}
message的数据样例如下:
cir001,20200824,10,20,30
cir001,20200824,10,20,ef
使用上面的grok表达式解析message,其中二个百分号之间表示一个字段,DATA、NUMBER等为grok的关键字,表示字符串类型和数值类型。而circuitid、fluxtime、interval、influx、outflux表示解析后的新字段名称。
如果influx、outflux不是数值类型,则抛出异常。
例如上面message的数据样例的第二条日志,由于最后的ef不是数值类型,该条日志将被标记为异常。
D、其他异常
mutate_error无法解析,抛出_mutate_error异常。
dissect无法解析,抛出_dissectfailure异常。
时间戳无法解析,抛出_timestampparsefailure异常。
并将日志是否正常的标识设置为2,标识该条日志为异常数据。
(3)捕获日志的元数据信息
根据异常的标记,捕获异常日志的元数据信息,包括日志所在主机名、目录、文件名、时间戳、日志在文件中的offset偏移量等。
元数据解析方式,使用ruby脚本解析。例如,获取文件名:
mutate{split=>["source","/"]}
ruby{code=>"event.set('filename',event.get('source').pop)"}
其中source值为/home/flux/flux_2018.log,首先使用split进行分割,形成数组,然后在ruby中取数组的最后一个元素,即文件名flux_2018.log,再将文件名复制为filename字段。
同理,可生成新的字段:文件所在的目录、文件所在的主机名、该日志在文件中的偏移量、日志的时间戳等。
示例:
"hostname":"cloudtest",
"offset":148,
"filename":"flux_2018.log",
"dir":"/home/flux/",
"timestamp":"2020-09-02T02:16:47.009Z"
3、异常数据入目标存储
和正常数据入目标存储本质没区别,只是入不同的存储路径,如ES的accesslog索引存放正常数据,accesslog_error索引存放异常数据。
异常日志在ES中存储展示的示例如下:
"tags":"_grokparsefailure"
"timestamp":"2020-09-02T10:16:47.009Z",
"hostname":"cloudtest",
"dir":"/hadoop/data/",
"filename":"abc.log",
"offset":173
"message":"cir001,20200824,10,20,ff"
正常日志在ES中存储展示示例如下:
"circuitid":"cir001"
"fluxtime":20200824
"interval":10
"influx":20
"outflux":30
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述ETL解析异常数据留存的方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
以一个实例来对ETL解析异常数据留存的方法进一步说明:
数据目录的监控存在同时也配置在filebeat的配置文件中。
数据的处理逻辑、异常日志的流程等均存储在Logstash的配置文件中,配置文件定义了正常和异常数据的存储、多个数据转换以及转换的异常判断。
在具体执行的时候,首先启动所有主机的filebeat进程,然后启动logstash程序接收从filebeat程序发送过来的数据进行处理。filebeat程序和logstash程序的执行命令通过Linux的执行脚本进行封装。
例如:
1.启动Filebeat程序
Filebeat程序的Linux的执行脚本接收三个参数,监控的文件目录、配置文件的路径、logstash主机名。
执行命令示例:start-filebeat.sh/data/logs//config/collect.confhoustname001
start-filebeat.sh是执行的程序,后面包含三个参数,/data/logs/为监控的文件目录,/config/collect.conf为配置文件的路径,houstname001为logstash的主机名。
2.启动Logstash程序
Logstash程序的Linux的执行脚本接收两个参数,Filebeat程序的端口和配置文件的路径。
执行命令示例:start-logstash.sh 1542/config/collect.conf
start-logstash.sh是执行的程序,后面包含两个参数,1542监听的端口,/config/collect.conf为配置文件的路径。
基于同一发明构思,本发明还提出一种ETL解析异常数据留存的装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是本发明一实施例的ETL解析异常数据留存的装置结构示意图。如图3所示,该装置包括:
采集数据模块101,用于开启filebeat程序,启动一个或多个探测器检测指定的日志目录或文件,对于探测器找出的每一个日志目录或文件,filebeat程序启动收割进程,每一个收割进程读取一个日志目录或文件的新内容,并发送这些新内容,汇总到logstash程序;
处理数据模块102,用于logstash程序收到filebeat程序发来的数据后,对数据执行转换和过滤的各种操作;在处理数据时,通过不同的插件解析规则,并带上当前处理时间,记录元数据和异常日志数据的对应关系;logstash程序记录异常日志对应元数据所在主机名、文件名和文件所在目录名信息,使用ruby脚本解析,并将这些信息追加到异常数据中;
上述不同的插件解析规则,包括:
使用ruby插件自定义解析规则,通过logstash的ruby插件解析数据,校验字段的数据类型、字段数量、时间格式是否符合规则,如果不符合规则,则抛出异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据;
json异常解析规则,通过logstash的json插件解析json格式的数据,对于无法解析的json字符串,抛出_jsonparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据;
grok异常解析规则,通过logstash的grok插件基于正则表达式解析数据,对于无法解析的grok字符串,抛出_grokparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据;
其他异常解析规则,对于mutate_error无法解析,抛出_mutate_error异常,对于dissect无法解析,抛出_dissectfailure异常,对于时间戳无法解析,抛出_timestampparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据;
异常数据写入存储模块103,用于将异常数据写入定义的目标存储。
应当注意,尽管在上文详细描述中提及了ETL解析异常数据留存的装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图4所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述ETL解析异常数据留存的方法。
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述ETL解析异常数据留存的方法的计算机程序。
本发明提出的ETL解析异常数据留存的方法及装置可以减轻开发及运维人员工作负担,提高工作效率,特别是在紧急排查问题情况下可快速定义异常数据所在的主机名、路径、文件名以及日志在文件中的偏移量,大幅度提高效率;另外,作为一个通用程序设计可灵活配置,适用于各项目场景。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (16)

1.一种ETL解析异常数据留存的方法,其特征在于,该方法包括:
步骤一,采集数据
开启filebeat程序,启动一个或多个探测器检测指定的日志目录或文件,对于探测器找出的每一个日志目录或文件,filebeat程序启动收割进程,每一个收割进程读取一个日志目录或文件的新内容,并发送这些新内容,汇总到logstash程序;
步骤二,处理数据
logstash程序收到filebeat程序发来的数据后,对数据执行转换和过滤的各种操作;
在处理数据时,通过不同的插件解析规则,并带上当前处理时间,记录元数据和异常日志数据的对应关系;
logstash程序记录异常日志对应元数据所在主机名、文件名和文件所在目录名信息,并将这些信息追加到异常数据中;
步骤三,将异常数据写入定义的目标存储。
2.根据权利要求1所述的ETL解析异常数据留存的方法,其特征在于,不同的插件解析规则,包括:
使用ruby插件自定义解析规则,json异常解析规则,grok异常解析规则以及其他异常解析规则。
3.根据权利要求2所述的ETL解析异常数据留存的方法,其特征在于,使用ruby插件自定义解析规则,包括:
通过logstash的ruby插件解析数据,校验字段的数据类型、字段数量、时间格式是否符合规则,如果不符合规则,则抛出异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
4.根据权利要求2所述的ETL解析异常数据留存的方法,其特征在于,json异常解析规则,包括:
通过logstash的json插件解析json格式的数据,对于无法解析的json字符串,抛出_jsonparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
5.根据权利要求2所述的ETL解析异常数据留存的方法,其特征在于,grok异常解析规则,包括:
通过logstash的grok插件基于正则表达式解析数据,对于无法解析的grok字符串,抛出_grokparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
6.根据权利要求2所述的ETL解析异常数据留存的方法,其特征在于,其他异常解析规则,包括:
对于mutate_error无法解析,抛出_mutate_error异常,对于dissect无法解析,抛出_dissectfailure异常,对于时间戳无法解析,抛出_timestampparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
7.根据权利要求1所述的ETL解析异常数据留存的方法,其特征在于,所述元数据使用ruby脚本解析。
8.一种ETL解析异常数据留存的装置,其特征在于,该装置包括:
采集数据模块,用于开启filebeat程序,启动一个或多个探测器检测指定的日志目录或文件,对于探测器找出的每一个日志目录或文件,filebeat程序启动收割进程,每一个收割进程读取一个日志目录或文件的新内容,并发送这些新内容,汇总到logstash程序;
处理数据模块,用于logstash程序收到filebeat程序发来的数据后,对数据执行转换和过滤的各种操作;在处理数据时,通过不同的插件解析规则,并带上当前处理时间,记录元数据和异常日志数据的对应关系;logstash程序记录异常日志对应元数据所在主机名、文件名和文件所在目录名信息,并将这些信息追加到异常数据中;
异常数据写入存储模块,用于将异常数据写入定义的目标存储。
9.根据权利要求8所述的ETL解析异常数据留存的装置,其特征在于,所述处理数据模块中不同的插件解析规则,包括:
使用ruby插件自定义解析规则,json异常解析规则,grok异常解析规则以及其他异常解析规则。
10.根据权利要求9所述的ETL解析异常数据留存的装置,其特征在于,使用ruby插件自定义解析规则,包括:
通过logstash的ruby插件解析数据,校验字段的数据类型、字段数量、时间格式是否符合规则,如果不符合规则,则抛出异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
11.根据权利要求9所述的ETL解析异常数据留存的装置,其特征在于,json异常解析规则,包括:
通过logstash的json插件解析json格式的数据,对于无法解析的json字符串,抛出_jsonparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
12.根据权利要求9所述的ETL解析异常数据留存的装置,其特征在于,grok异常解析规则,包括:
通过logstash的grok插件基于正则表达式解析数据,对于无法解析的grok字符串,抛出_grokparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
13.根据权利要求9所述的ETL解析异常数据留存的装置,其特征在于,其他异常解析规则,包括:
对于mutate_error无法解析,抛出_mutate_error异常,对于dissect无法解析,抛出_dissectfailure异常,对于时间戳无法解析,抛出_timestampparsefailure异常,并将日志是否正常的标识设置为2,标识该条日志为异常数据。
14.根据权利要求8所述的ETL解析异常数据留存的装置,其特征在于,所述处理数据模块中元数据使用ruby脚本解析。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任一项所述方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-7任一项所述方法的计算机程序。
CN202011266712.XA 2020-11-13 2020-11-13 一种etl解析异常数据留存的方法及装置 Pending CN112269825A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011266712.XA CN112269825A (zh) 2020-11-13 2020-11-13 一种etl解析异常数据留存的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011266712.XA CN112269825A (zh) 2020-11-13 2020-11-13 一种etl解析异常数据留存的方法及装置

Publications (1)

Publication Number Publication Date
CN112269825A true CN112269825A (zh) 2021-01-26

Family

ID=74340454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011266712.XA Pending CN112269825A (zh) 2020-11-13 2020-11-13 一种etl解析异常数据留存的方法及装置

Country Status (1)

Country Link
CN (1) CN112269825A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756440A (zh) * 2022-03-31 2022-07-15 星汉智能科技股份有限公司 智能卡的数据写入方法、装置、设备及存储介质
CN118468194A (zh) * 2024-07-10 2024-08-09 杭州古珀医疗科技有限公司 一种基于数据源到日志交叉比对的异常定位方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060037000A1 (en) * 2003-10-10 2006-02-16 Speeter Thomas H Configuration management data model using blueprints
US20160248792A1 (en) * 2015-02-25 2016-08-25 FactorChain Inc. Event context management system
CN107506451A (zh) * 2017-08-28 2017-12-22 泰康保险集团股份有限公司 用于数据交互的异常信息监控方法及装置
US20180165147A1 (en) * 2016-12-08 2018-06-14 Nec Laboratories America, Inc. Structure-level anomaly detection for unstructured logs
CN109582551A (zh) * 2018-10-11 2019-04-05 平安科技(深圳)有限公司 日志数据解析方法、装置、计算机设备和存储介质
CN110287163A (zh) * 2019-06-25 2019-09-27 浙江乾冠信息安全研究院有限公司 安全日志采集解析方法、装置、设备及介质
WO2019204616A1 (en) * 2018-04-18 2019-10-24 Fisher-Rosemount Systems, Inc. Quality review management system
CN110515912A (zh) * 2019-07-18 2019-11-29 湖南星汉数智科技有限公司 日志处理方法、装置、计算机装置及计算机可读存储介质
CN111078455A (zh) * 2019-12-24 2020-04-28 北京优特捷信息技术有限公司 基于时间轴的异常行为序列关联处理方法以及装置、设备、存储介质
CN111431926A (zh) * 2020-04-02 2020-07-17 深信服科技股份有限公司 一种数据关联分析的方法、系统、设备及可读存储介质
CN111866016A (zh) * 2020-07-29 2020-10-30 中国平安财产保险股份有限公司 日志的分析方法及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060037000A1 (en) * 2003-10-10 2006-02-16 Speeter Thomas H Configuration management data model using blueprints
US20160248792A1 (en) * 2015-02-25 2016-08-25 FactorChain Inc. Event context management system
US20180165147A1 (en) * 2016-12-08 2018-06-14 Nec Laboratories America, Inc. Structure-level anomaly detection for unstructured logs
CN107506451A (zh) * 2017-08-28 2017-12-22 泰康保险集团股份有限公司 用于数据交互的异常信息监控方法及装置
WO2019204616A1 (en) * 2018-04-18 2019-10-24 Fisher-Rosemount Systems, Inc. Quality review management system
CN109582551A (zh) * 2018-10-11 2019-04-05 平安科技(深圳)有限公司 日志数据解析方法、装置、计算机设备和存储介质
CN110287163A (zh) * 2019-06-25 2019-09-27 浙江乾冠信息安全研究院有限公司 安全日志采集解析方法、装置、设备及介质
CN110515912A (zh) * 2019-07-18 2019-11-29 湖南星汉数智科技有限公司 日志处理方法、装置、计算机装置及计算机可读存储介质
CN111078455A (zh) * 2019-12-24 2020-04-28 北京优特捷信息技术有限公司 基于时间轴的异常行为序列关联处理方法以及装置、设备、存储介质
CN111431926A (zh) * 2020-04-02 2020-07-17 深信服科技股份有限公司 一种数据关联分析的方法、系统、设备及可读存储介质
CN111866016A (zh) * 2020-07-29 2020-10-30 中国平安财产保险股份有限公司 日志的分析方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张军等: "基于正则表达式的日志解析系统构建研究", 《无线互联科技》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756440A (zh) * 2022-03-31 2022-07-15 星汉智能科技股份有限公司 智能卡的数据写入方法、装置、设备及存储介质
CN114756440B (zh) * 2022-03-31 2023-04-18 星汉智能科技股份有限公司 智能卡的数据写入方法、装置、设备及存储介质
CN118468194A (zh) * 2024-07-10 2024-08-09 杭州古珀医疗科技有限公司 一种基于数据源到日志交叉比对的异常定位方法和装置

Similar Documents

Publication Publication Date Title
US20190108112A1 (en) System and method for generating a log analysis report from a set of data sources
US8949799B2 (en) Program log record optimization
Ghoshal et al. Provenance from log files: a BigData problem
CN112269825A (zh) 一种etl解析异常数据留存的方法及装置
US7913233B2 (en) Performance analyzer
CN112711520A (zh) 异常日志信息的处理方法、装置、设备及存储介质
CN110134538B (zh) 快速定位问题日志的方法、装置、介质和电子设备
CN111478889B (zh) 一种告警方法及装置
EP3789882B1 (en) Automatic configuration of logging infrastructure for software deployments using source code
CN115865525B (zh) 日志数据处理方法、装置、电子设备和存储介质
CN112068981B (zh) Linux操作系统中基于知识库的故障扫描恢复方法及系统
CN110806966A (zh) 日志管理方法、装置、电子设备及计算机存储介质
CN109582504A (zh) 一种用于苹果设备的数据恢复方法和装置
CN110855461A (zh) 一种基于关联分析和规则库的日志分析方法
CN109902070B (zh) 一种面向WiFi日志数据的解析存储搜索方法
CN112714118B (zh) 网络流量检测方法和装置
CN113553295A (zh) 一种支持多种文件格式的数据预处理系统
CN111953519A (zh) 一种sdn网络流量可视化方法及装置
CN110727565B (zh) 一种网络设备平台信息收集方法及系统
CN110765089A (zh) 一种分布式设备及其日志记录方法、装置和存储介质
CN116483591A (zh) 应用于微服务架构的数据处理方法、装置、介质及设备
CN112543127A (zh) 一种微服务架构的监控方法及装置
CN114817300A (zh) 基于sql语句的日志查询方法及其应用
WO2021129849A1 (zh) 日志处理方法、装置、设备和存储介质
CN113342657A (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

Application publication date: 20210126

RJ01 Rejection of invention patent application after publication