LogStash 中的解析错误“_grokparsefailure”

Parsing error "_grokparsefailure" in LogStash

起初我从系统日志中显示了 Kibana 中的日志,它工作正常。我是按照文档设置的。

现在我已经更改了日志的来源,现在它从我的 Web 应用程序中检索日志,虽然 Kibana 仍然可以正确显示它们,但现在有标签“_grokparsefailure”,这意味着正在解析日志。

我当前的过滤器:

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

如何找出解析错误的地方?是否有在线服务可以帮助我为新日志创建 grok 模式?还有其他建议吗?

更新:日志在json。

回应 OP:

Is there an online service which would help me create a grok pattern for my new logs?

我最喜欢的测试 grok 模式的工具是: http://grokconstructor.appspot.com/do/match

但我知道有些人更喜欢:https://grokdebug.herokuapp.com/

您的日志可能无法正确解析,因为您在非 syslog 格式的日志上使用了 syslog 模式。

编辑:对于 json 日志解析,您可能需要查看 json filter or the json codec