Logstash根据配置

问题描述

我有一个特殊的要求,即我要根据GROK模式提取一个字段。根据属性的长度,我必须在字符串的末尾添加space

例如:

属性:

PartA: test
PartB: abc

输出应类似于:

test#####abc##          

需求中partA的长度应为10,而partB的长度应为5。因此,如果您看到了,我会根据属性的当前长度添加额外的空间(#

我目前正在尝试根据上述要求创建一个新行,

这是尝试(logstash.conf):

file {
   path => "/Users/Smit/Downloads/chrome/observability/logstash_dump.txt"
   codec => line { format => "%{PartA}#####${PartB}###"}
  }
 }

有没有一种方法可以动态附加空间(#是为了清楚起见)而不是硬编码。

这是完整的Logstash文件:https://dpaste.org/dsuH

解决方法

参数

part_a = "test"
part_b = "abc"

输出

{ format: part_a.ljust(10) + part_b.ljust(5) }
=> {:format=>"test      abc  "}

如果传递给ljust的整数大于字符串的长度,则它将返回该整数长度的新字符串。附加字符默认为空格,但是您可以将第二个参数传递给将第二个参数附加到字符串的方法。如果字符串长于整数,它将不删节。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...