借助云联网打通跨地域的Elasticsearch数据摄入及互联

2021-06-05 17:17:31 浏览数 (2)

背景

在Elasticsearch的多个使用场景中都可能会涉及到跨可用区,甚至是跨地域的数据搬移。比如说,用于生产业务的数据库加速/全文检索/多维检索场景,需要做同城,或者是两地三中心的容灾,需要在跨机房,甚至是跨地域的做主备同步。又或者是大型企业的全观测性解决方案、安全SOC解决方案等,在多个地域均有IT基础设施或者企业IT资产,不仅需要将汇总数据集中在统一的运营中心进行监控与分析,并且需要将分散于各地的日志,指标,追踪,遥测,拨测等多个维度的数据集中一起,做统一的数据管理,加快故障地位和根因分析的过程,也需要跨地域的数据集成。

通常情况下,腾讯云上的位于不同VPC的云基础设施是互相隔离的。要实现上面所提到的场景,必须借助云联网(Cloud Connect Network,CCN)功能才可能实现VPC之间,VPC 与本地数据中心间(IDC)之间的内网互联,做到全网多点互联、路由自学习、链路选优及故障快速收敛。

案例介绍

这里,假设我们正在做一个云原生的全观测性项目,在北京区域下有一个容器服务:

image.pngimage.png

在同一个VPC和同一个可用区下,有一个ES集群:

image.pngimage.png

通过安装beats, apm等组件,我们可以获得该可用区下所有云原生基础设施的可见性:

k8s的运行状态:

image.pngimage.png

所有hosts/pod的运行指标:

image.pngimage.png

所有服务的分布式追踪:

image.pngimage.png

但假设,我们在成都可用区的数据也想接进来,应该如何操作呢

配置云联网

云产品-> 私有网络-> 云联网 配置目录下新建一个云联网实例,在这里,我需要打通北京和成都的VPC链接:

云联网.gif云联网.gif

然后,需要在云产品-> 私有网络 -> 路由表中,确保每个VPC的路由表中,云联网实例的路由是打开的:

可以看到,这里成都VPC的ip网段是10.0.0.0/16,而北京VPC的网段是192.168.0.0/16,从成都连到北京的下一跳是云联网,而非LOCAL

测试

配置完成后,我们可以登录成都区域的主机,ping一下远程主机:

image.pngimage.png

也可以尝试访问ES:

image.pngimage.png

唯一需要注意的是云联网的保底测试带宽只有10k,需要根据自己的需求和经费确定合适的带宽:

云联网费用.png云联网费用.png

最佳实践

考虑到跨地域互联有不少的云联网带宽费用,为了能够以尽可能低的成本打通各个可用区之间的数据,我们可以在多个可用区均搭建ES集群,在各个集群内部,将要发送的数据,通过transform功能进行持续的预聚合,转置出新的索引:

image.pngimage.png

然后通过跨集群查询/跨集群复制功能,将这个索引进行远程同步:

image.pngimage.png

0 人点赞