腾讯云 ES Serverless x TKE,分钟级低门槛实现一站式可观测容器日志分析
引言
作为云原生技术的爱好者,笔者活跃在各种开发者社群,这不,又让我发现了一个宝藏:腾讯云 Elasticsearch Serverless 服务,具备自动弹性、免运维的特性,丰富的产品能力,能分钟级实现容器服务的日志采集与可观测分析。
一、云原生与容器
随着容器、Serverless、微服务等技术快速发展,云原生已逐步构建出繁荣的技术体系。如今云原生凭借降本增效、提高持续交付能力、易于开发等优势,正在不断激活应用构建范式,引起企业系统架构、生产方式、商业模式等发生变革,毋庸置疑,云原生已成为企业数字化转型的最短路径。
腾讯云容器服务(TKE)是基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,本文将基于腾讯云 ES Serverless 服务,构建 TKE 容器服务日志分析体系,实现分钟级落地,帮助企业轻量化构建容器服务可观测分析的同时实现降本提效。
二、腾讯云 ES Serverless 介绍
笔者认真学习了腾讯云《ES Serverless 一站式日志分析从入门到精通》课程,简单而言,该产品的设计理念、产品能力与优势如下:
设计理念
让算力像自来水一样按需使用一直都是各大云厂商的目标,Serverless 概念的设计思想提出,极大的影响了近几年云计算的发展。在云计算的发展初期,侧重的是能够快速平滑迁移上云,例如把 IDC 资源换成云服务器以及云硬盘等。而现在,客户的需求已经从上好云逐步到转变到用好云,即在释放运维与管理成本的同时,能够更加聚焦于业务,提高效率,实现降本增效。
为了帮助企业能够更好的聚焦于业务,ES Serverless 服务在设计开发中始终坚持以下目标:
1) 索引即服务,无集群概念,可按需创建与使用索引。
2) 按需使用,按量付费,按照实际使用的计算与存储资源按量计费。
3) 不止索引,还是场景化的一站式解决方案,针对每个场景提供相应的开箱即用的能力,提升整体的的使用效率,当前已支持日志分析场景。
值得一提的是,在 2023 年 3 月 29 日召开的企业上云暨算云融合产业大会上,腾讯云 ES Serverless 服务被评为「信通院 “2022 可信算力服务 · 领航者计划” 优秀案例奖」。笔者认真学习了腾讯云《ES Serverless 一站式日志分析从入门到精通》课程,简单而言,该产品的设计理念、产品能力与优势如下:
图一
设计思路
从设计思路上,ES Serverless 服务坚持以下几个点:
1、提升易用性,除了提供开箱即用的一站式场景解决方案外,还实现了集群免运维、索引免运维以及数据链路免运维。
2、降低成本,基于自研存算分离技术,实现自动伸缩,去除冗余成本,同时,完全按照使用量计费。
3、提升稳定性,集群、索引等由平台统一运维调优,避免因使用不当造成的故障。
4、 完全兼容原生 ES 生态与 API,实现无缝迁移。
让算力像自来水一样按需使用一直都是各大云厂商的目标,Serverless 概念的设计思想提出,极大的影响了近几年云计算的发展。在云计算的发展初期,侧重的是能够快速平滑迁移上云,例如把 IDC 资源换成云服务器以及云硬盘等。而现在,客户的需求已经从上好云逐步到转变到用好云,即在释放运维与管理成本的同时,能够更加聚焦于业务,提高效率,实现降本增效。
为了帮助企业能够更好的聚焦于业务,ES Serverless 服务在设计开发中始终坚持以下目标:
1) 索引即服务,无集群概念,可按需创建与使用索引。
2) 按需使用,按量付费,按照实际使用的计算与存储资源按量计费。
3) 不止索引,还是场景化的一站式解决方案,针对每个场景提供相应的开箱即用的能力,提升整体的的使用效率,当前已支持日志分析场景。
值得一提的是,在 2023 年 3 月 29 日召开的企业上云暨算云融合产业大会上,腾讯云 ES Serverless 服务被评为「信通院 “2022 可信算力服务 · 领航者计划” 优秀案例奖」。
产品能力
从产品架构上,面向日志场景,ES Serverless 服务提供自动弹性、完全免运维的一站式日志分析解决方案,在使用时,用户仅需关注数据源以及检索分析等业务逻辑即可,中间的流量调度、链路调度以及资源调度全部由 ES Serverless 服务完成,不需要再关注底层的数据链路、消息队列、集群运维以及索引配置等等,平台提供端到端的 SLA 保障。
除了支持原生的 ES API 写入方式之外,控制台已支持云服务器 CVM、容器服务 TKE、EMR、腾讯云数据仓库 TCHouse 等云产品的一站式数据采集分析,同时也支持通过 Logstash、Flink 以及 Kafka 等将数据投递到 ES Serverless 服务的索引中。简单而言,只需 3 步,我们即可完成一站式日志分析场景的落地。
在索引管理方面,则提供了配置管理、指标监控、用户管理以及告警管理等能力,可方便我们快速完成数据应用。而在检索分析能力方面,除了支持原生的 Kibana 能力,ES Serverless 服务也在控制台内嵌了 Kibana 的相关核心能力,无需外链访问,即可快速进行检索分析。
图二
产品优势
自动弹性:索引粒度的自动弹性伸缩,从容应对突发流量增长,在保证业务连续性的同时降低日志分析、可观测性等场景下业务波峰波谷导致的运维与管理成本高等问题 。
完全免运维:内置分片自动调优、智能生命周期管理以及故障自愈等能力,用户可按需创建与使用索引,无需关心底层的资源配置、集群扩缩容和索引设置等问题,整个使用过程完全免运维。
灵活易用:提供端到端从数据接入、到数据管理、再到数据分析探索的一站式产品能力,极大降低业务上云门槛,可在分钟级实现业务落地。
极致成本:自研低成本、高性能、高可用的存算分离架构,根据实际访问与存储量计费,实现业务负载与资源动态匹配的按需付费,减少闲置资源导致的冗余成本支出,大幅降低成本。
开放集成:完全兼容 Elastic Stack 生态,保留用户原有使用习惯,实现无缝迁移,助力业务快速上云;同时,打通云上数据源(如云服务器 CVM、容器服务 TKE),降低数据接入门槛,实现分钟级业务落地。
稳定可靠:集群配置、读写性能由后台统一优化,减少由于使用不当带来的故障问题,提升稳定性,为业务保驾护航。
三、日志分析实践
日志采集
ES Serverless 服务目前已在控制台提供了一站式的容器服务日志采集,只需简单的选择需采集的容器集群,设置相关采集参数,同时设置数据保存时长等,即可快速完成 TKE 日志接入。参考如下:
1)在 ES Serverless 控制台选择「容器服务 TKE」:
图三
2)选择 TKE 集群,目前支持基于命名空间、Pod 标签、容器名称或是主机路径进行日志筛选:
图四
3)如需对上报到的日志进行解析,可设置采集解析,当前已支持全文日志、JSON 格式以及分隔符解析,如有更丰富的解析需求,也可自行编写 Processors,实现自定义解析。此处我们选择「全文日志」:
图五
图六
4)设置索引名称以及数据存储时长,同时需设置时间字段,该字段指在实际数据中类型为 date 的字段,通过设置该字段,可有助于提升查询效率。
图七
通过以上简单几步,我们即可快速将容器日志采集到 ES Serverless 的索引中,点击「确认创建」,等待约 5-10 秒即可。
图八
报表建设
ES Serverless 目前已在控制台集成了日志检索、开发工具以及监控告警等能力,可帮助我们快速实现检索分析。作为二流“资深”ES 使用者,笔者习惯使用 Kibana 进行分析,方便通过外链进行分享交流。
监控告警
为了在错误日志出现时能及时发现与处理,我们可先在控制台配置监控告警,例如,通过统计五分钟内来自/var/log/error.log 路径的日志条数,快速识别异常,当超出阈值时,告警到我们的邮箱与企业微信。
图九
可观测分析
首先登录 Kibana,我们找到 Kibana 的公网访问地址,为确保公网访问安全性,在访问前,需将我们的 IP 地址设置到公网访问策略中。
图十
点击 Dashboard,我们可快速创建图表:
图十一
点击「Create visualization」:
图十二
Kibana 的 Lens 功能非常易用跟强大,仅需将光标移动到左侧的字段,并拖拽到中间,即可生成图表,同时下方还提供了其他图表建议,方便我们快速进行分析。如下图,我们将「@timestamp」以及「pod.name」两个字段拖拽到了中间,Lens 快速生成了柱状图,通过该图,我们可快速了解每个时间段每个 Pod 上报的日志数量。
图十三
在捣腾了将近 30 秒后,笔者制作了如下分析大盘,事不宜迟,让我们来看看效果:
1)首先第一行,是各种总览数据,如节点数量、Pod 数量以及日志条数;第二行是节点-Pod 分布;第三行则是具体的日志数据。即整体按照总览-多维分布-日志层层下钻。
图十四
2)从上图中,我们看到 10.0.0.2 这个节点的日志数量占比将近一半,ok,那我们可以逮着它来分析,只需在上图的「节点-Pod」多维分析图中,点击该节点所在的区域,即可自动生成筛选条件,将该节点相关的数据全部筛选出来并在日志中高亮。
图十五
3)当想改变日志展示风格时,下方支持了表单模式跟 JSON 模式,任君选择;当发现当前日志发生的问题可能需要上下文才能辅助分析,OK,点击「view surrouding documents」即可。
图十六
例如,查看该日志的前一条与后一条日志:
图十七
权限控制
当然,在实际业务应用场景中,我们难免需要将权限分享给团队的其他同事,这时候,权限管控的就显得尤为重要,例如对于 A 同事,仅分配查看某些索引的读权限,而对于 B 同事,则支持读写所有索引。
关于这个场景的能力,ES Serverless 也充分帮我们考虑到了(爱了!),在控制台,我们点击「新建用户」,即可开始创建用户:
图十八
权限类型目前支持「只读」与「读写」,权限范围包含所有索引以及指定索引,填写完成后,点击「确定」即可:
图十九
例如我设置「hd_man」用户仅对 TKE 相关的索引有只读权限,那么设置完成之后,我通过该用户登入 Kibana,即只能查看到 TKE 日志相关的索引:
图二十
四、总结
本文简单介绍了基于腾讯云 ES Serverless 服务实现一站式容器服务可观测分析,在实践中,笔者只花了几分钟,轻松完成了日志接入与可观测分析报表建设,从这点上来说,ES Serverless 服务真正做到了轻量、零门槛。
评论