filebeat收集java程序多行报错

ELK+filebeat+kafka日志收集 我们主要完成在Docker环境下部署 Filebeat 日志收集工具,他是搭建ELK日志非常重要的一部分,我们利用Filebeat日志收集完成之后,将数据写入 Elasticsearch 后用 Kibana 进行可视化展示,目前我们已经完成了Fliebeat + Es +Kibana部分。 阅读详情

1.什么是java程序多行报错

一个java程序报错往往是一个事件,这个报错并不是一行就能展示完的,几乎需要几十行才能展示完这个报错内容,对于filebeat来说,filebeat每次都是把一行看成了一个日志,那么对于java多行报错就不是很友好了,即使收集过来也是将一个事件的报错日志分成很多行在kibana上展示,这样对于开发人员来看日志就很头疼了

如果对于多行报错的日志还用传统的收集方法,就像下图一样,完全不知道报错是什么了,不管谁看这个日志都需要去对比

多行报错日志:一般的报错日志都是1行就可以显示完整,但是有一些像java的项目一行就显示不完整报错内容,往往是多行一起分析才能看出来报错的内容

只要是需要将多行报错连在一起的日志都属于多行报错型日志

多行报错型日志收集方案:一个报错肯定是以xxx开头,到下一个xxx的时候结束,我们可以通过匹配规则,匹配到xxx,只要下一行日志内容不是xxx,就都连在一起,直到遇到下一个xxx为止

tomcat java报错日志举例

这就是一个典型的多行报错的日志

可以看到它就是以时间开始的,现在是20xx年嘛,所以可以匹配只要是以20开头的行,只要下一行不是20开头,就集合在一起,直到遇到下一个20就结束

2.配置filebeat收集多行tomcat程序java多行报错

部分配置项进行说明:

multiline.pattern: '^20' //多行匹配规则,以xxx开头的,使用正则表达式 multiline.negate: true //值为true或flase,使用flase表示将匹配到的行合并到上一行,使用true表示将不匹配的行合并到上一行(用true的一般比较多,因为多行报错,肯定不是匹配的行合并在一起,那样就没有详细信息了) multiline.match: after //值为after和befor,使用after表示合并到匹配行的上一行末尾,使用before表示合并到匹配行的行首(一般就是after,合并到匹配行的上一行末尾就可以了)

2.1.配置filebeat收集多行报错

<pre class="prettyprint hljs vim" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">1.修改配置文件
[root@nginx02 /etc/filebeat]# vim filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data/tomcat/logs/catalina.out
  multiline.pattern: '^20'                  #多行匹配规则
  multiline.negate: true                    #将不匹配的规则的行合并在一起
  multiline.match: after                #合并到匹配规则的上一行末尾
  tags: ["java"]

output.elasticsearch:
  hosts: ["192.168.81.210:9200"]
  indices:
    - index: "tomcat-java-%{+yyyy.MM.dd}"
      when.contains:
        tags: "java"

2.重启filebeat
[root@nginx02 /etc/filebeat]# systemctl restart filebeat

2.2.制造java多行报错

随便打开配置文件,改错一个地方,来回启动就有了报错日志

<pre class="prettyprint hljs perl" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">[root@nginx02 /data/tomcat]# vim conf/server.xm
<ssssServer port="8005" shutdown="SHUTDOWN">

[root@nginx02 /data/tomcat]# ./bin/startup.sh 

2.3.查看es是否创建索引并产生数据

已经有了153条数据

3.在kibana上关联es索引并统计日志

3.1.关联索引

点击Managerment---索引模式---创建索引

创建成功

3.2.查询java多行报错日志

点击Discovery---选择java索引---搜索ERROR就可以看到java多行的报错日志了,可以明显看到,行变的高了,多行日志也就说明合并在了一起

SkyWalking日志收集实战:三种模式详解与Filebeat集成指南 在分布式系统监控领域,链路追踪与日志分析是两大核心支柱。链路追踪能够描绘请求在微服务间的调用路径,而日志则记录了每个服务节点内部的详细执行信息。将两者关联起来,是实现从宏观链路到微观根因分析的关键技术。其核心原理是通过统一的Trace ID上下文,将分散的日志条目与特定的请求链路绑定。这种关联技术能极大提升故障排查效率,让开发运维人员无需在多个系统间切换,即可完成端到端的诊断。在实际工程中,主要有三种实现模式:通过Agent实时上报、使用Filebeat等采集器推送文件日志、以及借助Kafka等消息队列构建 阅读详情

相关推荐

Filebeat收集JAVA堆报错日志

上面的这一段日志就是一个典型的JAVA堆多行报错内容了,可以看到这个事务中是有很多行组成的,使用传统的日志收集,这四行堆日志是单独作为一行采集的,在kibana呢,这四行也是单独展示的,脱离了上下文的显示,非常不利于日志的一个分析。将正则匹配出的堆日志内容合并到上一行的开头或者末尾,after表示开头,before表示结尾,这个参数可以将我们匹配出的内容与不匹配的行合并在一起,也就形成了将举例日志内容的4行全部合并到了一起,达成了我们想要的效果。可以增加一个message字段,只查看日志的内容。...

