Docker 集成

编辑

版本

2.12.0 (查看全部)

兼容的 Kibana 版本

8.8.0 或更高版本

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

安全性
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

此集成从 Docker 容器收集指标和日志。指标收集的默认数据流包括:containercpudiskiohealthcheckinfomemorynetworkimage 指标集默认未启用。用于收集容器日志的 container_logs 数据流默认启用。

兼容性

编辑

Docker 模块目前已在 Linux 和 Mac 上使用社区版引擎 1.11 和 17.09.0-ce 版本进行了测试。

在 Docker 内部运行

编辑

docker 集成将尝试连接到 Docker 套接字,默认位于 unix:///var/run/docker.sock。如果 Elastic Agent 在 Docker 内部运行,您需要在容器内部挂载 Unix 套接字。

docker run -d \
  --name=metricbeat \
  --user=root \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  docker.elastic.co/beats/metricbeat:latest metricbeat -e \
  -E output.elasticsearch.hosts=["elasticsearch:9200"]

对于日志收集,由于容器的发现是自动进行的,因此同样需要访问 unix:///var/run/docker.sock,以便 Agent 能够监视容器事件。此外,还需要访问容器的日志文件,这些文件默认遵循 /var/lib/docker/containers/${docker.container.id}/*-json.log 模式。如果 Elastic Agent 在 Docker 内部运行,您还需要在容器内部挂载日志目录。

docker run -d \
  --name=metricbeat \
  --user=root \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
  docker.elastic.co/beats/metricbeat:latest metricbeat -e \
  -E output.elasticsearch.hosts=["elasticsearch:9200"]

在所有情况下,请确保 Agent 具有访问这些文件的适当权限。

模块特定的配置说明

编辑

强烈建议您以 3 秒或更长的 period 运行 Docker 指标集。对 Docker API 的请求已经需要长达 2 秒的时间。指定小于 3 秒将导致请求超时,并且这些请求将不会报告任何数据。

指标

编辑

容器

编辑

Docker container 数据流收集有关正在运行的 Docker 容器的信息和统计数据。

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.container.command

在 Docker 容器中执行的命令。

keyword

docker.container.created

创建容器的日期。

date

docker.container.ip_addresses

容器 IP 地址。

ip

docker.container.labels.*

容器标签

object

docker.container.size.root_fs

容器中所有文件的总大小。

long

gauge

docker.container.size.rw

自创建以来创建或更改的文件的大小。

long

gauge

docker.container.status

容器状态。

keyword

docker.container.tags

镜像标签。

keyword

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

