Logtail从入门到精通(四):正则表达式Java日志采集实战

摘要: 为简化日志接入门槛,我们提供了极简模式的日志解析方式(如[开启日志采集之旅]()中的介绍)。为了更好的对日志进行分析,我们还提供了其他解析方式,例如:分隔符模式、完整正则模式、JSON模式等。本文将为大家介绍如何使用完整正则解析模式。

前言

为简化日志接入门槛,我们提供了极简模式的日志解析方式(如[开启日志采集之旅]()中的介绍)。为了更好的对日志进行分析,我们还提供了其他解析方式,例如:分隔符模式、完整正则模式、JSON模式等。本文将为大家介绍如何使用完整正则解析模式。

日志解析介绍

日志采集最终目的还是为了分析,通常分析都要基于结构化或半结构化的数据,因此日志解析是整个日志解决方案中非常重要的一个部分。解析可以理解为从无结构化到半结构化的过程,即将文件中一行或多行文本变为一个个key&value对。

示例

例如对以下日志/log/error.log:

[2018-05-11T20:10:16,000] [INFO] [SessionTracker] [SessionTrackerImpl.java:148] Expiring sessions
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8E\x8F",...' for column 'data' at row 1
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
at org.springframework.jdbc.support.AbstractFallbackSQLException

可以解析成

time : 2018-05-11T20:10:16,000
level : INFO
method : SessionTracker
file : SessionTrackerImpl
line : 148
message : Expiring sessionsjava.sql.SQLException: Incorrect string value: '\xF0\x9F\x8E\x8F",...' for column 'data' at row 1at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)at org.springframework.jdbc.support.AbstractFallbackSQLException

解析所处阶段

对于不同的产品,日志解析在整个链路中所处的位置会有一定的区别,一般分为两类:schema on write 和 schema on read

  1. schema on write 是在进入存储系统前就已经将数据半结构化完毕。例如ES、GrayLog、MaxCompute等
  2. schema on read 在写入时并不进行解析,只存储原始数据,当读取时再进行解析。例如Splunk、Sumologic

关于schema on write 还是 schema on read 的比较这里就不再展开,目前日志服务是采用的schema on write形式,Logtail在写入前会将原始日志解析成Key&Value对。

解析方式

Logtail会不定期增加新的解析方式,具体可参考文本日志采集。

正则解析配置

正则解析配置流程如下文所示,下面我们将以解析/log/error.log为示例来向大家介绍如何使用正则方式解析日志。


创建正则模式采集配置

  1. 在Logstore列表页面中,点击待存储logstore的数据接入向导图标。
  2. 选择自建软件中的文本文件
  3. 在跳转的采集配置页面中选择完整正则模式




正则解析配置

自动配置

