云原生监控实践(1)TKE集群中守护进程的监控采集

2021-03-31 21:55:00 浏览数 (1)

在TKE集群中,有些组件是以daemonSet或者二进制的方式运行在集群中的节点上,作为了节点上的守护进程。对于这类组件的监控采集,也是支持接入到TKE的云原生监控中。接下来以Docker Daemon为例来描述下接入方案。

Docker Daemon以二进制文件的方式(或者systemd 服务的方式)直接运行在集群中的节点上,提供容器相关操作的底层支持。

Docker Daemon本身也有暴露出一些监控指标,并且支持接入promethues。

云原生监控

云原生监控的数据采集配置支持了三个配置入口:ServiceMonitor、PodMonitor、RawJob,其中ServiceMonitor、PodMonitor属于promethues operator中的CRD资源;而RawJob,则是指具体的原生的scrape config配置。

本文描述的Docker Daemon的监控采集也主要是基于云原生监控的RawJob配置入口来实现。

采集方案

方案架构图方案架构图

1 通过新增RawJob配置,应用到云原生监控,来采集TKE集群中节点上的docker daemon的监控。

2 云原生监控通过k8s服务发现配置(kubernetes_sd_config)自动从TKE集群同步所有的node实例,并作为当前RawJob的target实例。

实施步骤

1 配置node节点上的Docker daemon配置文件,开启metrics

代码语言:txt复制
{
  "metrics-addr" : "0.0.0.0:9323",
  "experimental" : true
}

2 配置RawJob

代码语言:txt复制
scrape_configs:
- job_name: docker-daemon
  honor_timestamps: true
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
  - role: node
  relabel_configs:
  - separator: ;
    regex: __meta_kubernetes_node_label_(. )
    replacement: $1
    action: labelmap
  - source_labels: [__address__]
    separator: ;
    regex: ([^:;] ):(d )
    target_label: __address__
    replacement: ${1}:9323
    action: replace

配置好RawJob之后,可以在"查看Target"页面,查看Target的状态。

grafana面板配置

当配置好RawJob之后,我们就可以配置下grafana面板来直观地展示Docker Daemon的运行情况。

举例:Docker Daemon处于不同状态的容器数目统计:

image.pngimage.png

参考文档:

https://www.cnblogs.com/tencent-cloud-native/p/14175775.html

https://docs.docker.com/config/daemon/prometheus/

0 人点赞