监控私有网络上的资源

编辑

要监控私有网络上的资源,您可以:

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

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

允许访问您的私有网络

编辑

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

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

通过私有 Agent 监控

编辑

私有位置允许您在自己的场所运行监控器。在私有位置上运行监控器之前,您需要:

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

设置 Fleet Server 和 Elastic Agent

编辑

首先设置 Fleet Server 和 Elastic Agent

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

私有位置应针对在单个 Elastic Agent 上运行的 Agent 策略进行设置。Elastic Agent 必须在 Fleet 中注册(无法使用独立Elastic Agent 设置私有位置)。请勿在用于私有位置的多个 Agent 上运行相同的 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.16.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.16.0

elastic-agent-complete Docker 镜像需要其他功能才能正确运行。确保在容器上启用了NET_RAWSETUID

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

添加私有位置

编辑

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

  1. 全局搜索字段 中查找Synthetics
  2. 点击设置
  3. 点击私有位置
  4. 点击添加位置
  5. 为您的新位置指定一个唯一的位置名称,然后选择上面创建的Agent 策略
  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 方法 向您的私有位置添加监控器。