自动生成web服务器日志解析规则

当前web服务器的多样化使得访问日志的数据清洗变得愈来愈复杂,企业须要投入专业的数据清洗人员编写数据清洗规则(解析规则或者解析正则),或者须要关心web服务器访问日志的生成规则。手写web服务数据解析规则存在如下3个问题:(1)须要投入专业技术人才完成编写,成本高;(2)人工书写解析规则容易犯错;(3)解析规则生成不可复用,新的web服务须要从新编写。若是能自动生成web服务器的日志,将大大提升web服务器日志接入和数据可视化过程。基于此,袋鼠云技术小组自研了日志解析规则自动生成组件,适用于nginx、apcahe、iis服务器,同时兼容相似这三种服务器日志规范的其余web服务器。如下内容将详细说明web日志解析规则自动生成的过程,关键步骤有图片演示。html

 

web服务器的日志每每有着必定的规范,好比nginx的日志规范如图所示,参见这里nginx

WEBRESOURCE7485e808caae471fcd9d6f23e9ba8

如上设置,日志内容将严格按照设定的字段顺序打印,缺失的字段会适用占位符,如符号‘-‘,各字段被分隔符依次分开。web

如下内容的基本原理是:浏览器

(1)日志取样,获取行日志分割符,把日志按照分隔符拆分;服务器

(2)依次解析分割后的字段,生成字段类型序列;3d

(3)按照字段类型和顺序,依次给字段命名,生成解析规则;日志

以上过程的流程图如图所示:htm

WEBRESOURCE6e9bece187f81edcc943452f293de

样例演示图片

使用如上的方法生成下图所示的nginx样例日志的解析规则:rem

WEBRESOURCEae910dd33e4c01aefa93957c3faab

 

 

首先进行字段拆分,按照字段顺序生成正则序列,以下图所示,样例日志中依次包含IP、时间、URL,数字和用户浏览器标识useragent字段;

WEBRESOURCE4392963022c11faf4cc6a29b82089

 

而后按照正则序列对字段进行映射,样例日志是nginx日志,nginx日志的默认类型和字段映射关系以下:

IP->remoteAddr,

TIMESTAMP->timeLocal,

URL->request,

NUM1->status,

NUM2->bodybytesSend,

USERAGENT->useragent;

映射以后生成默认解析规则,结果以下图所示,生成结束。

而后对生成的解析规则进行多轮检验并重复以上过程,最终生成匹配度最高的解析规则。

相关文章
相关标签/搜索