技本功丨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

相关文章

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

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

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI