iLogtail专题六:实际场景采集模拟

2023-11-12

 公司一直使用的Filebeat进行日志采集
 由于Filebeat采集组件一些问题,现需要使用iLogtail进行代替
 现记录下iLogtail介绍和实际使用过程
 这是iLogtail系列的第六篇文章

背景:

由于平时日志采集存在堆栈信息日志情况,需要对日志进行正确分割。

前期准备:

准备日志打印程序并启动。输出日志信息如下:

2022-03-02 14:01:30.000 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值1

2022-03-02 14:01:30.000 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值2

2022-03-02 14:01:30.000 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值3

2022-03-02 14:01:30.006 ERROR 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : ERROR

java.lang.ArithmeticException: / by zero

        at com.ai.toptea.sysm.invilid.InvilidResource.invilidJob2(InvilidResource.java:35) ~[sysm-data-invilid-2.0.0.jar:2.0.0]

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_152]

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_152]

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_152]

        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_152]

        at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) [spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]

        at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]

        at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93) [spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_152]

        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152]

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152]

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152]

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152]

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152]

        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152]

2022-03-02 14:01:30.006 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值4

2022-03-02 14:01:30.006 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值5

采集配置:

多行日志在提交给插件部分时也需要使用 processor_split_log_regex 进行基于行首正则的切分,日期开头配置如下:

{

    "detail":{

        "SplitKey":"content",

        "SplitRegex":"\\d+-\\d+-\\d+ \\d+:\\d+:\\d+.*"

    },

    "type":"processor_split_log_regex"

}

 

采集到kafka中的数据,已将堆栈信息和error日志正常合并,可以满足日常采集需求。

{"Time":1646200910,"Contents":[{"Key":"content","Value":"2022-03-02 14:01:50.000 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值1\n"},{"Key":"@timestamp","Value":"@timestamp"},{"Key":"beat","Value":"beat"},{"Key":"fields","Value":"fields"},{"Key":"input_type","Value":"log"},{"Key":"offset","Value":"offset"},{"Key":"type","Value":"LOGTAIL_LOG"}]}

{"Time":1646200910,"Contents":[{"Key":"content","Value":"2022-03-02 14:01:50.000 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值2\n"},{"Key":"type","Value":"LOGTAIL_LOG"},{"Key":"@timestamp","Value":"@timestamp"},{"Key":"beat","Value":"beat"},{"Key":"fields","Value":"fields"},{"Key":"input_type","Value":"log"},{"Key":"offset","Value":"offset"}]}

{"Time":1646200910,"Contents":[{"Key":"content","Value":"2022-03-02 14:01:50.000 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值3\n"},{"Key":"@timestamp","Value":"@timestamp"},{"Key":"beat","Value":"beat"},{"Key":"fields","Value":"fields"},{"Key":"input_type","Value":"log"},{"Key":"offset","Value":"offset"},{"Key":"type","Value":"LOGTAIL_LOG"}]}

{"Time":1646200910,"Contents":[{"Key":"content","Value":"2022-03-02 14:01:50.001 ERROR 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : ERROR\n\njava.lang.ArithmeticException: / by zero\n\tat com.ai.toptea.sysm.invilid.InvilidResource.invilidJob2(InvilidResource.java:35) ~[sysm-data-invilid-2.0.0.jar:2.0.0]\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_152]\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_152]\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_152]\n\tat java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_152]\n\tat org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) [spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]\n\tat org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93) [spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_152]\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152]\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152]\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152]\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152]\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152]\n\tat java.lang.Thread.run(Thread.java:748) [na:1.8.0_152]\n\n"},{"Key":"input_type","Value":"log"},{"Key":"offset","Value":"offset"},{"Key":"type","Value":"LOGTAIL_LOG"},{"Key":"@timestamp","Value":"@timestamp"},{"Key":"beat","Value":"beat"},{"Key":"fields","Value":"fields"}]}

{"Time":1646200910,"Contents":[{"Key":"content","Value":"2022-03-02 14:01:50.001 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值4\n"},{"Key":"type","Value":"LOGTAIL_LOG"},{"Key":"@timestamp","Value":"@timestamp"},{"Key":"beat","Value":"beat"},{"Key":"fields","Value":"fields"},{"Key":"input_type","Value":"log"},{"Key":"offset","Value":"offset"}]}

