【发布时间】:2017-08-13 02:00:29
【问题描述】:
我正在使用 Logstash 5 摄取包含一组 JSON 文档的文件,在每个事件中提取每个文档的一部分,然后将它们写入另一个文件。
我想漂亮地打印输出 JSON。我找到了这个线程:How do I pretty-print JSON for an email body in logstash?,看起来很理想,但是 Logstash 5 现在阻止您直接访问事件属性,将其替换为 event.get 和 event.set 方法(请参阅https://www.elastic.co/guide/en/logstash/current/event-api.html)。
我尝试将上面的转换如下:
ruby {
init => "require 'json'"
code => "@pretty_body = JSON.pretty_generate(event.get('body'))
event.set('body', @pretty_body)
"
}
但得到
ERROR logstash.filters.ruby - Ruby exception occurred: only generation of JSON objects or arrays allowed
上面的正确 LS5 等效项是什么?
【问题讨论】: