我有以下格式的 JSON 数据发送到日志存储实例侦听 HTTP 端点
{
client: "c",
pageInfo: ["a","b","c"],
restInfo: ["r","s","t"]
}
我的目标是将此输入作为同一索引中的两种不同类型发送到 elasticsearch 端点;例如
PUT elasticsearchhost:port/myindex/pageInfo
{ client: "c", pageInfo: ["a","b","c"] }
PUT elasticsearchhost:port/myindex/restInfo
{ client: "c", restInfo: ["r","s","t"] }
我已经尝试在logstash中使用一些过滤器(分裂,突变,grok(,但我无法理解如何执行这种非常特定的拆分,或者我是否也必须在输出部分中修改我的配置
您需要
使用 clone
克隆事件,然后修改克隆。
例如:
filter {
clone { clones => ["pageInfo", "restInfo" ] }
if [type]=="pageInfo" {
mutate {
remove_field => "restInfo"
}
}
if [type] == "restInfo" {
mutate {
remove_field => "pageInfo"
}
}
}
然后在您的elasticsearch
输出中,请务必包含document_type => "%{type}"