监控私有网络上的资源

编辑

监控私有网络上的资源编辑

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

  • 允许 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 并将 Elastic Agent 注册到 Fleet 中。

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

要拉取 Docker 镜像,请运行

docker pull docker.elastic.co/beats/elastic-agent-complete:8.14.2

然后注册并运行 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/beats/elastic-agent-complete:8.14.2

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}BROWSERHTTPTCPICMP 之一,用于运行 Elastic Agent docker 镜像的容器。

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

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

下一步编辑

现在,您可以在 Synthetics 应用程序 中或使用 Elastic Synthetics 库的 push 方法 将监控添加到您的私有位置。