监控私有网络上的资源

编辑

要监控私有网络上的资源,您可以选择以下方式:

  • 允许 Elastic 的全球托管基础设施访问您的私有端点。
  • 使用 Elastic Agent 创建私有位置。

通过 Elastic Agent 使用私有位置仅需要从您的网络建立出站连接,而允许 Elastic 的全球托管基础设施访问私有端点则需要入站访问,因此会带来用户必须评估的额外风险。

允许访问您的私有网络

编辑

要允许 Elastic 的全球托管基础设施访问私有端点,请使用 IP 地址过滤、HTTP 身份验证或两者都使用。

要通过 IP 授予访问权限,请使用此出口 IP 列表。此列表中的地址和位置可能会更改,因此建议自动更新过滤规则。仅 IP 过滤将允许 Elastic 全球托管基础设施的所有用户访问您的端点,如果这是一个问题,请考虑通过像 nginx 这样的代理添加额外的用户/密码身份验证保护。

通过私有代理监控

编辑

通过私有位置,您可以从自己的场所运行监视器。在私有位置上运行监视器之前,您需要:

通过 Elastic Agent 运行的私有位置必须与 Elasticsearch 直接连接。不要配置任何摄取管道,或通过 Logstash 输出,因为这会阻止 Synthetics 正常工作,并且不支持

设置 Fleet Server 和 Elastic Agent

编辑

首先设置 Fleet Server 和 Elastic Agent

  • 设置 Fleet Server:如果您正在使用 Elastic Cloud,则将已经提供 Fleet Server,您可以跳过此步骤。要了解更多信息,请参阅设置 Fleet Server
  • 创建代理策略:有关代理策略以及如何创建它们的更多信息,请参阅Elastic Agent 策略

应针对在单个 Elastic Agent 上运行的代理策略设置私有位置。Elastic Agent 必须在 Fleet 中注册(无法使用独立 Elastic Agent 设置私有位置)。请勿在用于私有位置的多个代理上运行相同的代理策略,因为您可能会最终得到重复或缺失的测试。私有位置目前不会在多个 Elastic Agent 之间进行测试负载均衡。有关增加私有位置内的容量的信息,请参阅缩放私有位置

默认情况下,私有位置配置为允许两个并发浏览器测试和无限数量的轻量级检查。因此,如果将两个以上的浏览器测试分配给特定的私有位置,则运行它们可能会有延迟。

连接到 Elastic Stack

编辑

设置 Fleet 后,您需要将 Fleet 连接到 Elastic Stack 并在 Fleet 中注册 Elastic Agent。

Elastic 提供了 Docker 镜像,您可以使用它们更轻松地运行 Fleet 和 Elastic Agent。对于在私有位置上运行的监视器,您必须使用 elastic-agent-complete Docker 镜像来创建自托管的 Elastic Agent 节点。标准的 Elastic Cloud 或自托管 Elastic Agent 将不起作用。

elastic-agent-complete Docker 镜像是在 Elastic Cloud 中看到所有可用选项的唯一方法。

要拉取 Docker 镜像,请运行

docker pull docker.elastic.co/elastic-agent/elastic-agent-complete:8.17.0

然后注册并运行 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.17.0

elastic-agent-complete Docker 镜像需要额外的功能才能正常运行。请确保在容器上启用 NET_RAWSETUID

您可能需要设置其他环境变量。在Elastic Agent 环境变量指南中了解更多信息。

添加私有位置

编辑

当 Elastic Agent 正在运行时,您可以在 Kibana 中添加新的私有位置

  1. 全局搜索字段中查找 Synthetics
  2. 单击设置
  3. 单击私有位置
  4. 单击添加位置
  5. 为您的新位置指定唯一的位置名称,并选择您上面创建的代理策略
  6. 单击保存

目前无法在私有位置中为合成浏览器测试使用自定义 CA,除非遵循解决方法。要了解有关此解决方法的更多信息,请参阅以下 GitHub 问题:elastic/synthetics#717

缩放私有位置

编辑

默认情况下,私有位置配置为允许两个并发浏览器测试和无限数量的轻量级检查。这些限制可以通过环境变量 SYNTHETICS_LIMIT_{TYPE} 设置,其中 {TYPE} 是运行 Elastic Agent Docker 镜像的容器的 BROWSERHTTPTCPICMP 之一。

为处理配置的限制分配足够的内存和 CPU 容量至关重要。首先,为每个浏览器实例分配至少 2 GiB 的内存和两个核心,以确保一致的性能并避免内存不足的错误。然后根据需要进行调整。资源需求将根据工作负载而变化。轻量级监视器需要更少的内存。首先,为轻量级检查分配至少 512MiB 的内存和两个核心。然后,根据观察到的使用模式增加分配的内存和 CPU。

这些限制是针对并发测试的,而不是总测试。例如,如果计划每小时运行一次 60 个浏览器测试,并且每个测试需要 1 分钟才能运行,那么这将完全占用一个执行槽。但是,最好设置具有额外容量的执行槽。一个好的起点是将过度分配 5 倍。在前面的示例中,这意味着分配 5 个槽。

下一步

编辑

现在,您可以在 Synthetics 应用中或使用 Elastic Synthetics 库的 push 方法向您的私有位置添加监视器。