【问题标题】:How to print or store all skipped lines of a large log file in logstash如何在logstash中打印或存储大型日志文件的所有跳过行
【发布时间】:2019-03-22 10:43:25
【问题描述】:

有时由于完整日志文件中某些日志行的模式不正确,logstash 会跳过。

它只发送模式与我编写的 grok 语法匹配的所有行。

我想查看 logstash 跳过或不读取哪些日志行,以便我们可以使该模式正确。

我已经添加了

output {

if "_grokparsefailure" in [tags] {

stdout { 

codec => rubydebug

}

}

else

 {
 }
 }

但它只打印 logstash 读取的行的 grok 解析失败

那么如何在输出日志文件中打印或存储所有跳过的行。

【问题讨论】:

    标签: logstash elastic-stack logstash-grok logstash-file


    【解决方案1】:

    您需要在else 块内设置一个输出,它是空的,所以当标签_grokparsefailure 不存在时,logstash 无关。

    试试这样的:

    output {
        if "_grokparsefailure" in [tags] {
            file { 
                path => "/tmp/grok-failed.log"
            }      
        } else {
            file { 
                path => "/tmp/grok-correct.log"
            }      
        }
    }
    

    这会将两条消息保存到不同的文件中。

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 1970-01-01
      • 2014-04-08
      • 2016-06-09
      • 2019-02-27
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多