Elastic 的 Logstash Mutate Split 不起作用
Elastic's Logstash Mutate Split not working
我在拆分 logstash 中的 http.request.referrer 字段时遇到问题。这是来自数据包节拍。我只想使用域而不是完整路径。使用以下过滤器,如此处 https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html 所建议,我收到以下错误
[WARN ][logstash.filters.mutate ] Exception caught while applying mutate filter {:exception=>"Invalid FieldReference: `sfa[2]`"}
但是如果我不尝试检索第二个元素并且只是使用字段 sfa 添加到 sfa_ref 那么它就可以工作,只是用逗号替换正斜杠。
filter {
mutate {
add_field => {"sfa" => "%{[http][request][referrer]}"}
}
mutate {
split => ["sfa", "/"]
add_field => {"sfa_ref" => "%{sfa[2]}"}
}
}
输入如下:
{
"http": {
"request": {
"bytes": 727,
"method": "get",
"headers": {
"content-length": 0
},
"referrer": "https://example.domain.com/web/font-awesome/css/font-awesome.min.css"
},
"response": {
"bytes": 66989,
"status_code": 200,
"body": {
"bytes": 66624
},
"headers": {
"content-length": 66624,
"content-type": "application/font-woff2"
}
},
"version": "1.1"
},
"status": "OK"
}
拆分后,sfa
字段变为:
"sfa": [ "https:", "", "example.domain.com", "web", "font-awesome", "css", "font-awesome.min.css" ]
后面的文档似乎已经过时了。在较新版本的 logstash 中,寻址数组或其中元素的正确方法是 %{[field_name][index]}
。
所以我还需要在字段名称周围加上方括号。
mutate {
split => ["sfa", "/"]
add_field => {"sfa_ref" => "%{[sfa][2]}"}
}
我在拆分 logstash 中的 http.request.referrer 字段时遇到问题。这是来自数据包节拍。我只想使用域而不是完整路径。使用以下过滤器,如此处 https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html 所建议,我收到以下错误
[WARN ][logstash.filters.mutate ] Exception caught while applying mutate filter {:exception=>"Invalid FieldReference: `sfa[2]`"}
但是如果我不尝试检索第二个元素并且只是使用字段 sfa 添加到 sfa_ref 那么它就可以工作,只是用逗号替换正斜杠。
filter {
mutate {
add_field => {"sfa" => "%{[http][request][referrer]}"}
}
mutate {
split => ["sfa", "/"]
add_field => {"sfa_ref" => "%{sfa[2]}"}
}
}
输入如下:
{
"http": {
"request": {
"bytes": 727,
"method": "get",
"headers": {
"content-length": 0
},
"referrer": "https://example.domain.com/web/font-awesome/css/font-awesome.min.css"
},
"response": {
"bytes": 66989,
"status_code": 200,
"body": {
"bytes": 66624
},
"headers": {
"content-length": 66624,
"content-type": "application/font-woff2"
}
},
"version": "1.1"
},
"status": "OK"
}
拆分后,sfa
字段变为:
"sfa": [ "https:", "", "example.domain.com", "web", "font-awesome", "css", "font-awesome.min.css" ]
后面的文档似乎已经过时了。在较新版本的 logstash 中,寻址数组或其中元素的正确方法是 %{[field_name][index]}
。
所以我还需要在字段名称周围加上方括号。
mutate {
split => ["sfa", "/"]
add_field => {"sfa_ref" => "%{[sfa][2]}"}
}