【问题标题】:Filebeat Script Processor Event.Get All Fields In LogFilebeat 脚本处理器事件。获取日志中的所有字段
【发布时间】:2022-09-29 03:52:51
【问题描述】:

我正在寻找使用脚本处理器获取 filebeat 记录中的所有字段并对它们执行操作。使用脚本处理器中的 event.Get(),它说,“从事件中获取一个值(标量或对象)。如果键不存在,则返回 null。如果没有提供键,则返回一个对象返回包含所有字段。\"

https://www.elastic.co/guide/en/beats/filebeat/current/processor-script.html

因此,我的问题是,我将如何确保不提供任何键来获取返回包含所有字段的对象?

    标签: elasticsearch filebeat


    【解决方案1】:

    event.Get() 字段将提供顶级字段。要查看这些顶级字段,请使用 for 循环,例如:

      - script:
          lang: javascript
          id: get_fields
          source: >
            function process(event) {
                var a = event.Get();
                for (var key in a) {
                  if(event.Get(key) == ""){
                       event.Delete(key);
                  }
                }
             }
    

    我不确定如何以这种方式对嵌套字段执行此操作,也没有尝试将其扩展到嵌套字段,但这就是它现在的工作方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多