以下是 container 的示例事件

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "agent": {
        "hostname": "host.example.com",
        "name": "host.example.com"
    },
    "container": {
        "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a",
        "image": {
            "name": "metricbeat_elasticsearch"
        },
        "name": "metricbeat_elasticsearch_1_df866b3a7b3d",
        "runtime": "docker"
    },
    "docker": {
        "container": {
            "command": "/usr/local/bin/docker-entrypoint.sh eswrapper",
            "created": "2019-02-25T10:18:10.000Z",
            "ip_addresses": [
                "172.23.0.2"
            ],
            "labels": {
                "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78",
                "com_docker_compose_container-number": "1",
                "com_docker_compose_oneoff": "False",
                "com_docker_compose_project": "metricbeat",
                "com_docker_compose_service": "elasticsearch",
                "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d",
                "com_docker_compose_version": "1.23.1",
                "license": "Elastic License",
                "org_label-schema_build-date": "20181006",
                "org_label-schema_license": "GPLv2",
                "org_label-schema_name": "elasticsearch",
                "org_label-schema_schema-version": "1.0",
                "org_label-schema_url": "https://elastic.ac.cn/products/elasticsearch",
                "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker",
                "org_label-schema_vendor": "Elastic",
                "org_label-schema_version": "6.5.1"
            },
            "size": {
                "root_fs": 0,
                "rw": 0
            },
            "status": "Up 7 minutes (healthy)"
        }
    },
    "event": {
        "dataset": "docker.container",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "container"
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

Docker cpu 数据流收集运行时 CPU 指标。

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.cpu.usage

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

scaled_float

percent

gauge

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.container.labels.*

容器标签

object

docker.cpu.core.*.norm.pct

此内核中 CPU 时间的百分比,由 CPU 内核数量归一化。

scaled_float

percent

gauge

docker.cpu.core.*.pct

此内核中 CPU 时间的百分比。

scaled_float

percent

gauge

docker.cpu.core.*.ticks

此内核中的 CPU 滴答数。

long

counter

docker.cpu.kernel.norm.pct

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

scaled_float

percent

gauge

docker.cpu.kernel.pct

内核空间中时间的百分比。

scaled_float

percent

gauge

docker.cpu.kernel.ticks

内核空间中的 CPU 滴答数。

long

counter

docker.cpu.system.norm.pct

系统中总 CPU 时间的百分比,由 CPU 内核数量归一化。

scaled_float

percent

gauge

docker.cpu.system.pct

系统中总 CPU 时间的百分比。

scaled_float

percent

gauge

docker.cpu.system.ticks

CPU 系统滴答数。

long

counter

docker.cpu.total.norm.pct

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

scaled_float

percent

gauge

docker.cpu.total.pct

总 CPU 使用率。

scaled_float

percent

gauge

docker.cpu.user.norm.pct

用户空间中时间的百分比,由 CPU 内核数量归一化。

scaled_float

percent

gauge

docker.cpu.user.pct

用户空间中时间的百分比。

scaled_float

percent

gauge

docker.cpu.user.ticks

用户空间中的 CPU 滴答数。

long

counter

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

以下是 cpu 的示例事件

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "container": {
        "id": "7f3ca1f1b2b310362e90f700d2b2e52ebd46ef6ddf10c0704f22b25686c466ab",
        "image": {
            "name": "metricbeat_beat"
        },
        "name": "metricbeat_beat_run_8ba23fa682a6",
        "runtime": "docker"
    },
    "docker": {
        "container": {
            "labels": {
                "com_docker_compose_oneoff": "True",
                "com_docker_compose_project": "metricbeat",
                "com_docker_compose_service": "beat",
                "com_docker_compose_slug": "8ba23fa682a68e2dc082536da22f59eb2d200b3534909fe934807dd5d847424",
                "com_docker_compose_version": "1.24.1"
            }
        },
        "cpu": {
            "core": {
                "0": {
                    "norm": {
                        "pct": 0.00105707400990099
                    },
                    "pct": 0.00845659207920792,
                    "ticks": 7410396430
                },
                "1": {
                    "norm": {
                        "pct": 0.004389216831683168
                    },
                    "pct": 0.035113734653465345,
                    "ticks": 7079258391
                },
                "2": {
                    "norm": {
                        "pct": 0.003178435024752475
                    },
                    "pct": 0.0254274801980198,
                    "ticks": 7140978706
                },
                "3": {
                    "norm": {
                        "pct": 0.0033261257425742574
                    },
                    "pct": 0.02660900594059406,
                    "ticks": 7705738146
                },
                "4": {
                    "norm": {
                        "pct": 0.0016827236386138613
                    },
                    "pct": 0.01346178910891089,
                    "ticks": 8131054429
                },
                "5": {
                    "norm": {
                        "pct": 0.000781541707920792
                    },
                    "pct": 0.006252333663366336,
                    "ticks": 7213899699
                },
                "6": {
                    "norm": {
                        "pct": 0.0005364748762376238
                    },
                    "pct": 0.00429179900990099,
                    "ticks": 7961016581
                },
                "7": {
                    "norm": {
                        "pct": 0.0005079449257425743
                    },
                    "pct": 0.004063559405940594,
                    "ticks": 7946529895
                }
            },
            "kernel": {
                "norm": {
                    "pct": 0.007425742574257425
                },
                "pct": 0.0594059405940594,
                "ticks": 26810000000
            },
            "system": {
                "norm": {
                    "pct": 1
                },
                "pct": 8,
                "ticks": 65836400000000
            },
            "total": {
                "norm": {
                    "pct": 0.015459536757425743
                },
                "pct": 0.12367629405940594
            },
            "user": {
                "norm": {
                    "pct": 0.006188118811881188
                },
                "pct": 0.04950495049504951,
                "ticks": 35720000000
            }
        }
    },
    "event": {
        "dataset": "docker.cpu",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "cpu",
        "period": 10000
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

Diskio

编辑

Docker diskio 数据流收集磁盘 I/O 指标。

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.disk.read.bytes

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

long

counter

container.disk.write.bytes

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

long

byte

counter

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.container.labels.*

容器标签

object

docker.diskio.read.bytes

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

long

counter

docker.diskio.read.ops

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

long

counter

docker.diskio.read.queued

排队请求的总数

long

gauge

docker.diskio.read.rate

当前每秒读取次数

long

gauge

docker.diskio.read.service_time

服务 IO 请求的总时间,以纳秒为单位

long

counter

docker.diskio.read.wait_time

请求在队列中等待服务所花费的总时间,以纳秒为单位

long

counter

docker.diskio.summary.bytes

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

long

byte

counter

docker.diskio.summary.ops

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

long

counter

docker.diskio.summary.queued

排队请求的总数

long

counter

docker.diskio.summary.rate

当前每秒操作次数

long

gauge

docker.diskio.summary.service_time

服务 IO 请求的总时间,以纳秒为单位

long

counter

docker.diskio.summary.wait_time

请求在队列中等待服务所花费的总时间,以纳秒为单位

long

counter

docker.diskio.write.bytes

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

long

byte

counter

docker.diskio.write.ops

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

long

counter

docker.diskio.write.queued

排队请求的总数

long

counter

docker.diskio.write.rate

当前每秒写入次数

long

gauge

docker.diskio.write.service_time

服务 IO 请求的总时间,以纳秒为单位

long

counter

docker.diskio.write.wait_time

请求在队列中等待服务所花费的总时间,以纳秒为单位

long

counter

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

以下是 diskio 的示例事件

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "container": {
        "id": "8abaa1f3514d3554503034a1df6ee09457f328757bbc9555245244ee853c0b44",
        "image": {
            "name": "zookeeper"
        },
        "name": "some-zookeeper",
        "runtime": "docker"
    },
    "docker": {
        "diskio": {
            "read": {
                "bytes": 42409984,
                "ops": 1823,
                "queued": 0,
                "rate": 0,
                "service_time": 0,
                "wait_time": 0
            },
            "summary": {
                "bytes": 42414080,
                "ops": 1824,
                "queued": 0,
                "rate": 0,
                "service_time": 0,
                "wait_time": 0
            },
            "write": {
                "bytes": 4096,
                "ops": 1,
                "queued": 0,
                "rate": 0,
                "service_time": 0,
                "wait_time": 0
            }
        }
    },
    "event": {
        "dataset": "docker.diskio",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "diskio",
        "period": 10000
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

事件

编辑

Docker event 数据流收集 Docker 事件

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.container.labels.*

容器标签

object

docker.event.action

事件的类型

keyword

docker.event.actor.attributes

对象的各种键/值属性,具体取决于其类型

flattened

docker.event.actor.id

发出事件的对象的 ID

keyword

docker.event.from

事件源

keyword

docker.event.id

可用时的事件 ID

keyword

docker.event.status

事件状态

keyword

docker.event.type

发出事件的对象的类型

keyword

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

以下是 event 的示例事件

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "agent": {
        "hostname": "host.example.com",
        "name": "host.example.com"
    },
    "docker": {
        "event": {
            "action": "pull",
            "actor": {
                "attributes": {
                    "name": "busybox"
                },
                "id": "busybox:latest"
            },
            "from": "",
            "id": "busybox:latest",
            "status": "pull",
            "type": "image"
        }
    },
    "event": {
        "dataset": "docker.event",
        "module": "docker"
    },
    "service": {
        "type": "docker"
    }
}

健康检查

编辑

Docker healthcheck 数据流收集有关正在运行的 Docker 容器的健康检查状态指标。

健康检查数据仅在 docker HEALTHCHECK 指令已用于构建 docker 镜像的 docker 容器中可用。

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.container.labels.*

容器标签

object

docker.healthcheck.event.end_date

健康检查结束日期

date

docker.healthcheck.event.exit_code

健康检查状态代码

integer

docker.healthcheck.event.output

健康检查输出

keyword

docker.healthcheck.event.start_date

健康检查开始日期

date

docker.healthcheck.failingstreak

并发失败检查

integer

counter

docker.healthcheck.status

健康检查状态代码

keyword

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

一个 healthcheck 的示例事件如下所示

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "agent": {
        "hostname": "host.example.com",
        "name": "host.example.com"
    },
    "container": {
        "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a",
        "image": {
            "name": "metricbeat_elasticsearch"
        },
        "name": "metricbeat_elasticsearch_1_df866b3a7b3d",
        "runtime": "docker"
    },
    "docker": {
        "container": {
            "labels": {
                "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78",
                "com_docker_compose_container-number": "1",
                "com_docker_compose_oneoff": "False",
                "com_docker_compose_project": "metricbeat",
                "com_docker_compose_service": "elasticsearch",
                "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d",
                "com_docker_compose_version": "1.23.1",
                "license": "Elastic License",
                "org_label-schema_build-date": "20181006",
                "org_label-schema_license": "GPLv2",
                "org_label-schema_name": "elasticsearch",
                "org_label-schema_schema-version": "1.0",
                "org_label-schema_url": "https://elastic.ac.cn/products/elasticsearch",
                "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker",
                "org_label-schema_vendor": "Elastic",
                "org_label-schema_version": "6.5.1"
            }
        },
        "healthcheck": {
            "event": {
                "end_date": "2019-02-25T10:59:07.472Z",
                "exit_code": 0,
                "output": "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n\r  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0\r100   338  100   338    0     0  13188      0 --:--:-- --:--:-- --:--:-- 13520\n{\n  \"license\" : {\n    \"status\" : \"active\",\n    \"uid\" : \"ea5a516e-d9ee-4131-8eec-b39741e80869\",\n    \"type\" : \"basic\",\n    \"issue_date\" : \"2019-02-25T10:18:24.885Z\",\n    \"issue_date_in_millis\" : 1551089904885,\n    \"max_nodes\" : 1000,\n    \"issued_to\" : \"docker-cluster\",\n    \"issuer\" : \"elasticsearch\",\n    \"start_date_in_millis\" : -1\n  }\n}\n",
                "start_date": "2019-02-25T10:59:07.342Z"
            },
            "failingstreak": 0,
            "status": "healthy"
        }
    },
    "event": {
        "dataset": "docker.healthcheck",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "healthcheck"
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

镜像

编辑

Docker image 数据流收集关于 Docker 镜像的指标

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.image.created

镜像创建的日期和时间。

date

docker.image.id.current

镜像创建时给定的唯一标识符。

keyword

docker.image.id.parent

当前镜像直接继承的父镜像的标识符(如果存在)。

keyword

docker.image.labels.*

镜像标签。

object

docker.image.size.regular

与当前镜像关联的所有缓存镜像的总大小。

long

counter

docker.image.size.virtual

镜像的大小。

long

gauge

docker.image.tags

镜像标签。

keyword

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

一个 image 的示例事件如下所示

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "docker": {
        "image": {
            "created": "2019-03-25T09:57:14.000Z",
            "id": {
                "current": "sha256:fa96dbd9baead0b3a4550c861cc871f40c0c7482889fb5f09c705e7d0622358f",
                "parent": ""
            },
            "labels": {
                "license": "Elastic License",
                "org_label-schema_build-date": "20190305",
                "org_label-schema_license": "GPLv2",
                "org_label-schema_name": "logstash",
                "org_label-schema_schema-version": "1.0",
                "org_label-schema_url": "https://elastic.ac.cn/products/logstash",
                "org_label-schema_vcs-url": "https://github.com/elastic/logstash-docker",
                "org_label-schema_vendor": "Elastic",
                "org_label-schema_version": "8.0.0-SNAPSHOT"
            },
            "size": {
                "regular": 770558778,
                "virtual": 770558778
            },
            "tags": [
                "docker.elastic.co/logstash/logstash:8.0.0-SNAPSHOT"
            ]
        }
    },
    "event": {
        "dataset": "docker.image",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "image"
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

信息

编辑

Docker info 数据流基于 https://docs.docker.net.cn/engine/reference/api/docker_remote_api_v1.24//display-system-wide-information[Docker[https://docs.docker.net.cn/engine/reference/api/docker_remote_api_v1.24//display-system-wide-information[Docker] 远程 API]收集系统范围的信息。

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.info.containers.paused

暂停容器的总数。

long

counter

docker.info.containers.running

运行容器的总数。

long

counter

docker.info.containers.stopped

停止容器的总数。

long

counter

docker.info.containers.total

现有容器的总数。

long

counter

docker.info.id

唯一的 Docker 主机标识符。

keyword

docker.info.images

现有镜像的总数。

long

counter

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

一个 info 的示例事件如下所示

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "docker": {
        "info": {
            "containers": {
                "paused": 0,
                "running": 2,
                "stopped": 12,
                "total": 14
            },
            "id": "VF5E:SKD6:YFIG:VDGO:JU3M:ZT2N:4E6B:7IOL:5QOS:M3HT:EM7E:VL22",
            "images": 425
        }
    },
    "event": {
        "dataset": "docker.info",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "info",
        "period": 10000
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

内存

编辑

Docker memory 数据流从 Docker 收集内存指标。

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.memory.usage

内存使用百分比。

scaled_float

percent

gauge

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.container.labels.*

容器标签

object

docker.memory.commit.peak

Windows 上峰值提交字节数

long

byte

gauge

docker.memory.commit.total

总字节数

long

byte

counter

docker.memory.fail.count

失败计数器。

scaled_float

counter

docker.memory.limit

内存限制。

long

byte

gauge

docker.memory.private_working_set.total

Windows 上的私有工作集

long

byte

gauge

docker.memory.rss.pct

内存驻留集大小百分比。

scaled_float

percent

gauge

docker.memory.rss.total

内存驻留集总大小。

long

byte

gauge

docker.memory.stats.*

来自 cgroups memory.stat 接口的原始内存统计信息

object

docker.memory.usage.max

最大内存使用量。

long

byte

gauge

docker.memory.usage.pct

内存使用百分比。

scaled_float

percent

gauge

docker.memory.usage.total

总内存使用量。

long

byte

gauge

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

一个 memory 的示例事件如下所示

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "container": {
        "id": "aa41902101351f415e6e983b0673c0ba715dd4bc316bd5fc0ebd6fcf94287f86",
        "image": {
            "name": "redis:latest"
        },
        "name": "amazing_cohen",
        "runtime": "docker"
    },
    "docker": {
        "memory": {
            "fail": {
                "count": 0
            },
            "limit": 2095878144,
            "rss": {
                "pct": 0.0004025882909345325,
                "total": 843776
            },
            "stats": {
                "active_anon": 421888,
                "active_file": 36864,
                "cache": 86016,
                "dirty": 0,
                "hierarchical_memory_limit": 9223372036854771712,
                "hierarchical_memsw_limit": 9223372036854771712,
                "inactive_anon": 421888,
                "inactive_file": 49152,
                "mapped_file": 53248,
                "pgfault": 1587,
                "pgmajfault": 1,
                "pgpgin": 2426,
                "pgpgout": 2199,
                "rss": 843776,
                "rss_huge": 0,
                "total_active_anon": 421888,
                "total_active_file": 36864,
                "total_cache": 86016,
                "total_dirty": 0,
                "total_inactive_anon": 421888,
                "total_inactive_file": 49152,
                "total_mapped_file": 53248,
                "total_pgfault": 1587,
                "total_pgmajfault": 1,
                "total_pgpgin": 2426,
                "total_pgpgout": 2199,
                "total_rss": 843776,
                "total_rss_huge": 0,
                "total_unevictable": 0,
                "total_writeback": 0,
                "unevictable": 0,
                "writeback": 0
            },
            "usage": {
                "max": 7860224,
                "pct": 0.000672283359618831,
                "total": 1409024
            }
        }
    },
    "event": {
        "dataset": "docker.memory",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "memory"
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

网络

编辑

Docker network 数据流收集网络指标。

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

@timestamp

事件时间戳。

date

agent.id

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

keyword

cloud.account.id

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

keyword

cloud.availability_zone

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

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.provider

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

keyword

cloud.region

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

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.name

容器名称。

keyword

container.network.egress.bytes

传出字节总数。

long

counter

container.network.ingress.bytes

传入字节总数。

long

counter

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

docker.container.labels.*

容器标签

object

docker.network.inbound.bytes

传入字节总数。

long

counter

docker.network.inbound.dropped

丢弃的传入数据包总数。

long

counter

docker.network.inbound.errors

传入数据包的总错误数。

long

counter

docker.network.inbound.packets

传入数据包的总数。

long

counter

docker.network.interface

网络接口名称。

keyword

docker.network.outbound.bytes

传出字节总数。

long

counter

docker.network.outbound.dropped

丢弃的传出数据包总数。

long

counter

docker.network.outbound.errors

传出数据包的总错误数。

long

counter

docker.network.outbound.packets

传出数据包的总数。

long

counter

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

service.address

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

keyword

service.type

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

keyword

示例

一个 network 的示例事件如下所示

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "agent": {
        "hostname": "host.example.com",
        "name": "host.example.com"
    },
    "container": {
        "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a",
        "image": {
            "name": "metricbeat_elasticsearch"
        },
        "name": "metricbeat_elasticsearch_1_df866b3a7b3d",
        "runtime": "docker"
    },
    "docker": {
        "container": {
            "labels": {
                "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78",
                "com_docker_compose_container-number": "1",
                "com_docker_compose_oneoff": "False",
                "com_docker_compose_project": "metricbeat",
                "com_docker_compose_service": "elasticsearch",
                "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d",
                "com_docker_compose_version": "1.23.1",
                "license": "Elastic License",
                "org_label-schema_build-date": "20181006",
                "org_label-schema_license": "GPLv2",
                "org_label-schema_name": "elasticsearch",
                "org_label-schema_schema-version": "1.0",
                "org_label-schema_url": "https://elastic.ac.cn/products/elasticsearch",
                "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker",
                "org_label-schema_vendor": "Elastic",
                "org_label-schema_version": "6.5.1"
            }
        },
        "network": {
            "inbound": {
                "bytes": 23047,
                "dropped": 0,
                "errors": 0,
                "packets": 241
            },
            "interface": "eth0",
            "outbound": {
                "bytes": 0,
                "dropped": 0,
                "errors": 0,
                "packets": 0
            }
        }
    },
    "event": {
        "dataset": "docker.network",
        "duration": 115000,
        "module": "docker"
    },
    "metricset": {
        "name": "network"
    },
    "service": {
        "address": "/var/run/docker.sock",
        "type": "docker"
    }
}

container_logs

编辑

Docker container_logs 数据流收集容器日志。

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.labels.*

容器标签

object

container.name

容器名称。

keyword

container.runtime

管理此容器的运行时。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

ecs.version

此事件符合的 ECS 版本。ecs.version 是必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合稍微不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.dataset

数据集的名称。如果事件源发布多种类型的日志或事件(例如,访问日志、错误日志),则使用数据集来指定事件的来源。建议但不是必须以模块名称开头,后跟点号,然后是数据集名称。

keyword

event.module

事件模块

constant_keyword

host

主机被定义为通用计算实例。ECS host.* 字段应填充有关事件发生或进行测量的宿主机的详细信息。主机类型包括硬件、虚拟机、Docker 容器和 Kubernetes 节点。

group

host.architecture

操作系统架构。

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。建议使用 RFC 7042 中的表示格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这些数字给出八位字节的无符号整数值。连续的八位字节用连字符分隔。

keyword

host.name

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

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.full

操作系统名称,包括版本或代码名称。

keyword

host.os.full.text

host.os.full 的多字段。

match_only_text

host.os.kernel

操作系统内核版本,以原始字符串形式表示。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

match_only_text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本,以原始字符串形式表示。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果是虚拟机,这可能是容器,例如,或者其他在您的环境中具有意义的信息。

keyword

input.type

Filebeat 输入的类型。

keyword

log.file.device_id

包含文件所在文件系统的设备的 ID。

keyword

log.file.fingerprint

启用指纹识别时文件的 sha256 指纹标识。

keyword

log.file.idxhi

与文件关联的唯一标识符的高位部分。(仅限 Windows)

keyword

log.file.idxlo

与文件关联的唯一标识符的低位部分。(仅限 Windows)

keyword

log.file.inode

日志文件的 inode 号。

keyword

log.file.path

日志文件的路径。

keyword

log.file.vol

包含文件的卷的序列号。(仅限 Windows)

keyword

log.offset

日志文件中条目的偏移量。

long

message

对于日志事件,message 字段包含日志消息,针对在日志查看器中查看进行了优化。 对于没有原始 message 字段的结构化日志,可以将其他字段连接起来,形成事件的人工可读摘要。 如果存在多条消息,可以将它们合并为一条消息。

match_only_text

service.address

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

keyword

service.type

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

keyword

stream

容器日志流

keyword

示例

以下是 container 的示例事件

{
    "container": {
        "image": {
            "name": "docker.elastic.co/elastic-agent/elastic-agent-complete:8.5.0"
        },
        "name": "elastic-package-stack_elastic-agent_1",
        "id": "cf67fae3321ec426e720311c345c758d5ceb5260e6ea171ea9ca509175458b04",
        "labels": {
            "io_k8s_display-name": "Elastic-Agent image",
            "org_opencontainers_image_title": "Elastic-Agent",
            "com_docker_compose_oneoff": "False",
            "release": "1",
            "com_docker_compose_project": "elastic-package-stack",
            "org_opencontainers_image_created": "2022-10-24T20:20:43Z",
            "description": "Agent manages other beats based on configuration provided.",
            "maintainer": "[email protected]",
            "org_opencontainers_image_vendor": "Elastic",
            "org_label-schema_vcs-url": "github.com/elastic/elastic-agent",
            "org_label-schema_vcs-ref": "9da6ba5fce5d6b4d2c473c1f5ff6056794e9a644",
            "vendor": "Elastic",
            "org_label-schema_vendor": "Elastic",
            "com_docker_compose_service": "elastic-agent",
            "org_opencontainers_image_licenses": "Elastic License",
            "io_k8s_description": "Agent manages other beats based on configuration provided.",
            "org_label-schema_license": "Elastic License",
            "org_label-schema_build-date": "2022-10-24T20:20:43Z",
            "summary": "elastic-agent",
            "com_docker_compose_config-hash": "877e65101e9a2d525e764de557ab89ee529bee1f43d36e1f458fd3f9def52cf8",
            "org_label-schema_version": "8.5.0",
            "com_docker_compose_project_config_files": "/home/chrismark/.elastic-package/profiles/default/stack/snapshot.yml",
            "version": "8.5.0",
            "url": "https://elastic.ac.cn/beats/elastic-agent",
            "org_label-schema_name": "elastic-agent",
            "license": "Elastic License",
            "org_label-schema_schema-version": "1.0",
            "name": "elastic-agent",
            "com_docker_compose_container-number": "1",
            "com_docker_compose_version": "1.29.2",
            "com_docker_compose_project_working_dir": "/home/chrismark/.elastic-package/profiles/default/stack",
            "org_label-schema_url": "https://elastic.ac.cn/beats/elastic-agent"
        }
    },
    "agent": {
        "name": "docker-fleet-agent",
        "id": "069c0cc8-d191-42b2-92c8-fe4dd065685b",
        "type": "filebeat",
        "ephemeral_id": "93ca0744-1bef-4a2a-8534-6cbd9e33287a",
        "version": "8.5.0"
    },
    "log": {
        "file": {
            "path": "/var/lib/docker/containers/cf67fae3321ec426e720311c345c758d5ceb5260e6ea171ea9ca509175458b04/cf67fae3321ec426e720311c345c758d5ceb5260e6ea171ea9ca509175458b04-json.log"
        },
        "offset": 17027
    },
    "elastic_agent": {
        "id": "069c0cc8-d191-42b2-92c8-fe4dd065685b",
        "version": "8.5.0",
        "snapshot": false
    },
    "message": "{\"log.level\":\"info\",\"@timestamp\":\"2022-11-24T10:16:39.493Z\",\"log.origin\":{\"file.name\":\"stateresolver/stateresolver.go\",\"file.line\":66},\"message\":\"Updating internal state\",\"ecs.version\":\"1.6.0\"}\n",
    "input": {
        "type": "filestream"
    },
    "@timestamp": "2022-11-24T10:16:39.493Z",
    "ecs": {
        "version": "8.0.0"
    },
    "stream": "stderr",
    "data_stream": {
        "namespace": "default",
        "type": "logs",
        "dataset": "docker.container_logs"
    },
    "host": {
        "hostname": "docker-fleet-agent",
        "os": {
            "kernel": "5.14.0-1054-oem",
            "codename": "focal",
            "name": "Ubuntu",
            "type": "linux",
            "family": "debian",
            "version": "20.04.5 LTS (Focal Fossa)",
            "platform": "ubuntu"
        },
        "containerized": true,
        "ip": [
            "172.26.0.7"
        ],
        "name": "docker-fleet-agent",
        "id": "66392b0697b84641af8006d87aeb89f1",
        "mac": [
            "02-42-AC-1A-00-07"
        ],
        "architecture": "x86_64"
    },
    "event": {
        "agent_id_status": "verified",
        "ingested": "2022-11-24T10:16:42Z",
        "dataset": "docker.container_logs"
    }
}

变更日志

编辑
变更日志
版本 详情 Kibana 版本

2.12.0

增强 (查看拉取请求)
使用 *event.dataset* 字段的 ECS 定义。

8.8.0 或更高版本

2.11.0

增强 (查看拉取请求)
将 package-spec 版本提升至 3.2.2,以在无服务器和堆栈版本 9.0 上运行。

8.8.0 或更高版本

2.10.0

增强 (查看拉取请求)
提升格式版本,修复 *docker.container.labels.* 字段的定义

8.8.0 或更高版本

2.9.0

增强 (查看拉取请求)
调整字段以适应文件系统信息中的更改

8.8.0 或更高版本

2.8.3

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

8.8.0 或更高版本

2.8.2

Bug 修复 (查看拉取请求)
修复 message 的映射以与 ECS 对齐。

8.8.0 或更高版本

2.8.1

增强 (查看拉取请求)
删除关于 Windows 支持的令人困惑的文档。

8.8.0 或更高版本

2.8.0

增强 (查看拉取请求)
为指标数据集启用时间序列数据流,事件数据集除外。 这提高了存储使用率和查询性能。 有关更多详细信息,请参阅 https://elastic.ac.cn/guide/en/elasticsearch/reference/current/tsds.html

8.8.0 或更高版本

2.7.0

增强 (查看拉取请求)
添加 network.interface 作为维度

8.2.0 或更高版本

2.6.0

增强 (查看拉取请求)
添加权限以将事件重新路由到 logs--,用于 container_logs 数据流

8.2.0 或更高版本

2.5.1

增强 (查看拉取请求)
将维度字段设置为指标数据流,事件除外。

8.2.0 或更高版本

2.5.0

增强 (查看拉取请求)
向 diskio 数据流添加指标类型。

8.2.0 或更高版本

2.4.3

增强 (查看拉取请求)
添加了指向条件过滤器文档的链接

8.2.0 或更高版本

2.4.2

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

8.2.0 或更高版本

2.4.1

增强 (查看拉取请求)
添加了指向 Docker 可用键的链接

8.2.0 或更高版本

2.4.0

增强 (查看拉取请求)
改进了软件包描述和标题

8.2.0 或更高版本

2.3.0

增强 (查看拉取请求)
添加 container_logs

8.2.0 或更高版本

2.2.0

Bug 修复 (查看拉取请求)
添加 skip_major 标志

8.2.0 或更高版本

2.1.1

Bug 修复 (查看拉取请求)
修复了缺少的 dedot 选项

2.1.0

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

2.0.1

增强 (查看拉取请求)
添加多字段的文档

2.0.0

重大更改 (查看拉取请求)
删除已弃用的字段

1.2.0

增强 (查看拉取请求)
发布 8.0.0 版本的软件包

7.14.0 或更高版本
8.0.0 或更高版本

1.1.1

增强 (查看拉取请求)
符合准则

1.1.0

增强 (查看拉取请求)
更新至 ECS 1.12.0

1.0.0

增强 (查看拉取请求)
将 Docker 作为 GA 发布

7.14.0 或更高版本

0.5.1

增强 (查看拉取请求)
在文档中转义特殊字符

0.5.0

增强 (查看拉取请求)
更新文档以适应 mdx 规范

0.4.0

增强 (查看拉取请求)
更新集成描述

0.3.0

增强 (查看拉取请求)
设置 “event.module” 和 “event.dataset”

0.2.1

错误修复 (查看拉取请求)
修复 cpu 数据流中某些字段的数据类型

0.2.0

增强 (查看拉取请求)
在导出的字段表中渲染单位和指标类型

0.1.1

增强 (查看拉取请求)
修复与 Kibana 的兼容性

0.1.0

增强 (查看拉取请求)
初始版本