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
起初我从系统日志中显示了 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