我想检查Logstash 6.4过滤器中是否存在MD5字段。
"files": [
{
"SHA256": "DA3662E34C66D770F28D23A26980B31245753049E55B0348D51B22524C00EE1C",
"filesize": "8732",
"MD5": "0551229E1E1180F5BF5513222C75412A"
},
{
"SHA256": "ADA57125645BE67E7DB885D4DF8EBBC46B7CA8F54258EEC510ECDCC9350FCB43",
"filesize": "433433",
"MD5": "ADF322D0711E22BDFAA60E3503621292"
}]
首次尝试使用过滤器:
filter {
if ("" in [files][MD5]) {
mutate {
add_field => { "md5_num" => "50"}
}
}
}
第二个尝试的过滤器:
filter {
if [files][MD5]{
mutate {
add_field => { "md5_num" => "50"}
}
}
}
这两个过滤器中的任何一个为什么不能按预期工作?
答案 0 :(得分:2)
问题是file
包含一个json数组。因此,您需要使用数组元素的索引才能正常工作。
if [files][0][MD5]{
mutate {
add_field => { "md5_num" => "50"}
}
}