监控私有网络上的资源
编辑监控私有网络上的资源
编辑要监控私有网络上的资源,您可以选择以下方式:
- 允许 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 应用中添加私有位置。
通过 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_RAW
和 SETUID
。
您可能需要设置其他环境变量。在Elastic Agent 环境变量指南中了解更多信息。
添加私有位置
编辑当 Elastic Agent 正在运行时,您可以在 Kibana 中添加新的私有位置
- 在全局搜索字段中查找
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 应用中或使用 Elastic Synthetics 库的 push
方法向您的私有位置添加监视器。