数据采集 采集源配置 Docker 容器对象采集
Docker 容器对象采集
简介
采集 docker 容器数据作为对象上报到 DataFlux 中。
前置条件
- 已安装 docker 1.24(docker 官方链接)
- 已安装 DataKit(DataKit 安装文档)
配置
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_usage
和mem_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 |