监控私有网络上的资源
Elastic Stack Serverless
要监控私有网络上的资源,您可以选择以下方式:
- 允许 Elastic 的全局托管基础设施访问您的私有端点。
- 使用 Elastic Agent 创建私有位置。
通过 Elastic Agent 使用私有位置只需要从您的网络发出出站连接,而允许 Elastic 的全局托管基础设施访问私有端点则需要入站访问,从而带来额外的风险,用户必须对此进行评估。
要允许 Elastic 的全局托管基础设施访问私有端点,请使用 IP 地址过滤、HTTP 身份验证或两者都使用。
要通过 IP 授予访问权限,请使用此出站 IP 列表。此列表上的地址和位置可能会更改,因此建议自动更新过滤规则。仅使用 IP 过滤将允许 Elastic 全局托管基础设施的所有用户访问您的端点,如果对此有顾虑,请考虑通过像 nginx 这样的代理添加用户/密码身份验证来增加保护。
私有位置允许您从自己的场所运行监控。在私有位置运行监控之前,您需要:
- 设置 Fleet Server 和 Elastic Agent.
- 将 Fleet 连接到 Elastic Stack,并在 Fleet 中注册 Elastic Agent。
- 在 Synthetics UI 中添加私有位置。
通过 Elastic Agent 运行的私有位置必须与 Elasticsearch 建立直接连接。 不要配置任何提取管道,或通过 Logstash 输出,因为这会阻止 Synthetics 正常工作,并且不支持。
首先设置 Fleet Server 和 Elastic Agent
- 设置 Fleet Server:如果您正在使用 Elastic Cloud,则已提供 Fleet Server,您可以跳过此步骤。要了解更多信息,请参阅设置 Fleet Server。
- 创建代理策略:有关代理策略和创建代理策略的更多信息,请参阅Elastic Agent 策略。
私有位置应针对在单个 Elastic Agent 上运行的代理策略进行设置。Elastic Agent 必须注册到 Fleet 中(无法使用独立 Elastic Agent 设置私有位置)。请勿在用于私有位置的多个代理上运行相同的代理策略,因为您最终可能会得到重复或丢失的测试。私有位置目前不会在多个 Elastic Agent 之间对测试进行负载均衡。请参阅扩展私有位置以获取有关增加私有位置内容量的信息。
默认情况下,私有位置配置为允许两个并发浏览器测试和无限数量的轻量级检查。 因此,如果将两个以上的浏览器测试分配给特定私有位置,则运行它们可能会有延迟。
设置 Fleet 后,您需要将 Fleet 连接到 Elastic Stack 或您的可观测性 Serverless 项目,并在 Fleet 中注册 Elastic Agent。
Elastic 提供 Docker 镜像,您可以使用它们更轻松地运行 Fleet 和 Elastic Agent。 对于在私有位置上运行的监控,您必须使用 elastic-agent-complete
Docker 镜像来创建自托管的 Elastic Agent 节点。标准的 Elastic Cloud 或自托管的 Elastic Agent 将无法工作。
elastic-agent-complete
Docker 镜像是在 UI 中查看所有可用选项的唯一方法。
要拉取 Docker 镜像,请运行
docker pull docker.elastic.co/elastic-agent/elastic-agent-complete:8.16.1
然后注册并运行 Elastic Agent。 您需要注册令牌和 Fleet Server 的 URL。 您可以使用策略的默认注册令牌,或根据需要创建新策略和注册令牌。
有关使用 Docker 运行 Elastic Agent 的更多信息,请参阅在容器中运行 Elastic Agent。
docker run \
--env FLEET_ENROLL=1 \
--env FLEET_URL={fleet_server_host_url} \
--env FLEET_ENROLLMENT_TOKEN={enrollment_token} \
--cap-add=NET_RAW \
--cap-add=SETUID \
--rm docker.elastic.co/elastic-agent/elastic-agent-complete:8.16.1
elastic-agent-complete
Docker 镜像需要额外的功能才能正常运行。 确保在容器上启用了 NET_RAW
和 SETUID
。
您可能需要设置其他环境变量。 在Elastic Agent 环境变量指南中了解如何操作。
Elastic Agent 运行后,您可以在 UI 中添加新的私有位置
- 在全局搜索字段中找到
Synthetics
。 - 转到设置。
- 转到私有位置选项卡。
- 单击添加位置。
- 为您的新位置指定唯一的位置名称,然后选择您上面创建的代理策略。
- 单击保存。
目前,如果不采用解决方法,则无法将自定义 CA 用于私有位置中的合成浏览器测试。 要了解有关此解决方法的更多信息,请参阅以下 GitHub 问题:elastic/synthetics#717。
默认情况下,私有位置配置为允许两个并发浏览器测试和无限数量的轻量级检查。 可以通过环境变量 SYNTHETICS_LIMIT_{{TYPE}}
设置这些限制,其中 {{TYPE}}
是运行 Elastic Agent docker 镜像的容器的 BROWSER
、HTTP
、TCP
和 ICMP
之一。
分配足够的内存和 CPU 容量来处理配置的限制至关重要。 首先,至少分配 2 GiB 的内存和每个浏览器实例两个核心,以确保一致的性能并避免内存不足错误。 然后根据需要进行调整。 资源需求将因工作负载而异。 轻量级监控器需要的内存少得多。 首先,至少为轻量级检查分配 512MiB 的内存和两个核心。 然后,根据观察到的使用模式增加分配的内存和 CPU。
这些限制是针对并发测试,而不是总测试。 例如,如果计划每小时运行一次 60 个浏览器测试,并且每个测试花费 1 分钟来运行,那么这将完全占用一个执行槽。 但是,最好设置具有额外容量的执行槽。 一个好的起点是过度分配 5 倍的因子。 在前面的示例中,这意味着分配 5 个槽。
现在,您可以在 Synthetics UI 中或使用Elastic Synthetics 库的 push
方法将监控添加到您的私有位置。