使用 Elastic Agent 进行 Kubernetes 自动发现
编辑使用 Elastic Agent 进行 Kubernetes 自动发现编辑
当您在容器上运行应用程序时,它们会成为监控系统的移动目标。自动发现允许您跟踪它们并在发生更改时调整设置。通过定义配置模板,自动发现子系统可以在服务开始运行时对其进行监控。
要使用自动发现,您需要修改 Elastic Agent 的清单文件。请参阅在 Kubernetes 上运行独立 Elastic Agent,了解如何检索和配置它。
有两种不同的方式可以使用自动发现
如何配置自动发现编辑
基于条件的自动发现
更适用于用户事先知道要监控的不同容器组的场景。当管理员可以配置满足其需求的特定条件时,建议选择基于条件的配置。托管和独立 Elastic Agent 都支持条件。
基于提示的自动发现
适用于更通用的场景,尤其是在用户不知道要监控的系统的确切配置并且无法提前创建条件的情况下。此外,提示自动发现的一大优势是能够根据 Pod/容器的注释提供输入的动态配置。如果需要动态配置,则应启用提示。仅独立 Elastic Agent 模式支持提示。
配置自动发现的最佳实践
- 始终为在条件或[提示模板](例如,请参阅[nginx.yml](https://github.com/elastic/elastic-agent/blob/main/deploy/kubernetes/elastic-agent-standalone/templates.d/nginx.yml#L8))中将
auth.basic
设置为auth.basic.user: ${kubernetes.hints.nginx.access.username|kubernetes.hints.nginx.username|''}
)中使用的变量定义备选值和默认值。
当输入使用当前正在评估的键/值映射中不存在的变量替换时,该输入将在结果中被删除。(有关更多信息,请参阅输入配置中的变量和条件)
- 要调试包含变量替换和条件的配置,请使用 Elastic Agent 的 inspect 命令。(有关更多信息,请参阅调试部分中的输入配置中的变量和条件)
- 在基于条件的自动发现中,建议定义一个通用的最后一个条件,该条件将充当您的默认条件,并在所有其他条件失败或不适用时进行验证。如果适用,此类条件可能有助于识别处理问题并排查可能的问题。