暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

告别es索引混乱!3分钟掌握Alias和Template的黄金搭档法则

Linux运维智行录 2025-03-17
120

回顾上一篇文章index lifecycle management(ILM)
 示例中Hot设置有rollover配置(主分配超过10G 或者 创建索引超过1天)会轮转index。

情景1:日志一天超过10G的数据量的话,那会产生多个index。现需求统计某一个关键字在今天出现多少次?当天生成的index都过滤一遍即可得出答案。

上述的方法略显繁琐,elasticsearch推出index alias配置可以简化这个问题。

情景2:配置rollover后会新建索引,创建索引会有相关参数。例如share数,副本数,别名等参数

每次创建索引都设置相同参数也繁琐。elasticsearch推出index template配置可以简化这个问题。

索引别名(index alias)

alias概述

在elasticsearch的索引别名(index aliases)就像一个快捷方法或软连接,可以指向一个或多个索引。别名带给我们极大的灵活性,我们可以使用索引别名实现以下功能:

  • 在运行的集群中可以无缝的从一个索引切换到另一个索引(无需停机)。
  • 分组多个索引。比如按天创建的索引,我们可以通过别名构造出一个最近几天的索引。
  • 给索引的一个子集创建视图,没错我们可以简单将es中的索引理解为关系型数据库中的视图。
  • 可以与路由搭配使用。

注意:elasticsearch ILM
 基本都是搭配aliases使用

alias相关操作

创建别名

# 创建好索引,再创建别名
PUT test0001
PUT test0002
PUT test0003

POST _aliases
{
"actions": [
    {
      "add": {
        "index""test000*",
        "alias""test"
      }
    }
  ]
}

# 创建索引并设置别名(常用)
PUT test1001
{
"aliases": {
    "test": {}
  }
}

查看别名

GET test/_alias

重命名别名

POST _aliases
{
  "actions": [
    {"remove": {"index""test000*""alias""test"}},
    {"remove": {"index""test100*""alias""test"}},
    {"add": {"index""test000*""alias""test01"}},
    {"add": {"index""test100*""alias""test01"}}
  ]
}

删除别名

POST _aliases
{
  "actions": [
    {
      "remove": {
        "alias""test01",
        "index""test*"
      }
    }
  ]
}

索引模板(index template)

index template概述

索引模板允许我们定义在创建新索引时自动应用的模板。

比如某公司对于日志处理策略是以日期为名创建每天的日志索引。并且每天的索引映射类型和配置信息都是一样的,只是索引名称改变了。如果手动的创建每天的索引,将会是一件很麻烦的事情。为了解决类似问题,elasticsearch提供了预先定义的模板进行索引创建,这个模板称作为Index Templates。通过索引模板可以让类似的索引重用同一个模板。

模板只在创建索引时应用。更改模板不会对现有索引产生影响。

index template相关操作

创建

PUT _index_template/k8s-logs
{
  "index_patterns": ["k8s-logs*"],
  "template": {
    "settings": {
      "index.number_of_shards": 3,
      "index.number_of_replicas": 1,
      "index.lifecycle.name""jiaxzeng",
      "index.lifecycle.rollover_alias""k8s-logs"
    }
  }
}

查看

GET _index_template/k8s-logs

修改

和创建是一样的,注意需要使用全量的参数。这里不做演示

删除

DELETE _index_template/k8s-logs

结语

通过索引别名和模板这对黄金组合,我们不仅解决了索引版本切换的硬着陆问题,更实现了数据层与业务层的优雅解耦。当滚动更新(Rollover)策略遇上智能模板,当零停机迁移拥抱别名路由,Elasticsearch 的索引管理终于从刀耕火种迈入了自动化时代。

别忘了,关注我们的公众号,获取更多关于容器技术和云原生领域的深度洞察和技术实战,让我们携手在技术的海洋中乘风破浪!

声明:以上图片来源于网络,侵删!

【推荐阅读】点击下方蓝色标题跳转至详细内容!


文章转载自Linux运维智行录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论