云采集(指标采集方案介绍常见架构模式Daemons优采云采集器端agent(组图))

优采云 发布时间: 2022-01-15 08:18

  云采集(指标采集方案介绍常见架构模式Daemons优采云采集器端agent(组图))

  介绍:

  众所周知,对于一个云原生的PaaS平台来说,在页面上查看日志和指标是最基本的功能。无论是日志、指标还是链接跟踪,基本上都分为三个模块:采集、存储和展示。

  在这里,笔者将介绍云原生下常用指标&日志的采集解决方案,以及Erda作为云原生PaaS平台是如何实现的。

  指标采集程序介绍常用架构模式1.守护进程

  

  采集客户端代理通过Daemonset部署在各个节点上。这种模式下,指标通常由agent主动采集获取。常用代理有 telegraf、metricbeat、cadvisor 等。

  应用场景:

  2. 推拉

  

  当我们需要采集程序的内部指标时,我们通常使用代理主动拉取指标或客户端主动推送指标。

  应用场景:

  那么,是推还是拉?

  我认为这取决于实际的应用场景。比如对于短期任务,由于agent可能还没有启动采集,所以已经结束了,所以我们使用push方式;但是对于Web服务来说,这个问题就不存在了,pull的方式也可以减少用户端。负担。

  开源解决方案简介

  

  作为 CNCF 的 2 号毕业生,Prometheus 从诞生之初就基本成为了云原生尤其是 Kubernetes 的官方监控解决方案。

  它其实是一个完整的解决方案,这里我们主要介绍它的采集功能。

  和push&pull的方案基本一样,但是因为是丰富的exporter系统,所以基本可以采集在节点层面收录各种指标。

  二达采用的架构方案

  

  在Erda,目前的解决方案是通过二次打开telegraf,利用其丰富的采集插件,合并Daemonset和push-pull的解决方案。

  日志采集程序介绍常见架构模式1.守护进程

  

  如果容器中应用的日志输出到stdout,容器运行时会通过logging-driver模块输出到其他媒体,一般是本地磁盘。比如Docker通常通过json-driver docker/containers//*.log文件将日志输出到/var/log/。

  对于这种场景,我们一般使用Daemonset方案,即在每个节点上部署一个采集器,通过读取机器上的日志文件来记录采集日志。

  2. 边车

  

  Daemonset 方案也有一些限制,例如,当应用程序日志输出到日志文件时,或者当您要为日志配置一些处理规则(例如,多行规则、日志提取规则)时。

  这时候可以使用Sidecar方案,logging-agent和应用容器可以共享日志目录,主动上报给采集。

  3. 主动举报

  

  当然也可以主动上报日志(一般是通过厂商提供的SDK)。

  常见的应用场景有:

  开源解决方案简介

  

  在业界,比较有名的是使用ELK作为日志解决方案,当然也是一个完整的解决方案。采集模块主要使用beats作为采集端,logstash作为日志采集的主要入口,elasticsearch作为存储,kibana作为展示层。

  尔达的建筑

  

  在 Erda 中,我们使用 fluent-bit 进行日志记录采集器:

  概括

  不难看出,无论是指标还是日志,data采集方案都比较简单明了,我们可以根据实际场景进行混搭。但是,随着集群规模的增长和用户定义需求的增加,往往会出现以下困难:

  对于这些问题,我们也在不断的探索和实践中,会在后续的文章中分享。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线