2019独角兽企业重金招聘Python工程师标准>>>

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

web服务器的日志往往有着一定的规范,比如nginx的日志规范如图所示,参见这里:

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

以下内容的基本原理是:

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

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

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

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

样例演示

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

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

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

IP->remoteAddr,

TIMESTAMP->timeLocal,

URL->request,

NUM1->status,

NUM2->bodybytesSend,

USERAGENT->useragent;

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

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

转载于:https://my.oschina.net/u/3611008/blog/2876082

自动生成web服务器日志解析规则相关推荐

  1. 2021年大数据ELK(二十二):采集Apache Web服务器日志

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...

  2. FTP服务器日志解析

    2019独角兽企业重金招聘Python工程师标准>>> FTP服务器日志解析 FTP是老牌的文件传输协议,在网络中应用非常广泛.本节就Vsftp服务器的日志进行重点讨论,在本书的FT ...

  3. 适合Web服务器的iptables规则

    适合Web服务器的iptables规则 --引自:http://www.centos.bz/2011/09/example-webserver-iptable-ruleset/ 以下为脚本内容: IP ...

  4. dump文件分析工具_使用这个 Python 工具分析你的 Web 服务器日志文件 | Linux 中国...

    导读:这个 Python 模块可以以多种格式收集网站使用日志并输出良好结构化数据以进行分析. 本文字数:3262,阅读时长大约:4分钟https://linux.cn/article-12512-1. ...

  5. 使用 Source Generator 自动生成 WEB API

    使用 Source Generator 自动生成 WEB API Intro 上次我们介绍了使用 Source Generator 的应用,有小伙伴留言说想要自动生成一套 ABP 相关的东西,我对 A ...

  6. IIS Web服务器日志、日志服务器分析

    IIS Web服务器日志.日志服务器分析     EventLog Analyzer是一款全面的工具,用于审计.管理和跟踪您的Microsoft Internet Information Servic ...

  7. web服务器日志分析

    转自: Web服务器日志统计分析完全解决方案 管理Web网站不只是监视Web的速度和Web的内容传送,它要求不仅仅关注服务器每天的吞吐量,还要了解对这些Web网站的外来访问,了解网站各页面的访问情况, ...

  8. 一个自动生成web和微服务项目代码工具sponge

    sponge 是一个快速生成web和微服务项目代码工具,也是一个基于gin和grpc封装的微服务框架.sponge拥有丰富的生成代码命令,一共生成12种不同功能代码,这些功能代码可以组合成完整的服务( ...

  9. 分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)

    1.手动指定document id (1)根据应用情况来说,是否满足手动指定document id的前提: 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据 ...

最新文章

  1. PHPRAP v1.0.8 版本发布,安装时数据库不存在自动创建
  2. Eclipse使用技巧 快捷键
  3. ECC椭圆曲线算法(2)初步介绍
  4. 从helloworld回顾程序的编译过程之三——静态链接
  5. java中menu用法_Android Menu用法全面讲解
  6. innerHTML和innerText的使用和区别
  7. java操作hbase使用hbase-client2依赖
  8. 拼音打字时不定时出现重复字母
  9. N32G457VEL7移植FreeRTOS代码
  10. kubernetes-StorageClass介绍
  11. NLP专题直播 | 详谈词向量技术:从Word2Vec, BERT到XLNet
  12. GridView分页详解
  13. HTTP中Get、Post、Put与Delete的区别
  14. ssm+java企业公司产品分销商管理系统
  15. 集合2:方法和运算符—适用set/frozenset(上)
  16. 2020十一届大学生服务外包大赛分析与经验分享
  17. 203. 电子编程入门到工程师--逆推原理图(电源部分)
  18. Win10 清除 PowerShell 历史记录
  19. ntp实现多台服务器时间同步[实测]
  20. 加减乘除计算机英语,英语里的加减乘除

热门文章

  1. 武侠乂服务器位置在哪,武侠乂手游秘境在哪里 地图秘境宝藏分布位置大全
  2. 下载nodejs的mysql安装包下载安装_Node.js安装 下载
  3. [HZNOI #koishi] Magic
  4. ACM10.14题解
  5. Express + Element-ui 实现图片/文件上传
  6. C# 多线程及同步简介示例
  7. css 相对定位 ie7问题
  8. JQuery AJAX提交中文乱码的解决方案
  9. 递归函数实现二分查找法
  10. python---重点(设计模式)