千家信息网

Elasticsearch索引别名怎么创建

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍"Elasticsearch索引别名怎么创建",在日常操作中,相信很多人在Elasticsearch索引别名怎么创建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2025年12月03日Elasticsearch索引别名怎么创建

这篇文章主要介绍"Elasticsearch索引别名怎么创建",在日常操作中,相信很多人在Elasticsearch索引别名怎么创建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Elasticsearch索引别名怎么创建"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、

Elasticsearch的别名,就类似数据库的视图。

创建别名:

我们为索引my_index创建一个别名my_index_alias,这样我们对my_index_alias的操作就像对my_index的操作一样

POST /_aliases{  "actions": [    {      "add": {        "index": "my_index",        "alias": "my_index_alias"      }    }  ]}

别名不仅仅可以关联一个索引,它能聚合多个索引

我们为索引my_index_1 和 my_index_2 创建一个别名my_index_alias,这样对my_index_alias的操作(仅限读操作),会操作my_index_1和my_index_2,类似于聚合了my_index_1和my_index_2.我们是不能对my_index_alias进行写操作,当有多个索引时alias,不能区分到底操作哪一个

POST /_aliases{  "actions": [    {      "add": {        "index": "my_index_1",        "alias": "my_index_alias"      }    },    {      "add": {        "index": "my_index_2",        "alias": "my_index_alias"      }    }  ]}GET /my_index_alias/_search{}

创建filtered的别名:

例如对于同一个index,我们给不同人看到不同的数据,

如my_index有个字段是team,team字段记录了该数据是那个team的。team之间的数据是不可见的。

POST /_aliases{  "actions": [    {      "add": {        "index": "my_index",        "alias": "my_index__teamA_alias",        "filter":{            "term":{                "team":"teamA"            }        }      }    },    {      "add": {        "index": "my_index",        "alias": "my_index__teamB_alias",        "filter":{            "term":{                "team":"teamB"            }        }      }    },    {      "add": {        "index": "my_index",        "alias": "my_index__team_alias"      }    }  ]}GET /my_index__teamA_alias/_search 只能看到teamA的数据GET /my_index__teamB_alias/_search 只能看到teamB的数据GET /my_index__team_alias/_search 既能看到teamA的,也能看到teamB的数据

二、情景

情景1:用Logstash采集当前所有nginx的日志,放入ES,索引名叫nginx-YYYY.MM.DD

后来又增加了apache的日志,希望能放到同一个索引中,统一叫做web-YYYY.MM.DD

我们只要把logstash的配置更改下,然后重启,这样数据就会写入到新的索引下,但是同一天的索引就会被写入2个索引中,Kibana中就不好配置了。

解决方案:

1.今天是2015-11-13.我们为nginx-2015.11.13创建一个alias叫做web-2015.07.28,之前所有的nginx日志也这样

2.kibana中把dashboard的配置索引名改为web-YYYY.MM.DD

3.将logstash里面的elasticsearch的配置改为web-YYYY.MM.DD,重启

情景2:用Logstash采集当前所有nginx的日志,放入ES,索引名叫nginx-YYYY.MM.DD

某天2015-11-13希望按照月来建立索引,索引名改为nginx-YYYY.MM

注意:像情景1中,我们建立一个nginx-2015.11的alias执行本月的其他索引,是不行的。因为一个alias指向多个索引后,写这个alias时,ES不可能知道写入到那个真正的索引中。

解决方案1:

1.新建索引nginx-2015.11 以及它的nginx-2015.11.01,nginx-2015.11.02,...,nginx-2015.11.30等

2.等到了第二天,将logstash的配置改为nginx-YYYY.MM,重启

3.如果索引只保留10天,在10天候的某天,将kibana的配置改为nginx-YYYY.MM

缺点:第二步和第三步需要手工,可以写crontab定时任务

我们不希望用户(Kibaba的使用者)感觉到任何变化,更不能让使用者感觉到数据的丢失。

到此,关于"Elasticsearch索引别名怎么创建"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

索引 别名 数据 配置 情景 日志 学习 多个 不同 使用者 字段 感觉 方案 更多 解决方案 帮助 不行 实用 接下来 不仅仅 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络机顶盒视窗如何连接服务器 sql2005数据库并联 克山软件开发项目管理在线咨询 citrix文件服务器 易语言 远程连接数据库 台州高清视频系统服务器 怎么讲网络安全视频 软件开发代运营协议 计算机应用网络安全防范对策 服务器管理终端什么意思 ano数据库 怀柔区品牌软件开发程序 手机无法联接服务器1302 开发联网安卓软件开发 荔湾物联网软件开发哪家好 深圳市第5届网络安全周 网络技术包括安装网线吗 饥荒为什么无法到达科雷服务器 数据库SQL语言嵌套查询 省考网络安全管理专业知识 我的世界奥特曼服务器下载 国开秋季数据库应用技术形考 苏州阿里云服务器业务部署 人民网灵镜服务器异常 sql游戏数据库 宝山区通信网络技术管理系统 华为V5服务器安装08系统 公安机关开展信息网络安全审核 大学生网络安全报告范文 国家网络安全手抄报初中
0