首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改Logstash中字段的所有值

如何更改Logstash中字段的所有值
EN

Stack Overflow用户
提问于 2021-06-18 10:39:03
回答 1查看 616关注 0票数 1

我创建了一个脚本,通过使用Logstash及其插件将Elasticsearch数据导出到csv文件。我想改变一个字段的值。例如,我导出了一个字段company,这个字段的值是:google, amazon...,我需要在csv文件中的这些值之前添加一个字符串company-,比如:company-google, company-amazon。我检查了Logstash的Mutate filter plugin,但是我没有找到任何函数来解决这个problem.Is --可以用Logstash修改这些值并导出到csv文件中吗?

代码语言:javascript
复制
 input {
 elasticsearch {
    hosts => "localhost:9200"
    index => "give_index_name"
    query => '
    {
        "query": {
            "match_all": {}
        }   
    } 
  '
  }
}
output {
  csv {
    # elastic field name
    fields => ["company", "field2", "field3", "field4", "field5"]
    # This is path where we store output.   
    path => "/scrape/csv-export.csv"
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-19 01:31:31

您可以使用mutate过滤器来完成这一任务。

首先,您需要创建一个临时的新字段,将字符串company-与字段company的值连接起来。

您可以使用下面的mutate过滤器执行此操作。

代码语言:javascript
复制
mutate {
    add_field => {"[@metadata][company]" => "company-%{company}" }
    remove_field => ["company"]
}

这将创建一个名为@metadata.company的字段,其值为company-CompanyName,例如。company-anything,然后它将删除company字段。

接下来,您需要再次添加一个名为company的字段,该字段的值为@metadata.company字段。

这是使用以下mutate完成的

代码语言:javascript
复制
mutate {
    add_field => { "company" => "%{[@metadata][company]}" }
}

这样,您将在字段中获得company-anythingcompany

不需要删除@metadata.company字段,因为@metadata对象不会是输出消息的一部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68033698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档