【问题标题】:parsing in Logstash whole files as one event each在 Logstash 中将整个文件解析为一个事件
【发布时间】:2020-09-21 22:55:34
【问题描述】:

我想用 Logstash 监控一个包含单个文件的目录,每个文件描述一个事件并由每个键值对组成

   > /var/log/dir/history.*
   > head /var/log/dir/history.1234
     key1 = value1
     key2 = value2
     ...

kv 过滤器插件可以解析键值对,但是输入需要是某种多行,以便将每个文件合并为一个事件。

如果事件在模式匹配处开始/结束,多行输入插件需要一个模式来匹配什么关键字。

由于我将整个文件视为一个事件,因此我没有真正的正则表达式可以匹配。

如何使用logstash 的多行将一个文件作为一个事件解析为输入,或者是否有更好的输入插件适合这个用例?

【问题讨论】:

  • 如果每个文件都写得很快,或许可以使用多行过滤器的auto_flush_interval参数?

标签: logstash logstash-grok


【解决方案1】:

https://discuss.elastic.co/t/log-file-parsing-and-ingesting-into-es/247806/6获取解决方案

即,要提取整个文件,诀窍是匹配不存在的模式

codec => multiline {
  pattern => "^Spalanzanidonotmatchinanycase"
  negate => true
  what => "previous"
  auto_flush_interval => 2
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多