【SRE】Datadog的机制。【SRE】Datadog的运行机制

Kubernetes的监控

Datadog是如何监控Kubernetes的?

「Kubernetes のモニタリング」 には、「Kubernetes 上で動くコンテナたち」と「Kubernetes クラスタ」へのモニタリングが含まれています。
ここでは、「Kubernetes 上で動くコンテナたち」について記載します。
また以降に関しては、下記記事をメインに記載していきます。
Monitoring Kubernetes with Datadog autodiscovery | Datadog

Datadog的机制是什么?

在监视容器的方法中,存在以下两种模式。

代理人作为边车容器

在同一主机上以另一个容器的形式部署监控代理的模式。在Kubernetes中,可以通过使用Pod的机制来实现。

image.png

具备自动发现功能的代理程序

根据以下内容,在每个host上只需安装一个datadog-agent。具体来说,如果有3个Node,则需要安装3个datadog-agent。

image.png

获取Kubernetes指标的流程

各节点上的所有容器的基本指标(CPU、内存、磁盘、网络)由cAdvisor收集。
每个节点的kubelet从同一主机的cAdvisor获取监控数据。
Heapster从每个kubelet收集监控数据。
Heapster将数据发送到存储后端(目前为InfluxDB)。
InfluxDB将接收到的数据持久化。
Grafana根据InfluxDB中持久化的数据进行可视化。
kubedash根据Heapster的短期数据进行可视化。

从Datadog自动发现工具监控Kubernetes | 引自Datadog。

cAdvisor is 提供容器资源使用统计和性能分析的一个工具.

它能够收集容器的资源信息(如CPU、内存等)。

【Docker】关于使用cAdvisor监视Docker容器的方法- Qiita

堆史塔

image.png

Datadog指标获取流程

用户可以在 KV 存储中设置每个 Docker 镜像的”监控设置模板”
dd-agent 从 KV 存储中获取”监控设置模板”
dd-agent 从 kubelet 获取 pod 列表
dd-agent 根据”监控设置模板”和 pod 列表动态生成监控配置文件
dd-agent 监控返回基于生成的监控配置文件的自定义指标端点
只有包含”监控设置模板”的容器镜像才会成为监控的目标(监控目标仅限于同一主机上的容器)

引用自 Datadog 的《使用 Datadog 自动发现监控 Kubernetes》

其他有用的文章参考

如何使用Datadog监控Google Kubernetes Engine | Datadog
使用Datadog监控Kubernetes | Datadog
在Qiita上了解使用Datadog监控Kubernetes时需要注意的事项
Datadog资源在GitHub上的存储库

bannerAds