首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >logstash grok过滤器-grok解析失败

logstash grok过滤器-grok解析失败
EN

Stack Overflow用户
提问于 2017-02-27 13:52:41
回答 2查看 2.6K关注 0票数 1

我有多行自定义日志,我正将这些日志作为一行处理,使用关键字。现在,这包括每一行末尾的\n。但是,这会导致logstsash文件中的grok解析失败。有人能帮我吗。下面是它们的样子:

请帮助我使用下面一行的grok过滤器:

2016年11月18日凌晨3:05:50:\n抛出的错误是:\n nEmpty Queue\n*************************************************************************\nRequest已发送is:\nhpi_hho_de,2015423181057,接收到的e06106f64e5c40b4b72592196a7a45cd\n*************************************************************************\nResponse是:\nQSS持有哈希表为空\n**

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-02 10:06:10

正如@Mohsen建议的那样,您可能必须使用gsub过滤器来替换日志行中的所有新行字符。

代码语言:javascript
复制
filter {
  mutate {
    gsub => [
      # replace all forward slashes with underscore
      "fieldname", "\n", ""         
    ]
  }
}

也许您也可以在if条件下进行上述操作,以确保没有任何grokparse故障。

代码语言:javascript
复制
if "_grokparsefailure" in [tags] or "_dateparsefailure" in [tags] {
    drop { }
}else{
  mutate {
    gsub => [
      # replace all forward slashes with underscore
      "fieldname", "\n", ""         
    ]
  }
}

希望这能有所帮助!

票数 3
EN

Stack Overflow用户

发布于 2017-03-01 08:43:17

你可以在这里找到你的答案:

https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html

您应该使用Mutate块将所有"\n"替换为""(空字符串)。或者用这个

代码语言:javascript
复制
%{DATESTAMP} %{WORD:time} %{GREEDYDATA}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42487477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档