0

我的日志文件只有一行(取自教程日志文件):

55.3.244.1 GET /index.html 15824 0.043 

我的 conf 文件看起来像这样:

input {
  file {
    path => "../http.log"
    type => "http"
  }
}

filter {
  grok {
    type => "http"
    match => [ "message", "%{IP:client}" ]
  }
}

我用 grok 调试器测试了我的 grok 过滤器,它工作正常。我不知道我做错了什么。我每次都得到一个 [0] "_grokparsefailure"

4

1 回答 1

2

就调试 grok 过滤器而言,您可以使用此链接 ( http://grokdebug.herokuapp.com/ ) 它有一个非常全面的模式检测器,这是一个好的开始。

如果您只关心 IP 而不是日志消息的剩余部分,则以下过滤器应该适合您。

%{IP:host} %{GREEDYDATA:remaining_data}

最好的调试方法是使用logstash 和插件并调试您的stdin模式。stdoutgrok

你可以在这里找到文档http://logstash.net/docs/1.4.2/

于 2014-11-21T20:14:25.940 回答