Logstash ruby​​过滤器和事件字段

时间:2016-03-03 18:31:34

标签: ruby jruby logstash

我正在尝试从传入的logstash事件中捕获IP地址字段,并将其传递给shell脚本以与静态黑名单进行比较。问题是,我能够使用puts打印IP地址但无法捕获以将其传递给ruby过滤器中的system()调用。这是我的示例配置。

我正在使用logstash 2.0

Sample input = {"name":"xyz", "source_ip":"8.8.8.8"}

input {

        stdin {
        codec => json
        }
}

filter {

        ruby {
        code => "
        # puts event['source_ip']  # This always works
        ip = event['source_ip']
        system('echo ${ip}')       # This echoes ${ip} instead of value !
        "
        }
}

我也尝试了echo #${ip}'但它只是打印0

1 个答案:

答案 0 :(得分:0)

而不是puts `echo #{ip}` 使用以下语法来运行shell命令:

{{1}}

Calling shell commands from Ruby