我正在为 Java 应用程序使用 logstash 插件,该插件使用 logback 将日志转发到我的 logstash 服务器。我设置了一个过滤器定义,如下所示:
input {
tcp {
port => 2856
codec => json_lines
}
}
filter {
mutate {
convert => {
"tenantId" => "integer"
"userId" => "integer"
}
}
}
使用以下配置将日志转发到 Elasticsearch:
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
user => "user"
password => "secure"
}
}
索引只是转到 logstash-,当我检查 Elasticsearch 中的映射时,我看到以下内容:
"logstash-2016.04.25" : {
"mappings" : {
"logs" : {
"_all" : {
"omit_norms" : true,
"enabled" : true
},
"properties" : {
...
"userId" : {
"type" : "long"
},
"tenantId" : {
"type" : "long"
},
...
}
}
}
}
因此,我可以看到字段被设置为适当的类型,但是当我检查 Kibana 时,它们既没有被分析也没有被定义为长值。我遗漏了什么?
答案1
假设这些是给定索引中的新字段,您需要告诉 Kibana刷新这是字段列表。
重新加载索引字段列表
当您添加索引映射时,Kibana 会自动扫描与模式匹配的索引以显示索引字段列表。您可以重新加载索引字段列表以选取任何新添加的字段。
重新加载索引字段列表还会重置 Kibana 的字段流行度计数器。流行度计数器会跟踪您在 Kibana 中最常使用的字段,并用于对列表中的字段进行排序。
要重新加载索引字段列表:
- 前往设置 > 指数标签。
- 从索引模式列表中选择一个索引模式。
- 点击图案的重新加载按钮。