江晓龙的博客 1548

filebeat收集java程序多行报错(八)

filebeat收集java程序多行报错 1.什么是java程序多行报错 一个java程序报错往往是一个事件,这个报错并不是一行就能展示完的,几乎需要几十行才能展示完这个报错内容,对于filebeat来说,filebeat每次都是把一行看成了一个日志,那么对于java多行报错就不是很友好了,即使收集过来也是将一个事件的报错日志分成很多行在kibana上展示,这样对于开发人员来看日志就很头疼了 如果对于多行报错的日志还用传统的收集方法,就像下图一样,完全不知道报错是什么了,不管谁看这个日志都需要去对比 多行

江晓龙的博客 1555

ELK日志分析系统之使用multiline合并多行显示

目录一、前言二、multiline 的使用1.使用 logstash-codec-multiline 插件2.使用 logstash-filter-multiline 插件3.使用 Filebeat 一、前言 本博在 ELK日志分析系统之集成Filebeat 一文中,介绍了使用 Elasticsearch、Logstash、Kibana、Filebeat 来搭建 ELK 。但是搭建后发现输出的日志都是单行的,一条日志占多行的情况也是分开多行显示,显得非常凌乱。为此,我们引入 multiline 来实现合并

邓邓子的博客 4905

FileBeat系列:multiline的pattern negate match使用方法

Java Stack Exception后面行都是以空白开始的。 Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Book.getTitle(Book.java:16) at com.example.myproject.Author.getBookTitles(Author.java:25) at com.example...

NIO4444 8030

efk7.13搜集java日志-filebeat配置详解

efk7.13搜集java日志—filebeat配置详解笔记总结

瑞萨单片机,把CS文件转换为CC

1、打开CC的软件: 点击坐上角的"START" 点击"Create New Project"的"GO": 导入工程: 如下图设置后,点击"Create" 2、进入到CC的开发界面: 可以看到原启动库文件以asm文件的方式直接出现在工程中: 删除新生成的main.c,保留导入的r_main.c(以你自己的代码为准): 注意添加所有的头文件路径: 点击"...

weixin_37611121的博客 1227

filebeat管理java多行日志

一,前言 默认kibana显示的日志为分行,显示起来非常难看,使用filebeat合并java报错多行日志 二,配置 exclude_lines: ['HEAD'] exclude_lines: ['HTTP/1.1'] multiline.pattern: '^[[:space:]]+(at|\.{3})\b|Exception|捕获异常'...

Vv的博客 1582

16.ELK-filebeat收集java日志

filebeat收集java日志 查询官网文档,解决如何收集多行报错的日志信息 https://www.elastic.co/guide/en/beats/filebeat/6.6/multiline-examples.html 1.安装个java写的应用,这里用ES来顶替java应用 2…修改ES的配置文件,人为的制造一些错误日志 vim /etc/elasticsearch/elasticsearch.yml 3.启动ES服务 systemctl restart elasticsearch 4.编辑f

JCWang的博客 1224

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

Visionpro 使用CogPMAlignTool工具提取匹配轮廓点

【代码】Visionpro 使用CogPMAlignTool工具提取匹配轮廓点。

weixin_43947315的博客 2091

Linux从入门到放弃 filebeat收集java日志

1、部署java环境 1、部署一个java环境 rpm -ivh jdk-8u102-linux-x64.rpm 2、安装es服务 rpm -ivh elasticsearch-6.6.0.rpm 3、配置jvm使用的内存,及修改es的配置文件 vim /etc/elasticsearch/jvm.options -Xms256m -Xmx256m vim /etc/elasticsearch/elasticsearch.yml aaanode.name: node-1 4、启动es服务,发现服务无

欠了三年一场梦的博客 621

【雕爷学编程】Arduino智慧交通之RF24通信实现车队之间的实时通信和协调

通过这些示例,车队领导可以发送指令给车队成员,车队成员可以接收指令并执行相应的操作,同时车队成员也可以发送自己的位置信息给车队领导或其他成员,以实现车队之间的实时通信和协调。例如,在高速公路上,车队中的车辆可以根据前方车辆的速度和位置信息,自动调整自身的速度和距离,以保持车队的整体稳定和安全。Arduino智慧交通系统利用RF24通信模块实现车队之间的实时通信和协调,通过无线通信技术,车辆之间可以实时传输数据和指令,以实现车队的协同行驶和交通优化。通过数据处理和分析,可以生成实时的交通信息和统计数据。

雕爷学编程 1074

elk(filebeat)日志收集工具

elk:filebeat日志收集工具 和logstash相同filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多filebeat可以运行在非Java环境。他可以代理logstash在非java环境上收集日志filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用filebeat收集的数据可以发往多个主机,即远程收集。