为尽可能减轻您的配置负担,我们提供了自动生成的配置方式,您可以使用鼠标点击、拖拽即可完成采集配置。具体配置请参考以下视频(地址:http://cloud.video.taobao.com//play/u/3220778205/p/1/e/6/t/1/50132666711.mp4):

手动配置

自动生成正则的配置方式较为简单,但有可能存在以下情况:

  1. 生成的正则并不一定能完全匹配您的日志模式
  2. 某些复杂的日志样例无法自动提取出可用模式
  3. 自动生成的正则匹配效率无法达到最优

因此某些情况下您还需要手动去提取正则。Logtail支持的是PCRE方式的正则表达式,建议您使用一些正则表达式工具进行编写和调试,例如regextester, regex101等

手动配置正则模式主要分为下述三个过程

配置行首正则

对于Java应用中的程序日志,一条日志通常会跨越多行,因此只能通过日志开头的特征区分每条日志行首。这里我们的示例是一个典型的Java错误堆栈日志,因此需要配置行首正则表达式。

  • 注意:行首正则表达式需要完整匹配一行,因此一般在表达式最后加上.*


解析字段

通过行首正则能够从原始文件中将日志一条条切分出来,接下来需要将切分后的整条日志再次分解成key&value对。

  • 注意:需要提取的字段用()包裹;key不要填在正则中,直接在控制台输入


提取时间

每条日志在服务日志都必须包括该日志发生的时间戳信息。Logtail默认会将采集时间作为日志时间。如果您的日志中有时间信息,建议配置时间提取规则,将日志时间映射为日志服务中的日志时间戳。

Logtail时间解析使用的是UNIX的strftime规则,具体请参考配置时间格式

  • 注意:时间默认从日志key中的time字段提取


数据采集效果


相关文档和参考

正则表达式采集配置

配置时间格式

索引与查询简介

schema-on-read-vs-schema-on-write-1

schema-on-read-vs-schema-on-write-2

原文链接

本文为云栖社区原创内容,未经允许不得转载。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue中的条件渲染

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue中的条件渲染</title><!--引入vue.js库--><script src"../vue.js"></script> </head><body> <d…

多隆:淘宝第一行代码撰写者的程序世界

他2000年加入阿里巴巴&#xff0c;是淘宝的创始人之一&#xff0c;是阿里内部公认的技术大牛&#xff0c;在阿里内网上他被贴得最多的标签就是“神”。在第二届研发效能嘉年华中他将在“向代码致敬&#xff0c;寻找83行代码”活动颁奖盛典中华丽现身&#xff0c;他就是“码神”…

通信工程到底要不要转专业?

戳蓝字“CSDN云计算”关注我们哦&#xff01;一年一度的大学新生报名季又开始了。各地高校陆陆续续迎来了新同学&#xff0c;有的甚至已经开始了军训。每年看到这些怀揣着梦想的年轻面孔&#xff0c;小枣君就非常感慨——时光飞逝&#xff0c;岁月无情&#xff0c;自己的青春&a…

真相!30K拿到互联网大厂offer,网友:我服了!

最近笔者在知乎刷到一个帖子&#xff0c;其中&#xff0c;这条回答让人印象深刻&#xff1a;其实&#xff0c;最近几年人工智能大火&#xff0c;其中深度学习岗位的薪酬爆增&#xff0c;BAT大厂高薪招聘AI人才&#xff0c;收到的简历却寥寥无几&#xff1f;究竟是大厂岗位要求高…

鸿蒙 OS 的到来,能为我们改变什么?| 程序员大本营9月刊

作者 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;「鸿蒙初辟原无姓&#xff0c;打破顽空需悟空」&#xff0c;在国产自研操作系统短缺的窘境之下&#xff0c;天惊一声雷&#xff0c;「鸿蒙」踏风来。回首上个月的技术圈&#xff0c;最值得业界浮称流说的…

注释那些事儿:前端代码质量系列文章(一)

摘要&#xff1a; 好的注释可以提高代码的可读性和可维护性&#xff0c;从而提高代码质量。那么什么是好的注释&#xff1f;如何写出好的注释&#xff1f;“Comment or not comment, that is the question”好的注释可以提高代码的可读性和可维护性&#xff0c;从而提高代码质量…

linux 给普通用户赋予最高权限

文章目录一、创建新用户二、给新用户设置密码三、赋予sudoers文件写的权限四、编辑sudoers文件五、删除sudoers文件写的权限一、创建新用户 useradd know二、给新用户设置密码 passwd know三、赋予sudoers文件写的权限 chmod uw /etc/sudoers四、编辑sudoers文件 vim /etc/…

php裁剪图片并上传源码,改写jcrop插件+php的图片上传实现与裁剪一体化

1.图片上传后立刻判断图片的宽和高是否超过预设的最大高度与宽度&#xff0c;超过了则生成缩略图&#xff0c;2.图片裁剪使用的是jquery的裁剪插件Jcrop,可以实现裁剪的即时预览&#xff0c;代码没有优化&#xff0c;会生成很多垃圾图片&#xff0c;欢迎大家一起改进&#xff0…

人工智能和机器学习的前世今生

摘要&#xff1a; 阅读本文以了解更多关于人工智能、机器学习和深度学习方面的知识&#xff0c;以及它们对商业化意味着什么。如果正确的利用模式识别进行商业预测和决策&#xff0c;那么会为企业带来巨大的利益。机器学习&#xff08;ML&#xff09;研究这些模式&#xff0c;并…

30 岁程序员生活图鉴,怎样算是活成了理想的模样?

戳蓝字“CSDN云计算”关注我们哦&#xff01;文 | 年素清来源 | 程序人生第一批90后已近而立&#xff0c;相信他们中的每个人在年少的时候都曾经憧憬过长大后的图景&#xff1a;做医生当老师做大官&#xff0c;开飞机打怪兽赚大钱……程序员&#xff08;媛&#xff09;们自然也…

深度学习技巧与窍门

摘要&#xff1a; 本文是根据自身构建深度学习模型总结而来&#xff0c;适合有一定深度学习基础的读者阅读。本文是根据自身构建深度学习模型总结而来&#xff0c;可能读起来比较干巴&#xff0c;但干货确实不少。闲话少叙&#xff0c;直接进入相关内容。首先&#xff0c;为什么…

让我再撸一次HashMap

戳蓝字“CSDN云计算”关注我们哦&#xff01;对于JAVA求职者来说&#xff0c;HashMap可谓是集合类的重中之重&#xff0c;甚至你在复习的时候&#xff0c;其他集合类都不用看&#xff0c;专攻HashMap即可。然而&#xff0c;鉴于网上大部分的关于HashMap的面试方向文章&#xff…

负载均衡SLB新功能介绍

摘要&#xff1a; 随着网络的各个核心部分业务量的提高&#xff0c;访问量和数据流量的快速增长&#xff0c;其处理能力和计算强度也相应地增大&#xff0c;使得单一的服务器设备根本无法承担。通过负载均衡扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、…

架构师必备技能:教你画出一张合格的技术架构图

戳蓝字“CSDN云计算”关注我们哦&#xff01;当我们想用一张或几张图来描述我们的系统时&#xff0c;是不是经常遇到以下情况&#xff1a;对着画布无从下手、删了又来&#xff1f;如何用一张图描述我的系统&#xff0c;并且让产品、运营、开发都能看明白&#xff1f;画了一半的…

人工智能让边缘计算更有价值!

摘要&#xff1a; 继云计算之后&#xff0c;边缘计算这把火你了解多少&#xff1f;来了解一下吧。3月28日&#xff0c;在2018云栖大会深圳峰会上&#xff0c;阿里云宣布2018年将战略投入到边缘计算技术领域&#xff0c;并推出了首个IOT边缘计算产品Link Edge,将阿里云在云计算、…

硬件测试工程师之EMC项目-电磁干扰-谐波测试的引文

1&#xff1a; 介绍EMC项目-谐波测试 1.1引入文章 硬件测试工程师所面对的测试产品&#xff0c;尤其对于EMC来说&#xff0c;测试的种类很多&#xff0c;都是电器居多&#xff0c;例如电磁炉&#xff0c;USB适配器&#xff0c;空调&#xff0c;开关驱动&#xff0c;智能挂壁式…

儿童节,5岁宝宝写给程序员爸爸的一封信!萌翻了!

摘要&#xff1a; 六一儿童节到了&#xff0c;云栖社区特别采访了几位可爱的宝宝&#xff0c;来分享他们眼中的程序员爸爸妈妈。六一儿童节到了&#xff0c;云栖社区特别采访了几位可爱的宝宝&#xff0c;来分享他们眼中的程序员爸爸妈妈。最后一位宝宝的回答&#xff0c;萌翻了…

外部jar包_大数据系列之PySpark读写外部数据库

本文以MySQL和HBASE为例&#xff0c;简要介绍Spark通过PyMySQL和HadoopAPI算子对外部数据库的读写操作1、PySpark读写MySQLMySQL环境准备参考“数据库系列之MySQL主从复制集群部署”部分1.1 PyMySQL和MySQLDB模块PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库&#x…

Vue + Spring Boot 项目实战(二):使用 CLI 搭建 Vue.js 项目

文章目录一、安装 Vue CLI二、构建前端项目2.1.创建一个基于 webpack 模板的项目2.2. 安装图解2.3. 项目结构总览2.4. 运行项目2.5. 浏览器验证项目GitHub 地址&#xff1a; https://github.com/Antabot/White-Jotter在动手操作之前&#xff0c;我希望大家已经清楚什么是 “前后…

这本销量突破70W+的 Python 插画式书籍,凭什么这么火?

戳蓝字“CSDN云计算”关注我们哦&#xff01;最近不管我在互联网看新闻、看视频或者看公众号文章&#xff0c;甚至我在淘宝的时候都会看到一个词&#xff0c;那就是“Python”&#xff0c;我也不知道我对它做了什么&#xff0c;为什么老是给我推送Python&#xff1f;甚至我和程…