logback修改日志内容_记一次Logstash日志丢失问题

本文记录了一次Logstash日志丢失问题的排查过程。系统通过logback配置双写日志,本地无误但Logstash在Kibana上显示部分日志缺失。研究发现LogstashTcpSocketAppender的RingBuffer满会导致日志丢失,且日志数据传输后因json解析错误被截断。解决方案是将Logstash的codec从json改为json_lines,避免长json被截断导致解析异常。
摘要由CSDN通过智能技术生成

2c19d1195754fbbc69331f0db6cf2f14.png

某系统日志架构是在项目中通过配置logback.xml配置双写

  • 写本地日志文件

  • 写到远程logstash

本地没有问题,有问题是logstash,在Kibana上看到有些日志没显示。

开始是怀疑是不是日志丢了,由于使用的是LogstashTcpSocketAppender

查了下官文文档:

Internally, the TCP appenders are asynchronous (using the LMAX Disruptor RingBuffer).All the encoding and TCP communication is delegated to a single writer thread.There is no need to wrap the TCP appenders with another asynchronous appender (such as AsyncAppender or LoggingEventAsyncDisruptorAppender).

The TCP appenders will never block the logging thread. If the RingBuffer is full (e.g. due to slow network, etc), then events will be dropped.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值