【问题标题】:Logstash Processing Multi Line records from fileLogstash 处理文件中的多行记录
【发布时间】:2017-01-23 01:19:25
【问题描述】:

我的日志示例是这样的:

2017-01-03 03:38:18 +0000 field1: 123 field2: 321
field3: 1133 field4: 0901
2017-01-03 03:38:19 +0000 field1: 523 field2: 521
field3: 533 field4: 509

我对此很陌生。我应该如何编写正则表达式?

【问题讨论】:

  • 你没有明确说,但是文件是由logstash在本地读取,还是你使用像filebeat这样的shipper?
  • 该文件是本地文件。它与 logstash 在同一个驱动器中。

标签: logstash multiline


【解决方案1】:

对于文件{}输入,您应该使用multiline codec(而不是多行{}过滤器),例如:

input {
  file {
    path => "..."
    codec => multiline {
      negate => "true"
      pattern => "^%{YEAR}"
      what => "previous"
    }
  }
}

您会读作“如果该行不是以年份开头,则保留上一行”。

【讨论】:

  • 那么“^%{YEAR}”中的“^”是什么意思?
  • 插入符号的意思是“开始于”。充分利用 logstash 需要对正则表达式有很好的了解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 2022-01-23
相关资源
最近更新 更多