使用自定义摄取管道与 Kubernetes 集成
编辑使用自定义摄取管道与 Kubernetes 集成编辑
本教程介绍如何将自定义摄取管道添加到 Kubernetes 集成,以便为 Pod 的部署和 CronJob 添加特定元数据字段。
自定义管道可用于添加自定义数据处理,例如添加字段、模糊化敏感信息等。有关更多信息,请参阅我们关于 使用自定义摄取管道转换数据 的教程。
Kubernetes 的元数据丰富编辑
使用 Kubernetes 集成 通过 Elastic Agent 收集 Kubernetes 集群中的日志和指标。在收集过程中,集成会使用额外的有用信息来增强收集的信息,用户可以使用这些信息与不同的 Kubernetes 资产进行关联。这些添加到收集数据之上的附加信息(例如标签、注释、Kubernetes 资产的祖先名称等)称为元数据。
Kubernetes 提供程序提供 add_resource_metadata
选项来配置元数据丰富选项。
对于 Elastic Agent 版本 >[8.10.4],元数据丰富的默认配置为 add_resource_metadata.deployment=false
和 add_resource_metadata.cronjob=false
。这意味着从属于特定部署的副本集创建的 Pod 不会使用 kubernetes.deployment.name
进行丰富。此外,从属于特定 CronJob 的作业创建的 Pod 不会使用 kubernetes.cronjob.name
进行丰富。
Kubernetes 集成策略 > 从 Kube-state-metrics 收集 Kubernetes 指标 > Kubernetes Pod 指标
示例:在托管 Elastic Agent 策略中通过 add_resource_metadata
启用丰富
注意: 启用部署和 CronJob 元数据丰富会导致 Elastic Agent 的内存消耗增加。Elastic Agent 使用本地缓存来保存已发现的 Kubernetes 资产的记录。
通过摄取管道为 Kubernetes Pod 添加部署和 CronJob编辑
作为保持功能启用并使用更多 Elastic Agent 内存资源的替代方案,用户可以使用摄取管道来添加缺少的 kubernetes.deployment.name
和 kubernetes.cronjob.name
字段。
按照 使用自定义摄取管道转换数据 教程,导航到 state_pod
数据流,位于:Kubernetes 集成策略 > 从 Kube-state-metrics 收集 Kubernetes 指标 > Kubernetes Pod 指标。
使用两个处理器创建以下自定义摄取管道
部署处理器编辑
CronJob 处理器编辑
最终的 metrics-kubernetes.state_pod@custom
摄取管道
[ { "gsub": { "field": "kubernetes.replicaset.name", "pattern": "(?:.(?!-))+$", "replacement": "", "target_field": "kubernetes.deployment.name", "ignore_missing": true, "ignore_failure": true } }, { "gsub": { "field": "kubernetes.job.name", "pattern": "(?:.(?!-))+$", "replacement": "", "target_field": "kubernetes.cronjob.name", "ignore_missing": true, "ignore_failure": true } } ]
注意:摄取管道不会检查部署和 CronJob 祖先的实际存在,它只添加特定值。