wyh20030130的博客 1831

23、关联挖掘到相关性分析及约束关联挖掘详解

本文详细解析了从关联挖掘到相关性分析的发展过程,以及基于约束的关联挖掘方法。文章介绍了传统支持-置信度框架的局限性,并引入Lift、χ2、All Confidence和Cosine等度量来评估规则的相关性。同时探讨了多种规则约束在数据挖掘中的应用机制及其优化效果,旨在提高挖掘效率和规则质量。最后结合实际案例说明如何综合运用相关性度量与规则约束以满足业务需求,并展望了数据挖掘技术的未来发展。

aa123的博客 102

46、聚类算法在智能交通数据分析中的应用

本文探讨了聚类算法在智能交通数据分析中的应用,介绍了K-均值算法、K-中心点算法和基于模型的聚类算法的基本原理及特点,并结合实际交通数据讨论了其应用场景与挑战。通过聚类分析,能够从海量交通数据中发现隐藏模式,为交通管理和规划提供科学依据。文章还展示了具体的案例分析和实现流程,为未来智能交通系统的发展提供了参考。

zz67890的博客 133

ELK-filebeat+kafka日志收集

环境 centos6.9 ELK5.6 所有节点都是单点非集群 filebeat:10.99.2.16 elk:10.99.2.17 kafka:10.99.2.23 官方文档 软件下载 ELK5.6.7-rpm java1.8-rpm es安装 yum安装java环境和es: yum install elasticsearch-5.6.7.rpm jre-8u161-linux-x

Gmoon23的博客 1958

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Filebeat多行日志合并实战:解决Java堆栈、Docker JSON等跨行日志切分问题

日志多行结构(如Java异常堆栈、Docker多行JSON、Nginx长请求体、Python traceback)是现代应用的典型输出特征,其本质是单逻辑事件跨越多物理行。Filebeat默认逐行解析会破坏上下文完整性,导致ES索引碎片化、告警失准与排查困难。核心原理在于通过正则识别日志事件边界——以multiline.pattern定义‘新事件起点’,配合negate和match控制缓存方向,实现事件级重组而非简单拼接。该能力直接决定日志可观测性的基础质量,在ELK/EFK日志管道中属于不可绕过的预处理环

weixin_34335458的博客 228

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

k8s中filebeat使用multiline合并日志

介绍 业务上线到k8s,日志接入到elfkk,filebeat收集pod日志方法见这里。 由于日志中有java的报错日志,还有sql的查询语句,导致kibana展示日志时,一行sql就是一条日志,占用大量空间不说,还不方便查询。 这个时候需要用到multiline,这个参数,可以在logstash中配置,也可以在filebeat中配置,经过测试,logstash中,存在无序及不完整性,这里不过多阐...

xp的博客 1796

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

filebeat使用kafka作为input(filebeat从kafka中读取数据)报错解决

项目场景: filebeat 7.10 kafka 0.11 windows 10 filebeat使用kafka作为input,从kafka读取数据到ElasticSearch 官方文档 问题描述: 根据kafka input 官方文档配置好filebeat.yml,并启动filbeat从指定kafka的某topic读取数据。 kafka的配置是正常的,已经在其它环境尝试过生产\消费数据。 filbeat报如下错误: ERROR [kafka input] kafka/input.go:155

soulfire的博客 3674

搭建es+kibana+logstash+filebeat 日志收集分析

架构: 10.6.14.77 es,kibana,logstash (三项默认的配置均为localhost,起在同一台服务器不再需要修改) 10.6.13.116 filebeat 10.6.13.210 filebeat 分别收集两台服务器的日志 版本: es 6.2.3 kibana 6.2.3 logstash 6.2.3 filebeat 6.3.2 前置:...

2370

filebeat收集日志+kibana配置索引检索规则

整体流程--filebeat收集日志后 kibana对收集的filebear日志做可持续化的分析 前置--ELKB安装(Elasticsearch+logstash+kibana+filebeat)_T_james的博客-优快云博客本篇博客主要是为了搭建ELKB的运行环境 旨在对线上多台服务器的日志进行获取分析 解决日常运行查看中的痛点 前置准备:1.安装jdk环境--java -version2.下载相关的压缩包或者获取对应的rpm文件 本文采取前者 官网tar下载路径:Elasticsearch.

T_james的博客 3669

filebeat7.8版本创建自定义索引名称、更改配置不生效、以及kibana展示java报错多行输出解决办法

索引删除后重启filebeat后当天不在生成新的索引 更新filebeat配置文件后重启filebeat配置没有生效 kibana展示java报错日志多行合并展示配置

W1124824402的博客 2321
上一篇: 如何理解Spring Security的权限管理和安全框架?
下一篇: 想跳槽?你先看看(MQ、ZK、Nginx、Kafk)等分布式技术你都会吗?
Java_ttcd
博客等级 码龄4年 198粉丝 190原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值