Containerd 集成

编辑

Containerd 集成

编辑

版本

0.4.0 [beta] 此功能处于 Beta 测试阶段,可能会发生变化。其设计和代码不如正式 GA 功能成熟,按原样提供,不提供任何保证。Beta 功能不受正式 GA 功能的支持 SLA 约束。 (查看全部)

兼容的 Kibana 版本

8.13.0 或更高版本

支持的无服务器项目类型
这是什么?

安全
可观测性

订阅级别
这是什么?

基本

此集成用于从 containerd 运行时收集指标。

它收集由 containerd 控制的正在运行的容器的 cpu、内存和 blkio 统计信息。

当前的数据集是:cpublkiomemory,默认情况下启用。

兼容性

编辑

Containerd 集成当前已使用 Containerd 版本 v1.5.2 进行测试。

先决条件

编辑

必须先配置 Containerd 守护进程以提供指标,然后才能启用 containerd 集成。

在位于 /etc/containerd/config.toml 中的配置文件中,需要设置指标端点,并且需要重新启动 containerd 守护进程。

[metrics]
    address = "127.0.0.1:1338"

特定于集成的配置说明

编辑

对于 cpu 数据流,如果 计算 cpu 使用率百分比 设置为 true,则将计算 cpu 使用率百分比,更具体地说,字段为 containerd.cpu.usage.total.pctcontainerd.cpu.usage.kernel.pctcontainerd.cpu.usage.user.pct。默认值为 true

对于内存数据流,如果 计算内存使用率百分比 设置为 true,则将计算内存使用率百分比,更具体地说,字段为 containerd.memory.usage.pctcontainerd.memory.workingset.pct。默认值为 true

指标

编辑

这是 Containerd 包的 cpu 数据集。它从 containerd 的指标 API 收集与 cpu 相关的指标。

导出的字段
字段 描述 类型 单位 指标类型

@timestamp

事件时间戳。

日期

agent.id

此代理的唯一标识符(如果存在)。例如:对于 Beats,这将是 beat.id。

关键字

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。例如:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

关键字

cloud.availability_zone

此主机、资源或服务所在的可用区。

关键字

cloud.instance.id

主机机器的实例 ID。

关键字

cloud.provider

云提供商的名称。示例值为 aws、azure、gcp 或 digitalocean。

关键字

cloud.region

此主机、资源或服务所在的区域。

关键字

container.cpu.usage

由 CPU 核心数归一化的总 CPU 使用率。

scaled_float

百分比

指标

container.id

唯一容器 ID。

关键字

containerd.cpu.system.total

用户和系统 CPU 总时间(以秒为单位)。

双精度

指标

containerd.cpu.usage.cpu.*.ns

此 cpu 中的 CPU 使用率纳秒。

对象

containerd.cpu.usage.kernel.ns

CPU 内核使用率纳秒

双精度

纳秒

指标

containerd.cpu.usage.kernel.pct

由 CPU 核心数归一化的内核空间时间百分比。

scaled_float

百分比

指标

containerd.cpu.usage.total.ns

CPU 总使用率纳秒

双精度

纳秒

指标

containerd.cpu.usage.total.pct

由 CPU 核心数归一化的总 CPU 时间百分比

scaled_float

百分比

指标

containerd.cpu.usage.user.ns

CPU 用户使用率纳秒

双精度

纳秒

指标

containerd.cpu.usage.user.pct

由 CPU 核心数归一化的用户空间时间百分比。

scaled_float

百分比

指标

containerd.namespace

Containerd 命名空间

关键字

data_stream.dataset

数据流数据集。

常量关键字

data_stream.namespace

数据流命名空间。

常量关键字

data_stream.type

数据流类型。

常量关键字

ecs.version

此事件符合的 ECS 版本。ecs.version 是一个必填字段,必须存在于所有事件中。在跨多个索引(这些索引可能符合略有不同的 ECS 版本)进行查询时,此字段允许集成调整为事件的架构版本。

关键字

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送者决定要使用哪个值。

关键字

service.address

从中收集此服务数据的地址。这应该是一个 URI、网络地址(ipv4:port 或 [ipv6]:port)或资源路径(套接字)。

关键字

service.type

从中收集服务数据的服务类型。该类型可用于对来自一种服务类型的日志和指标进行分组和关联。示例:如果从 Elasticsearch 收集日志或指标,则 service.type 将为 elasticsearch

关键字

示例

以下是一个 cpu 的示例事件

{
    "container": {
        "id": "c9b16941acc7ec09a2b5e677d2863dd5c235b95304e7e8432a403f28e4f3e939"
    },
    "agent": {
        "name": "kind-control-plane",
        "id": "e76bdfd9-382f-4f81-be2d-7031ea2f3e0b",
        "ephemeral_id": "09df445e-765a-4333-bb12-ab043d85149a",
        "type": "metricbeat",
        "version": "8.1.0"
    },
    "elastic_agent": {
        "id": "e76bdfd9-382f-4f81-be2d-7031ea2f3e0b",
        "version": "8.1.0",
        "snapshot": false
    },
    "containerd": {
        "namespace": "k8s.io",
        "cpu": {
            "usage": {
                "total": {
                    "pct": 0.004503286370848513,
                    "ns": 497538744548
                },
                "kernel": {
                    "pct": 0.0006661590189871613,
                    "ns": 91920000000
                },
                "user": {
                    "pct": 0.0022482866890816693,
                    "ns": 250140000000
                }
            }
        }
    },
    "@timestamp": "2022-01-17T10:56:05.804Z",
    "ecs": {
        "version": "8.0.0"
    },
    "service": {
        "address": "https://127.0.0.1:1338/v1/metrics",
        "type": "containerd"
    },
    "data_stream": {
        "namespace": "default",
        "type": "metrics",
        "dataset": "containerd.cpu"
    },
    "host": {
        "hostname": "kind-control-plane",
        "os": {
            "kernel": "5.10.47-linuxkit",
            "codename": "Core",
            "name": "CentOS Linux",
            "type": "linux",
            "family": "redhat",
            "version": "7 (Core)",
            "platform": "centos"
        },
        "containerized": true,
        "ip": [
            "10.244.0.1",
            "10.244.0.1",
            "10.244.0.1",
            "192.168.0.2",
            "172.18.0.2",
            "fc00:f853:ccd:e793::2",
            "fe80::42:acff:fe12:2"
        ],
        "name": "kind-control-plane",
        "id": "8572202eb1aa48f1a380b1d48c9ff9c3",
        "mac": [
            "a2:9c:01:82:64:e2",
            "d6:4a:2e:9f:3a:19",
            "4e:3b:ac:65:8e:2e",
            "02:42:c0:a8:00:02",
            "02:42:ac:12:00:02"
        ],
        "architecture": "x86_64"
    },
    "metricset": {
        "period": 10000,
        "name": "cpu"
    },
    "event": {
        "duration": 38067862,
        "agent_id_status": "verified",
        "ingested": "2022-01-17T10:56:06Z",
        "module": "containerd",
        "dataset": "containerd.cpu"
    }
}

内存

编辑

这是 Containerd 包的 memory 数据集。它从 containerd 的指标 API 收集与内存相关的指标。

导出的字段
字段 描述 类型 单位 指标类型

@timestamp

事件时间戳。

日期

agent.id

此代理的唯一标识符(如果存在)。例如:对于 Beats,这将是 beat.id。

关键字

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。例如:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

关键字

cloud.availability_zone

此主机、资源或服务所在的可用区。

关键字

cloud.instance.id

主机机器的实例 ID。

关键字

cloud.provider

云提供商的名称。示例值为 aws、azure、gcp 或 digitalocean。

关键字

cloud.region

此主机、资源或服务所在的区域。

关键字

container.id

唯一容器 ID。

