这条线是什么意思? (Logstash Conf & Grok 语法)

What does this line mean ? (Logstash Conf & Grok Syntax)

嗨,我是 Logstash 和 Grok 语法的新手,我想了解这些行的含义

codec => multiline { pattern => "^{$" negate => "true" what => "previous" }

mutate {
                gsub => ["message", "'", '"']
        }

谢谢!

multiline codec plugin的官方文档中有很好的解释:

  • pattern => ^{$ 匹配仅包含 { 字符并立即结束的行
  • negate => true 表示考虑不匹配模式的行
  • what => previous表示当前匹配的行与上一行相关

总之,这些设置意味着所有不包含仅 { 的行都属于上一行。

具体来说,这个多行过滤器是为了将 JSON 数据放在一起 pretty-printed 在几行,像这样:

{
   "bla": {
       "test": 1
   }
}

上面的pretty-printedJSON会被当成单行打印处理,像这样:

{ "bla": { "test": 1 } }

关于第二个过滤器(mutate/gsub),用于将所有单引号替换为双引号。