【SRE】Datadog的机制。【SRE】Datadog的运行机制
Kubernetes的监控
Datadog是如何监控Kubernetes的?
「Kubernetes のモニタリング」 には、「Kubernetes 上で動くコンテナたち」と「Kubernetes クラスタ」へのモニタリングが含まれています。
ここでは、「Kubernetes 上で動くコンテナたち」について記載します。
また以降に関しては、下記記事をメインに記載していきます。
Monitoring Kubernetes with Datadog autodiscovery | Datadog
Datadog的机制是什么?
在监视容器的方法中,存在以下两种模式。
代理人作为边车容器
在同一主机上以另一个容器的形式部署监控代理的模式。在Kubernetes中,可以通过使用Pod的机制来实现。

具备自动发现功能的代理程序
根据以下内容,在每个host上只需安装一个datadog-agent。具体来说,如果有3个Node,则需要安装3个datadog-agent。

获取Kubernetes指标的流程
各节点上的所有容器的基本指标(CPU、内存、磁盘、网络)由cAdvisor收集。
每个节点的kubelet从同一主机的cAdvisor获取监控数据。
Heapster从每个kubelet收集监控数据。
Heapster将数据发送到存储后端(目前为InfluxDB)。
InfluxDB将接收到的数据持久化。
Grafana根据InfluxDB中持久化的数据进行可视化。
kubedash根据Heapster的短期数据进行可视化。从Datadog自动发现工具监控Kubernetes | 引自Datadog。
cAdvisor is 提供容器资源使用统计和性能分析的一个工具.
它能够收集容器的资源信息(如CPU、内存等)。
【Docker】关于使用cAdvisor监视Docker容器的方法- Qiita
堆史塔

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上的存储库