{"Time":1646200910,"Contents":[{"Key":"content","Value":"2022-03-02 14:01:50.001 DEBUG 3049 --- [pool-5-thread-1] c.a.toptea.sysm.invilid.InvilidResource  : 输出正常值5"},{"Key":"type","Value":"LOGTAIL_LOG"},{"Key":"@timestamp","Value":"@timestamp"},{"Key":"beat","Value":"beat"},{"Key":"fields","Value":"fields"},{"Key":"input_type","Value":"log"},{"Key":"offset","Value":"offset"}]}

备注:

处理数据插件介绍可参考使用Logtail插件处理数据 - 日志服务 - 阿里云

尽量不要通过修改基础配置的方式实现,测试中修改基础设置未生效,查看源码后发现可能有所限制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iLogtail专题六:实际场景采集模拟 的相关文章

  • html5进阶

  • synchronized和ReentrantLock区别简介说明

    在多线程开发中 需要锁定指定代码块 使其在同一时间只能由一个线程运行 我们日常开发中常用的同步锁有 synchronized和ReentrantLock 那么他们两者之间到底有什么不同之处呢 下文笔者讲述synchronized和Reent
  • es 更新延迟

    es在更新之后并不是立即可见 可查询 的 会有1s的延迟 可以通过设置refresh interval参数来修改刷新的间隔 但是在实际应用中 1s的延迟已经算是很久了 在java high level client中 为index inse
  • MiniUI 的知识积累

    1 默认选中树的根节点 var tree mini get tree 1 tree selectNode tree getRootNode children 0 2 表格修改列头名称 div class mini fit div class
  • novel Ai (stable-diffusion-webui)安装

    关于novel ai的本地化安装 环境 英伟达显卡 win11 可以连接github并下载内容 安装 python 3 10 6及以上 安装并添加到path 安装cuDNN和CUDAToolKit 先更新主机的显卡驱动 检查系统的显卡驱动版
  • Java如何进行内存分配

    Java 虚拟机 JVM 负责管理 Java 应用程序的内存 在 Java 中 内存被划分为不同的区域 每个区域都有不同的用途 Java 中有两种主要的内存区域 堆和栈 功能 1 堆 堆是存储所有对象实例的内存区域 所有对象实例都存储在堆中
  • React之中的styled-components

    在react之中使用css不像vue之中那么方便 react官方也没有很统一的用法 下面是有关于styled component的使用 1 安装库 yarn add styled components 2 基本使用 在其中styled di
  • 深度学习中的epoch,batchsize,iteration都是什么?

    转载 https www jianshu com p e5076a56946c 一切的一切 要从机器学习中的梯度下降法说起 首先让我们来回顾一下这个常见的不能再常见的算法 梯度下降法是机器学习中经典的优化算法之一 用于寻求一个曲线的最小值
  • wxWidgets with quick-x

    前言 OSX下 Qt5 所生成应用包的大小有七八十兆大小 单独一个 debug 版本的可执行程序都有 15 7MB 再加上 QtCore QtGui QtOpenGL 等 framework 包大小分分钟上来 曾经发布过的 Qt5 2 qu
  • 微信公众号实现“一键关注”功能

    背景 之前用的一键关注要么通过图文 要么通过二维码 这样甚是麻烦 而且引导不到位 而看到朋友圈打广告的一些公众号可以直接关注 于是一直研究这个功能 今天终于实现了 分享给所有朋友 希望能帮助到所有朋友 这个引导关注的页面包含了公众号的log
  • 密码学之哈希算法

    1 哈希算法 哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值 这个小的二进制值称为哈希值 哈希值是一段数据唯一且极其紧凑的数值表示形式 如果散列一段明文而且哪怕只更改该段落的一个字母 随后的哈希都将产生不同的值 要找到散列为同
  • 滑动关机BAT脚本

    滑动关机脚本 1 脚本功能 增加一个一键关机的功能 点击这个按钮 即可滑动关闭电脑 非常酷炫好用 2 脚本内容 slidetoshutdown 3 使用方式 新建slideDown bat文件 编辑 把上面的脚本内容粘贴进去 然后双击执行s
  • MySQL(十三):分区表( Partitioning Table)

    文章目录 1 MySQL 分区简介 1 1 什么是分区表 1 2 分区表优点 1 3 分区表缺点 2 MySQL 分区类型 2 1 范围分区 RANGE 2 1 1 基于时间间隔的分区方案 2 1 1 1 按 RANGE 对表进行分区 2
  • Maven项目版本定义

    Maven使用占位符实现一处定义项目版本 使用 revision 定义整个项目的版本 方便修改 父pom
  • Java实现杨辉三角

    代码实现 package day01 public class yanghui public static void main String args 声明二维数组并初始化 int yanghui new int 10 给二维数组赋值 fo
  • jsp 新能源汽车论坛网Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一 源码特点 JSP 新能源汽车论坛网是一套完善的java web信息管理系统 对理解JSP java编程开发语言有帮助 系统具有完整的源代码和数据库 系统主要采用B S模式开发 开发环境为 TOMCAT7 0 Myeclipse8 5开发
  • 《如何为Android Studio安装HAXM》

    注意 当你在Android studio直接下载sdk和HAXM一些安卓环境依赖的文件时 会出现haxm文件已经下载 但未安装 导致启动avd模拟器不成功 如下图 emulator64 x86 avd 32 QVGA ADP2 API 25
  • Python爬虫实战——搭建自己的IP代理池

    如今爬虫越来越多 一些网站网站加强反爬措施 其中最为常见的就是限制IP 对于爬虫爱好者来说 能有一个属于自己的IP代理池 在爬虫的道路上会减少很多麻烦 环境参数 工具 详情 服务器 Ubuntu 编辑器 Pycharm 第三方库 reque
  • sql增删改查_Zhuo笔记:使用C#链接SQL数据库并进行增删改查操作

    一 首先使用SQL语句在建立数据库及表 二 在C 中做一个简单窗口以便对SQL数据库进行操作 三 编写代码进行SQL链接 1 C 访问SQL SERVER首先需要引用using System Data 和usingSystem Data S