关键字

container.memory.usage

内存使用率百分比。

scaled_float

百分比

指标

containerd.memory.activeFiles

活动文件总字节数。

长整型

字节

指标

containerd.memory.cache

总缓存字节数。

长整型

字节

指标

containerd.memory.inactiveFiles

非活动文件总字节数。

长整型

字节

指标

containerd.memory.kernel.fail.count

内核失败计数器。

scaled_float

计数器

containerd.memory.kernel.limit

内核内存限制。

长整型

字节

指标

containerd.memory.kernel.max

内核最大内存使用率。

长整型

字节

指标

containerd.memory.kernel.total

内核总内存使用率。

长整型

字节

指标

containerd.memory.rss

总内存驻留集大小。

长整型

字节

指标

containerd.memory.swap.fail.count

交换失败计数器。

scaled_float

计数器

containerd.memory.swap.limit

交换内存限制。

长整型

字节

指标

containerd.memory.swap.max

最大交换内存使用率。

长整型

字节

指标

containerd.memory.swap.total

总交换内存使用率。

长整型

字节

指标

containerd.memory.usage.fail.count

失败计数器。

scaled_float

计数器

containerd.memory.usage.limit

内存使用率限制。

长整型

字节

指标

containerd.memory.usage.max

最大内存使用率。

长整型

字节

指标

containerd.memory.usage.pct

总分配内存百分比。

scaled_float

百分比

指标

containerd.memory.usage.total

总内存使用率。

长整型

字节

指标

containerd.memory.workingset.pct

内存工作集百分比。

scaled_float

百分比

指标

containerd.namespace

Containerd 命名空间

关键字

data_stream.dataset

数据流数据集。

常量关键字

data_stream.namespace

数据流命名空间。

常量关键字

data_stream.type

数据流类型。

常量关键字

ecs.version

此事件符合的 ECS 版本。ecs.version 是一个必填字段,必须存在于所有事件中。在跨多个索引(这些索引可能符合略有不同的 ECS 版本)进行查询时,此字段允许集成调整为事件的架构版本。

关键字

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送者决定要使用哪个值。

关键字

service.address

从中收集此服务数据的地址。这应该是一个 URI、网络地址(ipv4:port 或 [ipv6]:port)或资源路径(套接字)。

关键字

service.type

从中收集服务数据的服务类型。该类型可用于对来自一种服务类型的日志和指标进行分组和关联。示例:如果从 Elasticsearch 收集日志或指标,则 service.type 将为 elasticsearch

关键字

示例

以下是一个 memory 的示例事件

