FileBeat脚本处理器事件,获取日志中的所有字段

brc7rcf0  于 2022-10-06  发布在  ElasticSearch
关注(0)|答案(1)|浏览(277)

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

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

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

4xy9mtcn

4xy9mtcn1#

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);
              }
            }
         }

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

相关问题