kibana创建索引_Elasticsearch 实战案例(索引切分、模板、别名、数据迁移)

背景

基于ELK搭建的日志平台,前期匆忙建设过程中一些参数和设计未做过多的考虑,上线后就需要不断根据实际情况做调整,而一些调整限于ELK的一些特性,一旦操作不当就会出现丢数据、数据写入异常、数据查不到等情况。

因此如何在这种背景下,做到对使用方无感知的动态调整是我们所要实现的目标。本文更加注重实践而非深层次的理论讲解,有兴趣深入了解的可以自行研习。

总体架构

1a8c93bbfde5d3c1b2e0b6a3c426f072.png

CASES

CASE1:按日/月生成索引

创建的nginx access_log索引,开始采集2周后,数据达到25G+(number_of_replicas=1,因此总体数据超过50G),如果不进行索引拆分,该索引将越来越大,最终会严重影响查询效率,并且一旦出现索引损坏造成的风险也更大。

通过配置logstash ouput 插件实现按照日期生成新索引:

output { elasticsearch { hosts => ["192.168.0.1:9200"] index => "php-nginx-log-%{+YYYY.MM.DD}" #按照天生成索引 }}

通过我们的配置,目前会存在2个index,分别为历史的php-nginx-log索引和以php-nginx-log.2019-01-15索引。

CASE2:Kibana查询所有数据

由于目前我们的索引不再是指定的具体索引,还是一类按照事先约定的命名格式索引集合,这时我们想要能够在Kibana查询数据时不受影响,能够正常查询到数据,此时主要有两种解决方式:

1、更改Kibana的Create index pattern,使用通配符关联出所有index

f4f0f317700e5d22816ac5010ce73a0d.png

2、使用index aliases,详情:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/indices-templates.html

Elasticsearch的别名,就类似数据库的视图,别名不仅仅可以关联一个索引,它能聚合多个索引,下文还会提到别名的更重要的特性。

通过别名的方式是更加建议的方式。

POST /_aliases{ "actions" : [ { "add" : { "index" : "new_index1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值