Logstash-filter-rest 发送的字段引用不正确它总是引用它引用的第一个字段值

Logstash-filter-rest sent field references incorrectly it always reference first field value it had referened

我最近使用logstash-filter-rest,配置如下:

rest {
    url => "http://example.com/api"
    sprintf => true
    method => "post"
    params => {
      "post_key" => "%{a_field_in_log}"
    }
    response_key => "my_key"
}

在此之后,logstash 向我的 api 发出了一个 post 请求,但是有些错误,a_field_in_log 的值 在每个请求中都是相同的(我检查 api 访问日志,所有值都是发送到 api 的第一个字段值)似乎有引用字段的缓存。

有没有人遇到过同样的问题,谢谢大家的帮助!

碰巧,我是 logstash-filter-rest 的作者,我很高兴听到有人在实际使用它。

我能够重现您的问题。这是一个错误,(好消息)我修复了它。感谢您的举报!

您现在可以更新到新版本 0.1.5

../logstash/bin/plugin update logstash-filter-rest

测试配置:

input { stdin {} }
filter {
        grok { match => [ "message",  "Hello %{WORD:who}" ] }
        rest {
                url => "http://requestb.in/1f7s1sg1?test=%{who}"
                method => "post"
                sprintf => true
                params => {
                        "hello" => "%{who}"
                }
        }
}
output { stdout{ codec => "rubydebug" } }

测试数据:

Hello John
Hello Doe
Hello foo
Hello bar

结果:

http://requestb.in/1f7s1sg1?inspect(看起来不错)

非常感谢您的贡献!我希望现在一切都按预期进行。