Elasticsearch集群多租户解决方案探索
创始人
2025-07-07 16:11:44
0

概述

Elasticsearch是一款强大的实时搜索和分析引擎,设计用于处理海量数据。它采用分布式架构,能够轻松地扩展以应对大规模数据的需求。通过使用JSON格式存储数据,Elasticsearch提供了灵活性,同时具备强大的查询语言,能够支持全文搜索、范围查询和聚合操作。它在处理大规模数据方面也是非常出色,适用于各种实时应用,如监控日志、数据分析等业务场景。

单租户面临的问题

这里的租户特指访问集群的用户

单租户场景:所有访问者使用相同用户身份操作集群数据

多租户场景:不同用户有不同的用户角色(Role),不同用户对不同资源有不同权限

  • 索引命名混乱:索引名称很随意,如果没有运维平台管理,从索引名称也无法追随到具体的业务归属。成为孤儿索引
  • 索引生命周期管理: 没有清理策略,每次都是发现集群容量到达水位,临时删除数据量大、历史归档的索引
  • 权限及隔离性:无,都是管理员,都有最大权限,索引无隔离性,索引被其他业务无意删除等问题

解决思路

对于上面的几个突出问题,我们可以通过一些规范+ES本身的能力,可以规避这些问题。

  • 命名规范:这里的索引命名很重要,这里的命名规则会作用到后面介绍的权限的配置,做好命名规范对集群管理和自动化都是基本要求,我司使用基于资产服务树体系结构命名。比如:{团队}_{产品线}_{服务组}_{服务}_xxx
  • 生命周期管理:ES自身的 index lifecycle policy 就可以满足我们的需求
  • 权限控制:ElasticSearch在6.8以后的版本中支持了RBAC(基于角色的访问控制),可以在role中配置集群、索引级别的权限,role绑定到user上,即可完成基于indexs级别的控制

实践流程

创建账户及权限

用户名: 可以使用标识业务属性的名称。比如我们公司以{app_name}作为用户名称

Role:指定权限。可以控制到索引,支持正则。

通过kibana创建Role,并分配权限。(inno_sweetfans_*,只允许访问inno_sweetfans开通的索引)。

创建User,关联Role。(User关联到Role之后,就获得了Role规定的权限)。

索引生命周期管理

如果业务索引数据量过大,有索引归档需求,比如按照天、周、月切分索引的,可以配置索引生命周期

配置步骤

  • 添加 Index Lifecycle Policies
  • 创建index template
  • Index Lifecycle Policies 运用到 index template

具体流程

添加Index Lifecycle Policies策略,(Hot phase:多大开始切割;Delete phase:删除多久之前的)。

创建索引模版。(index_patterns写索引前缀来匹配索引)。

删除策略和索引模版关联。运用规则。

方案总结

我们借助ES的RBAC机制构建了一个具有权限控制、资源隔离的环境,解决了单租户模式下的诸多问题,运用了集群的生命周期管理补充了对索引的管理。这个demo只是多租户的一个引子,真实场景需要考虑到业务的复杂性和运维性。

扩展和思考

低于6.8版本的ES不支持权限控制和索引生命周期管理,如何破局?

  • 安全:可以使用http-basic、search guard 等增加权限控制。
  • 生命周期管理:Curator。

通过权限控制虽然解决了资源的访问控制,但是资源抢占、业务优先级等问题依然存在?

  • ES支持对节点打标签(TAG), 可以通过索引和tag绑定做到资源独占。

ES运维过程中的问题?

  • 分片不合理,数据倾斜。
  • 故障定位复杂、分布式集群维护困难。
  • 太多了,不总结了,遇到问题,干就对了。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...