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