Python 如何在Logstash中获取自定义过滤器的输入值

Python 如何在Logstash中获取自定义过滤器的输入值,python,filter,logstash,Python,Filter,Logstash,我正在尝试Logstash,到目前为止,它似乎是一个很棒的工具,但我已经到了需要用Python编写自定义过滤器的地步,我正在努力获取输入值。下面是我的logstash.conf input { stomp { destination => "/topic/myevents" host => "rabbitmq" password => "guest" user => "guest" v

我正在尝试Logstash,到目前为止,它似乎是一个很棒的工具,但我已经到了需要用Python编写自定义过滤器的地步,我正在努力获取输入值。下面是我的logstash.conf

input {
    stomp {
        destination => "/topic/myevents"
        host => "rabbitmq"
        password => "guest"
        user => "guest"
        vhost => "/"
        debug => true
        port => 61613
     }
}

filter {
    ruby {
        code => 'require "open3"
                 cmd = "/bin/events_filter.py {input should go here}"
                 stdin, stdout, stderr = Open3.popen3(cmd)
                ' 
    }
}

output {
    file {
        path => "~/events.txt" 
    }
}
有人能帮我弄清楚吗?如果您有任何关于调用外部过滤器的提示或更好的方法,我很想知道。

显然,Logstash创建了一个可以被ruby代码访问的事件对象(它将用作python代码的参数)


这样,我就可以从Python脚本访问输入事件了=很抱歉,ruby筛选器中存在缩进问题(已修复)。我想做的是在stomp主题中简单地获取事件捕获的值,并将其破坏(加密),将其规范化并存储在文件中。如果您的输入有效,那么您正试图在ruby中执行解密部分?谷歌为ruby代码解密任何使用过的系统。我希望事件很少发生。为每个人运行一个shell可能会被证明具有非常糟糕的性能。这并不罕见,但如果过滤器的性能相当好的话。我将试着再推一点,看看在150%的常规赛事负荷下,它的表现如何。
cmd = "/bin/events_filter.py #{event}"