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