正在加载

监控私有网络上的资源

Elastic Stack Serverless

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

  • 允许 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 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_RAWSETUID

注意

您可能需要设置其他环境变量。 在Elastic Agent 环境变量指南中了解如何操作。

Elastic Agent 运行后,您可以在 UI 中添加新的私有位置

  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 UI 中或使用Elastic Synthetics 库的 push 方法将监控添加到您的私有位置。

© . All rights reserved.