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

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

 

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

 

事情就是这样发生的——

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

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

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

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

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

如果能自动生成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;

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

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

 

浣熊说

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

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

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

 

 

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



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

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型