search
数据采集 采集源配置 Docker 容器对象采集

Docker 容器对象采集

简介

采集 docker 容器数据作为对象上报到 DataFlux 中。

前置条件

配置

Docker 服务容器监听端口配置

如果需要远程采集 docker 容器信息,需要 docker 开启相应的监听端口。

以 ubuntu 为例,需要在 /etc/docker 径路下打开或创建 daemon.json 文件,添加内容如下:

{
    "hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}

重启服务后,docker 便可以监听 2375 端口。详情见官方配置文档

Container 容器信息采集器配置

进入 DataKit 安装目录下的 conf.d/docker 目录,复制 docker_containers.conf.sample 并命名为 docker_containers.conf。示例如下:

[[inputs.docker_containers]]
    # Docker Endpoint
    # To use TCP, set endpoint = "tcp://[ip]:[port]"
    # To use environment variables (ie, docker-machine), set endpoint = "ENV"
    endpoint = "unix:///var/run/docker.sock"

    # 采集间隔时长,数字+单位,有效的时间单位 "ns", "us" (or "µs"), "ms", "s", "m", "h"
    # 不可以小于等于 0,必须在 5m 到 1h 之间,否则使用默认 5m
    # 必填
    interval = "5m"

    # 是否采集所有容器,包括 Exited 状态
    all = false

    ## Optional TLS Config
    # tls_ca = "/etc/telegraf/ca.pem"
    # tls_cert = "/etc/telegraf/cert.pem"
    # tls_key = "/etc/telegraf/key.pem"
    ## Use TLS but skip chain & host verification
    # insecure_skip_verify = false

    ## 使用 containerID link kubernetes pods
    [inputs.docker_containers.kubernetes]
    #   ## URL for the kubelet
      url = "http://127.0.0.1:10255"
    #
    #   ## Use bearer token for authorization. ('bearer_token' takes priority)
    #   ## If both of these are empty, we'll use the default serviceaccount:
    #   ## at: /run/secrets/kubernetes.io/serviceaccount/token
    #   # bearer_token = "/path/to/bearer/token"
    #   ## OR
    #   # bearer_token_string = "abc_123"
    #
    #   ## Optional TLS Config
    #   # tls_ca = /path/to/cafile
    #   # tls_cert = /path/to/certfile
    #   # tls_key = /path/to/keyfile
    #   ## Use TLS but skip chain & host verification
    #   # insecure_skip_verify = false

kubernetes容器对象采集

如果配置了 inputs.docker_containers.kubernetes,将查询对应 kubernetes 服务的所有 pod 信息,找到与 container_id 对应的 pod,取其中几个字段。

数据字段

名称 描述 类型
name tags string
container_id fields string
images_name fields string
container_name fields string
restart_count fields int
status fields string
created_time fields(时间戳,单位秒) int
start_time fields(时间戳,单位毫秒) int
message fields string

此容器的资源占用情况,除cpu_usagemem_usage_percent以外,其他字段的单位是字节

名称 描述 类型
cpu_usage fields(cpu使用率) float
mem_usage fields float
mem_limit fields float
mem_usage_percent fields(mem使用率) float
network_in fields float
network_out fields float
block_in fields float
block_out fields float

采集 kubernetes pod 新增字段

名称 描述 类型
pod_name fields string
pod_namespace fields string