我使用logstash接收JSON内容,然后写出日志文件。 我有基本的配置。
但是,我喜欢在配置文件的“输出”部分添加一些ruby处理逻辑,这样我就可以根据它们到达的那一天的小时将传入的内容丢弃到不同的文件中。
有人能指出配置文件中“输出”部分有ruby处理逻辑的任何例子吗?我无法找到例子 关于如何在“输出”部分编写这样的逻辑。
感谢
答案 0 :(得分:0)
唯一可以使用的ruby代码是在过滤器部分的ruby过滤器中。通常,这意味着您需要在过滤器部分中执行所有逻辑,然后在输出部分中执行条件输出。
在输出部分,您可以使用在过滤器部分中设置的事件值,这样您就可以确定在“过滤器”部分中输出内容的位置,然后在事件中传递文件名。
如果您担心事件中显示的值,您可以使用[@metadata] [whatever_here],以便值不会显示在事件上。有关详细信息,请参阅https://www.elastic.co/blog/logstash-metadata。
您可以在输出部分中使用if
/ then
/ else
根据事件(或事件元数据)中的某些值有条件地使用不同的输出。除了%{[@metadata][value]}
语法之外,您还应该能够使用适当的值构造所需的任何输出。