Kubernetes 集成

编辑

版本

1.68.1 (查看全部)

兼容的 Kibana 版本

8.15.0 或更高版本

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

安全性
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

此集成用于从 Kubernetes 集群收集日志和指标。为指标数据流启用了时间序列 索引模式

此集成需要 kube-state-metrics,默认情况下 Kubernetes 不包含该组件。为了使仪表板正确填充,必须将 kube-state-metrics 服务部署到您的 Kubernetes 集群

作为 Kubernetes 监控的主要组件之一,此集成能够从多个组件获取指标

一些之前的组件在每个 Kubernetes 节点上运行(如 kubeletproxy),而其他组件则提供单个集群范围的端点。这对于确定集成中包含的不同数据集的最佳配置和运行策略至关重要。

Kubernetes 端点和指标集
编辑

Kubernetes 模块有点复杂,因为其内部数据集需要访问各种端点。

本节重点介绍并引入了一些具有类似端点访问需求的数据集组。有关数据集的更多详细信息,请参见下面的 配置示例数据集 部分。

node / system / pod / container / module / volume
编辑

数据集 containernodepodsystemvolume 需要访问每个 Kubernetes 节点中的 kubelet 端点,因此建议将它们作为 Agent DaemonSet 或在主机上运行的独立 Agent 的一部分。

根据 Kubernetes 节点的版本和配置,kubelet 可能会提供一个只读 HTTP 端口(通常为 10255),这在某些配置示例中使用。但通常情况下,并且最近,此端点需要 SSL (https) 访问(默认端口为 10250)和基于令牌的身份验证。

state_* 和 event
编辑

默认情况下启用 State_* 数据集。

所有带有 state_ 前缀的数据集都需要 hosts 字段指向集群内的 kube-state-metrics 服务。由于该服务提供集群范围的指标,因此无需每个节点都获取它们,因此建议将这些数据集作为只有一个副本的 Agent Deployment 的一部分运行。

通常,kube-state-metrics 运行 Deployment,并且可以通过 kube-system 命名空间中的名为 kube-state-metrics 的服务访问,这将是我们配置中使用的服务。

apiserver
编辑

apiserver 数据集需要访问 Kubernetes API,这在所有 Kubernetes 环境中都应易于访问。根据 Kubernetes 的配置,API 访问可能需要 SSL (https) 和基于令牌的身份验证。

proxy
编辑

proxy 数据集需要访问每个 Kubernetes 节点中的 proxy 端点,因此建议将其配置为 Agent DaemonSet 的一部分。

scheduler 和 controllermanager
编辑

这些数据集需要访问 Kubernetes controller-managerscheduler 端点。默认情况下,这些 Pod 仅在主节点上运行,并且不会通过服务公开,但有不同的策略可用于其配置

  • 创建 Kubernetes Services 使 kube-controller-managerkube-scheduler 可用,并将数据集配置为指向这些服务,作为 Agent Deployment 的一部分。
  • 将这些数据集作为 Agent Daemonset 的一部分运行(使用 HostNetwork 设置),并使用 nodeSelector 仅在主节点上运行。

默认情况下不启用这些数据集。

在某些“即服务”Kubernetes 实现中,如 GKE,主节点甚至在主节点上运行的 Pod 将不可见。在这些情况下,将无法使用 schedulercontrollermanager 指标集。

container-logs
编辑