{
    "container": {
        "id": "9c46c226469ff14544c97e003f403a457eda5398b9de757179e7d704ac1c8f72"
    },
    "agent": {
        "name": "kind-control-plane",
        "id": "e76bdfd9-382f-4f81-be2d-7031ea2f3e0b",
        "ephemeral_id": "09df445e-765a-4333-bb12-ab043d85149a",
        "type": "metricbeat",
        "version": "8.1.0"
    },
    "elastic_agent": {
        "id": "e76bdfd9-382f-4f81-be2d-7031ea2f3e0b",
        "version": "8.1.0",
        "snapshot": false
    },
    "containerd": {
        "memory": {
            "activeFiles": 2568192,
            "cache": 41631744,
            "rss": 11759616,
            "swap": {
                "fail": {
                    "count": 0
                },
                "total": 54820864,
                "max": 56819712,
                "limit": 9223372036854772000
            },
            "kernel": {
                "fail": {
                    "count": 0
                },
                "total": 1294336,
                "max": 1773568,
                "limit": 9223372036854772000
            },
            "usage": {
                "pct": 5.9436899846332405e-12,
                "fail": {
                    "count": 0
                },
                "total": 54820864,
                "max": 56819712,
                "limit": 9223372036854772000
            },
            "workingset": {
                "pct": 1.7084111902931917e-12
            },
            "inactiveFiles": 39063552
        },
        "namespace": "k8s.io"
    },
    "@timestamp": "2022-01-17T10:53:55.882Z",
    "ecs": {
        "version": "8.0.0"
    },
    "service": {
        "address": "https://127.0.0.1:1338/v1/metrics",
        "type": "containerd"
    },
    "data_stream": {
        "namespace": "default",
        "type": "metrics",
        "dataset": "containerd.memory"
    },
    "host": {
        "hostname": "kind-control-plane",
        "os": {
            "kernel": "5.10.47-linuxkit",
            "codename": "Core",
            "name": "CentOS Linux",
            "family": "redhat",
            "type": "linux",
            "version": "7 (Core)",
            "platform": "centos"
        },
        "containerized": true,
        "ip": [
            "10.244.0.1",
            "10.244.0.1",
            "10.244.0.1",
            "192.168.0.2",
            "172.18.0.2",
            "fc00:f853:ccd:e793::2",
            "fe80::42:acff:fe12:2"
        ],
        "name": "kind-control-plane",
        "id": "8572202eb1aa48f1a380b1d48c9ff9c3",
        "mac": [
            "a2:9c:01:82:64:e2",
            "d6:4a:2e:9f:3a:19",
            "4e:3b:ac:65:8e:2e",
            "02:42:c0:a8:00:02",
            "02:42:ac:12:00:02"
        ],
        "architecture": "x86_64"
    },
    "metricset": {
        "period": 10000,
        "name": "memory"
    },
    "event": {
        "duration": 916030,
        "agent_id_status": "verified",
        "ingested": "2022-01-17T10:53:56Z",
        "module": "containerd",
        "dataset": "containerd.memory"
    }
}

blkio

编辑

这是 Containerd 包的 blkio 数据集。它从 containerd 的指标 API 收集与 blkio 相关的指标。

导出的字段
字段 描述 类型 单位 指标类型

@timestamp

事件时间戳。

日期

agent.id

此代理的唯一标识符(如果存在)。例如:对于 Beats,这将是 beat.id。

关键字

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。例如:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

关键字

cloud.availability_zone

此主机、资源或服务所在的可用区。

关键字

cloud.instance.id

主机机器的实例 ID。

关键字

cloud.provider

云提供商的名称。示例值为 aws、azure、gcp 或 digitalocean。

关键字

cloud.region

此主机、资源或服务所在的区域。

关键字

container.disk.read.bytes

在容器生命周期内读取的字节数

长整型

计数器

container.disk.write.bytes

在容器生命周期内写入的字节数

长整型

字节

计数器

container.id

唯一容器 ID。

关键字

containerd.blkio.device

块设备的名称

关键字

containerd.blkio.read.bytes

在容器生命周期内读取的字节数

长整型

字节

指标

containerd.blkio.read.ops

在容器生命周期内的读取次数

长整型

指标

containerd.blkio.summary.bytes

在容器生命周期内读取和写入的字节数

长整型

字节

指标

containerd.blkio.summary.ops

在容器生命周期内的 I/O 操作次数

长整型

指标

containerd.blkio.write.bytes

在容器生命周期内写入的字节数

长整型

字节

指标

containerd.blkio.write.ops

在容器生命周期内的写入次数

长整型

指标

containerd.namespace

Containerd 命名空间

关键字

data_stream.dataset

数据流数据集。

常量关键字

data_stream.namespace

数据流命名空间。

常量关键字

data_stream.type

数据流类型。

常量关键字

ecs.version

此事件符合的 ECS 版本。ecs.version 是一个必填字段,必须存在于所有事件中。在跨多个索引(这些索引可能符合略有不同的 ECS 版本)进行查询时,此字段允许集成调整为事件的架构版本。

关键字

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送者决定要使用哪个值。

关键字

service.address

从中收集此服务数据的地址。这应该是一个 URI、网络地址(ipv4:port 或 [ipv6]:port)或资源路径(套接字)。

关键字

