当前位置: 首页 > news >正文

logstash日志换行处理小解

logstash主用于日志实时数据收集、解析,并将数据转发的工具,内置的功能也相当强大。但,同时意味着,他可能接收到各种情况的数据。

此处,我们主要讲解我实际使用中,碰到的一个小问题,换行(\n)。

logstash的换行处理,可以有多种方式,比如如imultiline,可以将多行合并之类的,这种适合input 直接读取文件。

但有时,你接收到的消息内容,即某个字段的内容,本身已经是换行的内容,经过input的转换后,加上了转义符,换行变成\\n。

这里举例我实际碰到的环境:kafka+logstash+elasticsearch

kafka采集到的数据,已经是一条完整的数据,如:

2023/08/10 09:15:26 main.go:20 E! 测试多行日志记录
第二行日志,需要合并
第三行也要合并

logstash.conf配置如下:

input {kafka {bootstrap_servers => "kafka.test.com"topics => ["test"]}
}filter {json {source => "message" #原mesage字段为json格式的字符串,转换成json数据}grok{match => ["message", "%{DATE:date} %{TIME:time} %{DATA:logclass}: %{DATA:loglevel}! %{GREEDYDATA:msg}"] }mutate {add_field => {"logdate" => "%{date} %{time}"} # 新增字段,多字段字符串组合成新字段logdateremove_field => ["date","time"]}
}output {elasticsearch {hosts => ["http://elasticsearch:9200"]index => "testlog"}
}

此时kibana上查看到的数据是在原本换行的地方变成\n。因为kafka在接到到换行的数据时会转成\n或\n\t。而logstash在接收到kafka的数据时,会当成字符串,自动加上转义符,要正常显示换行,需要把\\n 替换成\n。

 网上找了一堆相关资料,说的的方法是没错,但就是没有效果,如

filter {mutate {gsub => ["message","\\n",""] # 显式的采用此种方法替换
}

因为logstash会把“\\n”当成是有转义符处理,即\n,也即实际的换行。所以“\\n”其实替换的是实际的换行,实际已经可以换行的数据,替换成空字符。

如果要es中显示的\n,变成实际换行显示,需要以下配置:

filter {mutate {gsub => ["message","\\\\n","\n"] # 字符替换 ,将\\n 替换成 \n; "\\\\n"需要增加转义符。}

最终es显示效果如下:

http://www.lryc.cn/news/126440.html

相关文章:

  • openpnp - 做一个抛料盒
  • 数据结构——单链表的实现(c语言版)
  • 【计算机组成原理】24王道考研笔记——第四章 指令系统
  • C#使用FileInfo和DirectoryInfo类来执行文件和文件夹操作
  • 每日一学——TCP/IP参考模型
  • LAXCUS分布式操作系统:技术创新引领高性能计算与人工智能新时代
  • 两只小企鹅(Python实现)
  • Linux | 使用wget命令调用服务接口
  • POJ Prime Path 埃氏筛法+广度优先搜索
  • React React Native
  • 分布式定时任务系列5:XXL-job中blockingQueue的应用
  • QT网络编程之TCP
  • 《游戏编程模式》学习笔记(四) 观察者模式 Observer Pattern
  • 前端一键升级 package.json里面的依赖包管理
  • 当速度很重要时:使用 Hazelcast 和 Redpanda 进行实时流处理
  • 筛法求欧拉函数
  • consul限制注册的ip
  • 用AI攻克“智能文字识别创新赛题”,这场大学生竞赛掀起了什么风潮?
  • EJB基本概念和使用
  • 神经网络基础-神经网络补充概念-09-m个样本的梯度下降
  • 分布式 - 消息队列Kafka:Kafka消费者分区再均衡(Rebalance)
  • BIO、NIO和AIO
  • 理解 Go 中的切片:append 操作的深入分析(篇1)
  • 由于找不到mfc140u.dll,无法继续执行代码怎么修复?
  • 【0.1】lubancat鲁班猫4刷入debian网络ping 域名不通问题
  • KafkaStream:基本使用
  • 【数据结构】二叉树
  • 基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)
  • jenkins自动化构建保姆级教程(持续更新中)
  • HTTPS 的加密流程