【问题标题】:Convert a log line into comma separated fields using logstash使用 logstash 将日志行转换为逗号分隔的字段
【发布时间】:2016-05-26 01:33:55
【问题描述】:

我对 Logstash 完全陌生。谁能告诉我要添加到配置文件中的过滤器,以使用 Logstash 分隔以下日志行?

"2011/08/10 09:47:23.449598,0.001199,udp,203.136.22.37,15306, ,147.32.84.229,13363,CON,0,0,2,317,64,flow=Background-UDP - 成立”,

我希望上面的行返回一个 JSON 对象,如下所示:

{
TimeStamp: 2011/08/10 09:47:23.449598
Value: 0.001199
protocol: udp
IP: 203.136.22.37
...
}

【问题讨论】:

  • grokdebug.herokuapp.com 在这里试试你的模式
  • 给我 5 分钟,我正在努力。
  • @7171u - 这真的很有用。谢谢

标签: logstash logstash-grok


【解决方案1】:

复制下面的文本并将其写入您的 conf 文件并运行 logstash。 它将从控制台获取输入,并以您想要的格式输出到控制台。

input {
   stdin{
   }
}
filter {
        grok {
           match => ["message","%{DATESTAMP:timestamp},%{BASE16FLOAT:value},%{WORD:protocol},%{IP:ip},%{GREEDYDATA:remaining}" ]
        }
}
output {
  stdout {
        codec => rubydebug
  }
}

【讨论】:

  • 像魅力一样工作。谢谢
  • 还有一件事。它适用于无错误的日志行。但是当我有如下一行时,它失败了。请注意,缺少第二个字段。 2011/08/10 09:51:34.450457,,tcp,213.200.244.217,47908,->,147.32.84.59,6881,S_RA,0,0,4,244,124,flow=Background-Established-cmpgw-CVUT 我想放如果缺少值,则在我的输出 Json 对象中存在默认值。我该怎么做?
  • 你想放什么默认值?
  • 以 100 为例?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 2012-12-02
  • 1970-01-01
相关资源
最近更新 更多