在ruby筛选器中打印日志存储事件

在ruby筛选器中打印日志存储事件,ruby,logstash,Ruby,Logstash,您好,我正在从RabbitMQ导出日志。为了调试,我想在应用一些正则表达式和base64解码之前打印消息的内容。我正在尝试这样做: input { rabbitmq { host => "***host***" vhost => "/" exchange => "Exchange" key => "#" } } filter { ruby { code => "print

您好,我正在从RabbitMQ导出日志。为了调试,我想在应用一些正则表达式和base64解码之前打印消息的内容。我正在尝试这样做:

input {
  rabbitmq {
        host => "***host***"
        vhost => "/"
        exchange => "Exchange"
        key => "#"
  }
}

filter {
  ruby {
        code => "print event['message']"
  }
}

output {
  elasticsearch {
        host => "localhost"
  }
}

但是我的消息只有
nil
值。

使用此选项打印消息

input {
    stdin{}
}

filter {
    ruby {
            code => "
                    puts event['message']
            "
    }
}

output {
    stdout {
            codec => "rubydebug"
    }
}

仅供参考

谢谢您的回答,但唯一打印的是换行符(CRLF)。。。可能与编码有关?我已经更新了答案。这是我使用的配置。它可以打印出事件['message']中的所有消息。我想在你的情况下,也许这不是ruby过滤器的问题。使用你的.conf可以工作,但是过滤器没有效果,它会在没有过滤器的情况下将相同的结果打印到stdout。这个代码:filter{ruby{code=>“puts event”}返回:2014-08-18T09:52:34.162+0000%{host}%{message}但您的只在输出与标准输出不同时返回CRLF。。。