web服务器不生成DT文件了,技本功丨web服务器日志自动解析工具不是唯一的工具,但却承包了我最深沉的爱!...

本文主要是介绍web服务器不生成DT文件了,技本功丨web服务器日志自动解析工具不是唯一的工具,但却承包了我最深沉的爱!...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

61a093bec13c5f0e43ebea3940e77b80.png

曾经有个web服务器日志自动解析工具摆在我面前,我没有珍惜。等我失去的时候我才追悔莫及,人世间最痛苦的事莫过于此。

9166bad72aa2bf40bed08be80f64f1f8.png

事情就是这样发生的——

当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂,企业需要投入专业的数据清洗人员编写数据清洗规则(解析规则或者解析正则),或者需要关心web服务器访问日志的生成规则。

手写web服务数据解析规则存在以下3个问题:

1、需要投入专业技术人才完成编写,成本高;

2、人工书写解析规则容易犯错;

3、解析规则生成不可复用,新的web服务需要重新编写。

如果能自动生成web服务器的日志,将大大提高web服务器日志接入和数据可视化速度。于是我打算好好研究一番,看看怎么可以实现,浣熊大神知晓后,对我说:你可以试试袋鼠云web服务器日志自动解析工具。

当时,我自我牛逼地觉得凭自己的技术实力,完全可以不用借助啥子工具。但是,当我听到浣熊大神详细介绍完袋鼠云技术团队自研的日志解析规则自动生成组件,听到它不仅适用于nginx、apcahe、iis服务器,同时兼容类似这三种服务器日志规范的其他web服务器后,我当场就震惊了!

ecfe26760ab88d3f295d3a1f625deeed.png

如果上天能够给我一个再来一次的机会,我会对袋鼠云日志团队的浣熊说四个字:请给我用,如果非要在前面加上一个期限,我希望是……一万年……

545bbe01a367a4e60b26bbb1d0452fad.png

独乐乐不如众乐乐,所以在此特地将浣熊大神的技术笔记(以下内容将详细说明web日志解析规则自动生成的过程,关键步骤有图片演示)和总结发言分享给大家,收好不谢!

4b8b760ab983e45e17bc3132bc637921.png

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

0e6e65d2f09e9d2a6cf8570b8a48531a.png

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

以下内容的基本原理是:

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

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

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

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

cf2cff313c9baa69b628b2e146718e9b.png

样例演示

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

a3fd762bc6d97f6d61282a965b73ac77.png

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

7f06657dece61b3bed607810709a5959.png

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

IP->remoteAddr,

TIMESTAMP->timeLocal,

URL->request,

NUM1->status,

NUM2->bodybytesSend,

USERAGENT->useragent;

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

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

a02c4d444aa0d604c9b3caea5ccec0f2.png

浣熊说

(1)本发明提供的web服务器访问日志解析规则自动生成的方法,配置简单,自动化生成解析规则,且适用于主流web服务器访问日志,减少人为编写解析规则的负担。

(2)本发明提供的web服务器访问日志自动解析系统,一键生成web访问日志数据透析仪表板,降低企业分析日志的难度。

(3)基于以上方法,袋鼠日志帮助企业实现了在分钟内搭建web服务器日志可视化场景。

687adb7540274b61ee858b3fca295260.png

这篇关于web服务器不生成DT文件了,技本功丨web服务器日志自动解析工具不是唯一的工具,但却承包了我最深沉的爱!...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/272776

相关文章

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、