container-logs 数据集需要访问存储容器日志的每个 Kubernetes 节点上的日志文件。默认为 /var/log/containers/*${kubernetes.container.id}.log

路由
编辑

container-logs 数据流允许使用 Pod 注释将日志路由到不同的数据集命名空间

例如,假设您在 Kubernetes 集群上运行 Nginx,并且您想将 Nginx 容器日志驱动到专用的数据集或命名空间中。通过使用 elastic.co/namespace: nginx 注释 Pod,集成会将所有容器日志发送到 nginx 命名空间。

要了解有关路由容器日志的更多信息,请参阅 https://docs.elastic.co/integrations/kubernetes/container-logs

保留原始事件
编辑

可以使用 Pod 注释配置代理以在 container-logs 上设置标记 preserve_original_event

例如,假设您如上所述将 Nginx 容器日志路由到专用数据集或命名空间,以使用 Nginx Fleet 集成。在 Nginx 集成上启用 preserve_original_event 将不起作用,因为日志是通过 Kubernetes 集成而不是 Nginx 发送的。此外,您可能也不希望保留所有 Nginx Pod 的所有原始事件。

通过使用 elastic.co/preserve_original_event: 'true' 注释 Pod,集成将添加标记 preserve_original_event,就像 nginx 集成本来会做的那样。

audit-logs
编辑

audit-logs 数据集需要访问存储审计日志的每个 Kubernetes 节点上的日志文件。默认为 /var/log/kubernetes/kube-apiserver-audit.log

兼容性

编辑

Kubernetes 程序包已使用 Kubernetes [1.28.x - 1.31.x] 版本进行测试

仪表板

编辑

Kubernetes 集成附带 apiservercontrollermanageroverviewproxyscheduler 的默认仪表板。

如果您的这些组件使用 HA,请注意,当从所有实例收集数据时,仪表板通常会显示指标的平均值。对于这些情况,可以按主机或服务地址进行筛选。

overview 仪表板中的集群选择器有助于区分和筛选从多个集群收集的指标。如果您想专注于监控特定场景的 Kubernetes 集群的子集,则此集群选择器可能是一个方便的工具。请注意,此选择器是从 orchestrator.cluster.name 字段填充的,该字段可能并非始终可用。此字段的值来自 kube_configkubeadm-config configMap 和 GKE 的 Google Cloud 元 API 等来源。如果上述来源未提供此值,则 Metricbeat 将不会报告该值。但是,您始终可以使用 处理器来设置此字段并在 集群概览 仪表板中使用它。

变更日志

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

1.68.1

错误修复 (查看拉取请求)
修复概览仪表板 Kibana ID

8.15.0 或更高版本

1.68.0

增强 (查看拉取请求)
默认情况下,对 container_logs 数据流使用 filestream 指纹模式

8.15.0 或更高版本

1.67.0

增强 (查看拉取请求)
将 pod.{cpu,memory}.usage.node.pct 和 pod.{cpu,memory}.usage.limit.pct 指标都添加到概览仪表板

8.15.0 或更高版本

1.66.4

错误修复 (查看拉取请求)
更新集群概览仪表板以使用 container.id 作为过滤器,并从可视化中替换了中值函数

8.15.0 或更高版本

1.66.3

增强 (查看拉取请求)
更新 kubernetes.audit_logs 中字段组到关键字的映射

8.15.0 或更高版本

1.66.2

错误修复 (查看拉取请求)
修复 kubernetes.audit_logs 中缺少的处理器块

8.15.0 或更高版本

1.66.1

错误修复 (查看拉取请求)
修复卷仪表板中的标题

8.15.0 或更高版本

1.66.0

增强 (查看拉取请求)
在 Kubernetes 卷仪表板中添加每个 Pod 的卷使用情况

8.15.0 或更高版本

1.65.0

增强 (查看拉取请求)
将 last_terminated_timestamp 指标添加到 kubernetes.state_container 数据流

8.15.0 或更高版本

1.64.0

增强 (查看拉取请求)
将命名空间筛选器移动到组级配置

8.15.0 或更高版本

1.63.1

错误修复 (查看拉取请求)
修复 kubernetes.audit 摄取管道中的错别字

8.15.0 或更高版本

1.63.0

增强 (查看拉取请求)
将 pod.status_reason 和 pod.status.ready_time 字段添加到 state_pod 数据流

8.15.0 或更高版本

1.62.1

错误修复 (查看拉取请求)
修复 kubernetes.audit 摄取管道

8.14.0 或更高版本

1.62.0

增强 (查看拉取请求)
向 kubernetes.audit 数据流添加新映射

8.14.0 或更高版本

1.61.1

错误修复 (查看拉取请求)
删除 Pod 内存指标的百分比单位

8.14.0 或更高版本

1.61.0

增强 (查看拉取请求)
删除已弃用的字段并添加缺失的 status.last_terminated_reason 指标

8.14.0 或更高版本

1.60.0

错误修复 (查看拉取请求)
更新集群概览仪表板中的 已用内存 vs 总内存已用核心 vs 总核心 可视化

8.14.0 或更高版本

1.59.0

增强 (查看拉取请求)
向 state_namespace 数据流添加元数据字段。

8.14.0 或更高版本

1.58.0

增强 (查看拉取请求)
迁移到 format_version v3。

8.12.0 或更高版本

1.57.0

增强 (查看拉取请求)
容器日志根据 Pod 注释保留原始内容。

8.12.0 或更高版本

1.56.0

增强 (查看拉取请求)
向 API 服务器、state_node 和持久卷声明数据流添加新字段。

8.12.0 或更高版本

1.55.1

增强 (查看拉取请求)
修改字段定义以引用 ECS。

8.11.0 或更高版本

1.55.0

增强 (查看拉取请求)
从状态数据流中删除额外的基础字段。

8.11.0 或更高版本

1.54.0

增强 (查看拉取请求)
将条件支持扩展到剩余的输入

8.11.0 或更高版本

1.53.0

增强 (查看拉取请求)
更新指标可视化的尺寸

8.11.0 或更高版本

1.52.0

增强 (查看拉取请求)
添加新的数据流 state_namespace。

8.11.0 或更高版本

1.51.0

增强 (查看拉取请求)
Deployments 仪表板可视化迁移到 Lens。

8.10.2 或更高版本

1.50.0

增强 (查看拉取请求)
Cronjobs 仪表板可视化迁移到 Lens

8.10.2 或更高版本

1.49.0

增强 (查看拉取请求)
DaemonSets 仪表板可视化迁移到 Lens。

8.10.2 或更高版本

1.48.0

增强 (查看拉取请求)
StatefulSets 仪表板可视化迁移到 Lens。

8.10.2 或更高版本

1.47.0

增强 (查看拉取请求)
Jobs 仪表板可视化迁移到 Lens。

8.10.2 或更高版本

1.46.0

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

8.10.1 或更高版本

1.45.0

增强 (查看拉取请求)
根据 Pod 注释重新路由容器日志。

8.10.0 或更高版本

1.44.0

增强 (查看拉取请求)
引入 kubernetes.deployment.status.* 指标

8.10.0 或更高版本

1.43.1

增强 (查看拉取请求)
更新 CCS 用例的 adHocDataviews 的索引模式

8.8.0 或更高版本

1.43.0

增强 (查看拉取请求)
扩展 CCS 用例的 adHocDataviews 的索引模式

8.8.0 或更高版本

1.42.0

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

8.8.0 或更高版本

1.41.0

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

8.8.0 或更高版本

1.40.0

错误修复 (查看拉取请求)
修复 k8s v1.27.0 的 Kubernetes 集成系统测试

8.8.0 或更高版本

1.40.0-beta.2

错误修复 (查看拉取请求)
修复卷仪表板。

1.40.0-beta.1

错误修复 (查看拉取请求)
修复缺少排序字段的代理和调度器可视化。

1.40.0-beta

增强 (查看拉取请求)
为指标 data_streams 启用 TSDS,除了 beta 测试的事件之外

1.39.0

增强 (查看拉取请求)
删除 container.name 作为维度。

8.6.1 或更高版本

1.38.1

增强 (查看拉取请求)
在计数器公式上将 max 切换为最后一个值,并将缺少的排序字段添加到代理、控制器管理器和调度器仪表板。

8.6.1 或更高版本

1.38.0

增强 (查看拉取请求)
修复 Pod 仪表板并从 API 服务器仪表板中删除一些可视化以支持 TSDB 迁移

8.6.1 或更高版本

1.37.0

增强 (查看拉取请求)
更新代理、控制器管理器和调度器仪表板以支持 TSDB。

8.6.1 或更高版本

1.36.0

增强 (查看拉取请求)
将 container.name 维度添加到容器数据流

8.6.1 或更高版本

1.35.0

增强 (查看拉取请求)
向状态节点添加 NetworkUnavailable 条件

8.6.1 或更高版本

1.34.1

增强 (查看拉取请求)
在除状态数据流之外的所有指标数据流上添加对 TSDB 的支持

8.6.1 或更高版本

1.34.0

增强 (查看拉取请求)
在所有状态指标数据流上添加对 TSDB 的支持

8.6.1 或更高版本

1.33.0

增强 (查看拉取请求)
添加 data_stream.dataset 设置和自定义 yaml 输入。

8.6.1 或更高版本

1.32.2

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

8.6.1 或更高版本

1.32.1

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

8.6.1 或更高版本

1.32.0

增强 (查看拉取请求)
添加有关如何安装警报的文档

8.6.1 或更高版本

1.31.2

增强 (查看拉取请求)
为状态服务数据流添加系统测试

8.6.1 或更高版本

1.31.1

增强 (查看拉取请求)
更新控制器管理器、代理和调度器指标和仪表板

8.6.1 或更高版本

1.31.0

增强 (查看拉取请求)
使用 datas_tream.dataset 作为仪表板的预过滤器并删除标签

8.6.0 或更高版本

1.30.0

增强 (查看拉取请求)
添加缺失的 namespace_uid 和 namespace_labels 字段

8.6.0 或更高版本

1.29.2

错误修复 (查看拉取请求)
修复内存节点使用率的函数

8.5.0 或更高版本

1.29.1

错误修复 (查看拉取请求)
修复 container_logs 的已删除条件设置

8.5.0 或更高版本

1.29.0

错误修复 (查看拉取请求)
从节点信息表中删除“控制平面”列

8.5.0 或更高版本

1.28.2

错误修复 (查看拉取请求)
修复 Pod 内存使用率面板标题

8.5.0 或更高版本

1.28.1

增强 (查看拉取请求)
从集群概览仪表板中删除 StatefulSet、Job 和 CronJob 可视化

8.5.0 或更高版本

1.28.0

增强 (查看拉取请求)
为 Kube-state 指标添加横幅

8.5.0 或更高版本

1.27.1

增强 (查看拉取请求)
修复集群概览仪表板中的拼写错误

8.5.0 或更高版本

1.27.0

增强 (查看拉取请求)
新的集群概览仪表板

8.5.0 或更高版本

1.26.0

增强 (查看拉取请求)
为 Kubernetes data_streams 添加 processors 配置选项

8.4.0 或更高版本

1.25.0

增强 (查看拉取请求)
为容器日志数据流添加 condition 配置选项

8.4.0 或更高版本

1.24.0

增强 (查看拉取请求)
为审计日志数据流添加字段

8.4.0 或更高版本

1.23.1

增强 (查看拉取请求)
添加缺失的维度字段

8.4.0 或更高版本

1.23.0

增强 (查看拉取请求)
为审计日志数据流添加字段

8.4.0 或更高版本

1.22.1

增强 (查看拉取请求)
修复 state_job 数据流中重叠的字段

8.4.0 或更高版本

1.22.0

增强 (查看拉取请求)
更新 apiserver 和 controllermanaged 已弃用的字段和仪表板

8.4.0 或更高版本

1.21.2

Bug 修复 (查看拉取请求)
将容器 ID 和 Pod 名称作为 Kubernetes 容器日志文件流输入的一部分添加

8.3.0 或更高版本

1.21.1

增强 (查看拉取请求)
改进了指向 Kubernetes 文档的链接的措辞

8.3.0 或更高版本

1.21.0

增强 (查看拉取请求)
添加新的仪表板

8.3.0 或更高版本

1.20.0

增强 (查看拉取请求)
更改 audit_logs 数据流的字段类型以使用审计事件的 requestObjectresponseObject 字段。禁用 audit_logs 数据流的动态映射。删除 kubernetes.audit.responseObject.metadatakubernetes.audit.requestObject.metadata

8.2.0 或更高版本

1.19.1

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

8.2.0 或更高版本

1.19.0

增强 (查看拉取请求)
添加遗漏的 ecs 字段

8.2.0 或更高版本

1.18.1

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

8.2.0 或更高版本

1.18.0

增强 (查看拉取请求)
修复 k8s 概览仪表板

8.2.0 或更高版本

1.17.3

Bug 修复 (查看拉取请求)
删除错误标记的布尔维度

7.16.0 或更高版本
8.0.0 或更高版本

1.17.2

Bug 修复 (查看拉取请求)
添加缺失的元数据字段

7.16.0 或更高版本
8.0.0 或更高版本

1.17.1

增强 (查看拉取请求)
改进默认 ndjson 解析器配置

1.17.0

增强 (查看拉取请求)
默认禁用审计日志收集

1.16.0

增强 (查看拉取请求)
文档改进

1.15.0

增强 (查看拉取请求)
添加 ssl.certificate_authorities 配置

1.14.3

Bug 修复 (查看拉取请求)
将缺失的 job.name 和 cronjob.name 字段添加到 state_container 数据流

1.14.2

Bug 修复 (查看拉取请求)
将缺失的 job.name 和 cronjob.name 字段添加到与容器相关的数据流

1.14.1

Bug 修复 (查看拉取请求)
添加元数据生成器添加的缺失的 job.name 和 cronjob.name 字段

1.14.0

增强 (查看拉取请求)
调整 state_metrics 设置

1.13.0

增强 (查看拉取请求)
更新到 ECS 8.0

1.12.0

增强 (查看拉取请求)
公开 add_recourse_metadata 配置选项

1.11.0

增强 (查看拉取请求)
为 pod 和容器数据流添加 memory.working_set.limit.pct

1.10.0

增强 (查看拉取请求)
在 state_job 数据流中添加 leader election

1.9.0

增强 (查看拉取请求)
添加缺失的字段

7.16.0 或更高版本
8.0.0 或更高版本

1.8.1

Bug 修复 (查看拉取请求)
将 kubernetes.volume.fs.used.pct 设置为 scaled_float

7.16.0 或更高版本
8.0.0 或更高版本

1.8.0

增强 (查看拉取请求)
支持 json 日志解析

7.16.0 或更高版本
8.0.0 或更高版本

1.7.0

增强 (查看拉取请求)
在 kubernetes 集成中添加新的审计日志数据流

7.16.0 或更高版本
8.0.0 或更高版本

1.6.0

增强 (查看拉取请求)
为事件数据流添加 skip_older 选项

7.16.0 或更高版本
8.0.0 或更高版本

1.5.0

增强 (查看拉取请求)
恢复 Kubernetes 命名空间字段的重大更改

7.16.0 或更高版本
8.0.0 或更高版本

1.4.2

增强 (查看拉取请求)
添加维度字段

1.4.1

增强 (查看拉取请求)
删除 Kubernetes 概览仪表板上索引模式的覆盖

8.0.0 或更高版本

1.4.0

增强 (查看拉取请求)
将文件流输入用于 container_logs 数据流

1.3.3

Bug 修复 (查看拉取请求)
修复基于 k8s 标签的数据流的条件 & 在管道中添加条件

1.3.2

增强 (查看拉取请求)
将代理的默认主机设置为 localhost

1.3.1

增强 (查看拉取请求)
与指南保持一致

1.3.0

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

1.2.1

Bug 修复 (查看拉取请求)
更新 Kubernetes cluster_ip 字段类型

1.2.0

增强 (查看拉取请求)
更新 Kubernetes 命名空间字段

1.1.1

Bug 修复 (查看拉取请求)
更新 Kubernetes 集成 Readme

1.1.0

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

7.15.0 或更高版本

1.0.0

增强 (查看拉取请求)
正式发布 Kubernetes

0.14.1

增强 (查看拉取请求)
更新 Kubernetes 集成中 kubernetes 代理数据流的默认主机

0.14.0

增强 (查看拉取请求)
在 kubernetes 集成中添加新的容器日志数据流

0.13.0

增强 (查看拉取请求)
利用动态 kubernetes 提供程序来处理控制器和调度程序数据流

0.12.2

Bug 修复 (查看拉取请求)
为 pod 和容器数据流添加缺失的 "kubernetes.daemonset.name" 字段

0.12.1

Bug 修复 (查看拉取请求)
在 [Metrics Kubernetes] 概览仪表板和集成概览页面的仪表板部分添加缺失的 "orchestrator.cluster.name" 字段的集群过滤器

0.12.0

增强 (查看拉取请求)
使用 orchestrator.cluster.url 和 orchestrator.cluster.name 更新 kubernetes 包 ecs 字段

0.11.1

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

0.11.0

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

0.10.0

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

0.9.1

缺陷修复 (查看拉取请求)
为 state_pod 和 state_container 添加缺失的字段 "kubernetes.daemonset.name"

0.9.0

增强 (查看拉取请求)
使用 state_job 数据流增强 kubernetes 包

0.8.0

增强 (查看拉取请求)
在 kubernetes 集成中利用领导者选举

0.7.0

增强 (查看拉取请求)
向 Kubernetes 字段添加 _meta 信息

0.6.0

增强 (查看拉取请求)
使用 input_groups 引入 kubernetes 包粒度

0.5.3

增强 (查看拉取请求)
添加缺失的字段 "kubernetes.statefulset.replicas.ready"

0.5.2

缺陷修复 (查看拉取请求)
修复堆栈兼容性

0.5.1

缺陷修复 (查看拉取请求)
修复对环境变量的引用

0.5.0

增强 (查看拉取请求)
为 controllermanager 和 scheduler 数据流添加缺失的字段 "kubernetes.selectors.*" 和额外的 https 设置

0.4.5

增强 (查看拉取请求)
添加缺失的字段 "kubernetes.pod.ip"

0.4.4

增强 (查看拉取请求)
更新软件包所有者

0.4.3

缺陷修复 (查看拉取请求)
更正示例事件文件。

0.4.2

缺陷修复 (查看拉取请求)
更改 kibana.version 约束以使其更保守。

0.4.1

增强 (查看拉取请求)
添加缺失的字段

0.1.0

增强 (查看拉取请求)
初始发布