使用 Elastic Agent 进行 Kubernetes 自动发现
编辑使用 Elastic Agent 进行 Kubernetes 自动发现
编辑当您在容器上运行应用程序时,它们会成为监控系统的移动目标。自动发现功能允许您跟踪它们并在发生更改时调整设置。通过定义配置模板,自动发现子系统可以在服务启动运行时对其进行监控。
要使用自动发现,您需要修改 Elastic Agent 的清单文件。请参考在 Kubernetes 上以独立模式运行 Elastic Agent,了解如何检索和配置它。
有两种不同的方式使用自动发现
如何配置自动发现
编辑基于条件的自动发现
更适合用户提前知道他们想要监控的不同容器组的场景。当管理员可以配置与他们的需求匹配的特定条件时,建议选择基于条件的配置。托管和独立 Elastic Agent 都支持条件。
基于提示的自动发现
更适合通用的场景,特别是当用户不知道要监控的系统的确切配置,并且无法提前创建条件时。此外,提示自动发现的一个巨大优势是能够根据 Pod/Containers 的注解动态配置输入。如果需要动态配置,则应启用提示。提示仅在独立 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 命令。(有关更多信息,请参阅输入配置中的变量和条件中的调试部分)
- 在基于条件的自动发现中,建议定义一个通用的最后一个条件,该条件将作为您的默认条件,并且在所有其他条件失败或不适用时将进行验证。如果适用,此类条件可能有助于识别处理过程并排除可能的问题。