jLogstash ruby 过滤器和事件字段



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

我正在使用日志 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.

而不是

system('echo ${ip}')使用以下语法来运行shell命令:

puts `echo #{ip}`

从 Ruby 调用 shell 命令

最新更新