随机推荐

  • 芯片IO口Driving能力(Sourcing Current)测试方法

    PMOS管测试步骤 Drive High Ability 1 将IO PAD配置成output模式 DUT供电电压为可正常工作的最低电压 如依datasheet允许 下降10 3 3V gt 2 97V 等 2 将IO PAD配置成最大Dr
  • 图文详解GPT-4最强对手Claude2的使用方法

    大家好 我是herosunly 985院校硕士毕业 现担任算法研究员一职 热衷于机器学习算法研究与应用 曾获得阿里云天池比赛第一名 CCF比赛第二名 科大讯飞比赛第三名 拥有多项发明专利 对机器学习和深度学习拥有自己独到的见解 曾经辅导过若
  • 基于粒子群算法优化LSTM的多输入单输出台风风电功率预测

    基于粒子群算法优化LSTM的多输入单输出台风风电功率预测 随着风电产业的快速发展 风电场的管理和运行越来越依赖于准确的风速信息和风力预测 因此 台风风电功率预测的研究变得越来越重要 在本文中 我们将使用粒子群算法 PSO 来优化长短期记忆网
  • spring-boot项目使用ulisesbocchio对配置文件敏感信息加密

    参考文献github官网地址 https github com ulisesbocchio jasypt spring boot 1 添加依赖 maven
  • kiel5编译报错error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.

    原因是startup xxx s文件只能保留其中一种 启动文件分别带有hd md ld和cl vl xl几种种字样 需要查看mcu的flash内存大小来选择 cl 互联型产品 stm32f105 107系列 vl 超值型产品 stm32f1
  • 世界各国英文简写一览表

    整理了一份世界各国英文简写表 供大家参考 country cName country code country eName 中国 CN China 中国台湾 W aiwan 中国澳门 MO Macao 中非共和国 CF he Central
  • 基于STM32c8t6的5路pwm占空比测量实验总结

    测量方式 1 正点原子例程里使用的方式 定时器通道的相关引脚输入捕获上升沿触发中断 在中断函数里 检测到上升沿之后TIM SetCounter TIMX 0 将计数器的值置零重新开始计数 同时将定时器中断触发方式切换为下降沿触发 待到下降沿
  • 嵌入式(TCP编程)

    TCP编程API 1 socket 函数 参数 2 bind 函数 如果是IPV6的编程 要使用 struct sockddr in6结构体 man 7 ipv6 通常更通用的方法可以通过struct sockaddr storage来编程
  • VulnHub渗透实战Billu_b0x

    简介 VulnHub是一个面向所有人开放的安全靶场 里面有很多安全环境 只要下载相关镜像 在相关虚拟机上面运行就可以练习相关靶场了 里面设计了好多关 如果有耐心一定可以到达峰顶 许多考oscp人员 也会利用vulnhub靶场进行刷题 我们下
  • pycharm缩进快捷键

    1 pycharm使多行代码同时右移缩进 鼠标选中多行代码后 按下Tab键 一次缩进四个字符 2 pycharm使多行代码同时左移 鼠标选中多行代码后 同时按住shift Tab键 一次左移四个字符
  • python函数和模块有什么特性_python-函数包和模块

    python函数的作用 在Python代码段中如果有一段几十行的代码 需要多次重复使用这几十行代码时 为了提高代码的可用性 将代码段放进函数体内 以后在使用中直接调用该函数模块即可 函数是一个独立的函数体或是一段独立的功能体 最主要的作用是
  • 头脑风暴会议的注意事项

    在组织内会经常召开头脑风暴的讨论会 如何举办一个成功的讨论会议呢 请看如下的30个要点 头脑风暴会议的注意事项 序号 分类 要点 1 会前 明确会议目的 议程 时间 地点 交通方式等 并确保通知到与会人员 以便参与者有充分准备 2 准备必要
  • 智能系统设计开发 java_一种基于java语言的智能系统设计与开发.doc

    一种基于java语言的智能系统设计与开发 doc 还剩 36页未读 继续阅读 下载文档到电脑 马上远离加班熬夜 亲 很抱歉 此页已超出免费预览范围啦 如果喜欢就下载吧 价低环保 内容要点 兰州交通大学毕业设计 论文 32参考文献 1 郭今吕
  • STM32 定时器的简单应用 1ms中断代码

    引言 利用定时器TIM8产生1ms中断 每中断一次 全局变量 1 计数到10即10ms 使得输出引脚翻转一次 芯片采用STM32F103VCT6 系统输入时钟12MHz 完成代码并用示波器输出 根据要求 本项目涉及系统时钟配置 中断源配置
  • 数据结构---冒泡排序

    冒泡排序 算法思想 代码实现 优化冒泡排序1 优化冒泡排序2 算法思想 把相邻的元素两两比较 当一个元素大于右侧相邻元素时 交换它们的位置 当一个元素小于或等于右侧相邻元素时 位置不变 每次冒泡 就把当前最大的元素弄出来了 冒泡排序是一种稳
  • Python 下载的 11 种姿势

    1 使用requests 你可以使用requests模块从一个URL下载文件 考虑以下代码 你只需使用requests模块的get方法获取URL 并将结果存储到一个名为 myfile 的变量中 然后 将这个变量的内容写入文件 2 使用wge
  • ES报错Native controller process has stopped - no new native processes can be started

    一 问题描述 在Linux中启动ES发现如下错误 Native controller process has stopped no new native processes can be started 问题如下所示 问题代码 2022 0
  • OS X Mavericks Server使用教程:安装设置

    2014年1月2日 51CTO外电头条 OS X Server 10 9增加了多项新服务 同时也通过调整让旧有服务更加易于使用 Mavericks运行Server app 3 0版本 OS X Server以更为友善的面貌亲近用户 OS X
  • springboot 事务回滚(*)

    springboot 事务回滚 springboot 事务使用 1 只有在开启事务的方法中出现异常 才会自动回滚 需要在service的public方法上面加上 Transactional rollbackFor Exception cla
  • iLogtail专题六:实际场景采集模拟

    公司一直使用的Filebeat进行日志采集 由于Filebeat采集组件一些问题 现需要使用iLogtail进行代替 现记录下iLogtail介绍和实际使用过程 这是iLogtail系列的第六篇文章 背景 由于平时日志采集存在堆栈信息日志情