充分利用logstash的功能

栏目: IT技术 · 发布时间: 5年前

内容简介:今天有个搜索的小需求,找了下解决方案,好久没弄了,生疏了很多。需求就是原来一篇文章一个品牌,原来使用elk的整型字段存储,现在一篇文章对应多个品牌,如何设计呢?解决方案就是在文章索引中新增一个数组字段,那么如何将数据录入进去呢?以前的整型字段值是否要合并进新字段?或者ELK同时对新老字段进行查询?

今天有个搜索的小需求,找了下解决方案,好久没弄了,生疏了很多。

需求就是原来一篇文章一个品牌,原来使用elk的整型字段存储,现在一篇文章对应多个品牌,如何设计呢?

解决方案就是在文章索引中新增一个数组字段,那么如何将数据录入进去呢?以前的整型字段值是否要合并进新字段?或者ELK同时对新老字段进行查询?

使用logstash的split和merge解决:

mutate { split => { "brand_ids" => ',' } }
mutate { merge => ["brand_ids", "brand_id"]}

mutate{
    convert => {"brand_ids"=> "integer"}
}

新字段是用逗号分隔的,表示多个品牌,先拆分成数组,然后将旧的品牌值合并到数组中,这样ELK查询新字段就可以了。

merge:

Merge two fields of arrays or hashes. String fields will be automatically be converted into an array

注意在logstash中并没有数组类型,integer仅仅表示数组值的类型。

convert:

Convert a field’s value to a different type, like turning a string to an integer. If the field value is an array, all members will be converted.

那么ELK如何查询呢?很简单:

"term": {
   "brand_ids":3
}

由于很久没弄了,所以生疏了很多,调试不方便,尤其logstash特别慢,修改配置文件后再重新运行很耗费时间,可以:

bin/logstash -f apache.config --config.reload.automatic

-r 参数可以自动加载新的配置文件。

深思了很多,如何才能更熟练,困难的是要重新导入数据到ELK中,不过只要删除logstash的pos文件就可以全量重新导入了,不会影响服务。

参考:

  • https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-merge
  • https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-convert
  • https://www.elastic.co/guide/en/logstash/current/reloading-config.html

以上所述就是小编给大家介绍的《充分利用logstash的功能》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解计算机系统(英文版·第2版)

深入理解计算机系统(英文版·第2版)

[美] Randal E. Bryant、[美] David R. O'Hallaron / 机械工业出版社 / 2011-1 / 128.00元

本书是一本将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。本书的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。 相对于第1版,本版主要是反映了过去十年间硬件技术和编译器的变化,具体更新如下: 1. 对系统的介绍(特别是实际使......一起来看看 《深入理解计算机系统(英文版·第2版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换