【发布时间】:2017-11-06 12:21:20
【问题描述】:
我是 ELK 堆栈的新手。我正在尝试为以下日志语句编写一个 grok 表达式
2017-10-26 19:20:28.538 ERROR --- [logAppenderService] [Serv01] [restartedMain] ns.pcs.log.appender.LogAppender : [1234] doStuff Some statement here - {}
java.lang.Exception: Hello World
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
我已经编写了以下logstash配置:
input{
kafka {
type => "mylog"
topic_id => 'mylog'
}
}
filter{
if [type] == "mylog" {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} \[%{DATA:serviceName}] \[%{DATA:nodeName}] \[%{DATA:trName}] %{NOTSPACE:className} %{NOTSPACE:':'} \[%{DATA:refName}] %{GREEDYDATA:msg}" }
}
}
}
output{
if [type] == "mylog" {
elasticsearch {
hosts => ["101.18.19.89:9200"]
index => "logstash-%{+YYYY-MM-dd}"
}
}
stdout {
codec => rubydebug
}
}
当我尝试运行相同的程序时,我得到了 json 解析异常。不确定我是否遗漏了什么。我真的被困在这个阶段了。
【问题讨论】:
-
您的配置缺少
filter {}周围的if [type] == "mylog" {} -
对不起。这是我的错。实际上,我在这里粘贴时意外删除了。我正在修改原帖
-
@baudsp 我已经修改了原帖。
-
好的。但是我不明白当您的配置中没有任何 json 过滤器/编解码器时,您是如何收到 json 解析错误的。也许你把整个错误信息都放在你的问题中。
-
@baudsp 我认为json解析错误是grok要解析的logline,而不是grok产生的错误。
标签: logstash elastic-stack logstash-grok