service.type

从中收集服务数据的服务类型。该类型可用于对来自一种服务类型的日志和指标进行分组和关联。示例:如果从 Elasticsearch 收集日志或指标,则 service.type 将为 elasticsearch

关键字

示例

以下是一个 blkio 的示例事件

{
    "container": {
        "id": "42e49b56969eba4a3657745fba5bf7375e66f1a4b7a55a873f365e86fdc0de9b"
    },
    "agent": {
        "name": "kind-control-plane",
        "id": "e76bdfd9-382f-4f81-be2d-7031ea2f3e0b",
        "ephemeral_id": "09df445e-765a-4333-bb12-ab043d85149a",
        "type": "metricbeat",
        "version": "8.1.0"
    },
    "elastic_agent": {
        "id": "e76bdfd9-382f-4f81-be2d-7031ea2f3e0b",
        "version": "8.1.0",
        "snapshot": false
    },
    "containerd": {
        "blkio": {
            "summary": {
                "ops": 37,
                "bytes": 2838528
            },
            "read": {
                "ops": 37,
                "bytes": 2838528
            },
            "device": "/dev/vda",
            "write": {
                "ops": 0,
                "bytes": 0
            }
        },
        "namespace": "k8s.io"
    },
    "@timestamp": "2022-01-17T10:05:17.991Z",
    "ecs": {
        "version": "8.0.0"
    },
    "service": {
        "address": "https://127.0.0.1:1338/v1/metrics",
        "type": "containerd"
    },
    "data_stream": {
        "namespace": "default",
        "type": "metrics",
        "dataset": "containerd.blkio"
    },
    "host": {
        "hostname": "kind-control-plane",
        "os": {
            "kernel": "5.10.47-linuxkit",
            "codename": "Core",
            "name": "CentOS Linux",
            "family": "redhat",
            "type": "linux",
            "version": "7 (Core)",
            "platform": "centos"
        },
        "ip": [
            "10.244.0.1",
            "10.244.0.1",
            "10.244.0.1",
            "192.168.0.2",
            "172.18.0.2",
            "fc00:f853:ccd:e793::2",
            "fe80::42:acff:fe12:2"
        ],
        "containerized": true,
        "name": "kind-control-plane",
        "id": "8572202eb1aa48f1a380b1d48c9ff9c3",
        "mac": [
            "a2:9c:01:82:64:e2",
            "d6:4a:2e:9f:3a:19",
            "4e:3b:ac:65:8e:2e",
            "02:42:c0:a8:00:02",
            "02:42:ac:12:00:02"
        ],
        "architecture": "x86_64"
    },
    "metricset": {
        "period": 10000,
        "name": "blkio"
    },
    "event": {
        "duration": 36666537,
        "agent_id_status": "verified",
        "ingested": "2022-01-17T10:05:18Z",
        "module": "containerd",
        "dataset": "containerd.blkio"
    }
}

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

0.4.0

增强 (查看拉取请求)
在 data_stream.dataset 上添加全局过滤器以提高性能。

0.3.0

增强 (查看拉取请求)
为指标数据流启用时间序列数据。有关更多详细信息,请参阅 https://elastic.ac.cn/guide/en/elasticsearch/reference/current/tsds.html

0.2.6

增强 (查看拉取请求)
添加 blkio 维度映射和 ECS 字段。

0.2.5

增强 (查看拉取请求)
添加内存维度映射和 ECS 字段。

0.2.4

增强 (查看拉取请求)
添加 cpu 维度映射和 ECS 字段。

0.2.3

增强 (查看拉取请求)
将 ContainerD 概览仪表板迁移到 Lens。

0.2.2

增强 (查看拉取请求)
添加了类别和/或子类别。

0.2.1

增强 (查看拉取请求)
整理 readme.md 中的 markdown

0.2.0

增强 (查看拉取请求)
添加新的 ECS 字段

0.1.0

增强 (查看拉取请求)
创建 containerd 包