监控私有网络上的资源
Elastic Stack Serverless
要监控私有网络上的资源,您可以:
- 允许 Elastic 的全球托管基础设施访问您的私有端点。
- 使用 Elastic Agent 创建私有位置。
通过 Elastic Agent 的私有位置仅需要您的网络发出连接,而允许 Elastic 的全球托管基础设施访问私有端点则需要入站访问,因此会带来额外的风险,用户必须对此进行评估。
要允许 Elastic 的全球托管基础设施访问私有端点,请使用 IP 地址过滤、HTTP 身份验证或两者结合。
要通过 IP 进行授权,请使用 此出口 IP 列表。此列表上的地址和位置可能会更改,因此建议自动化过滤规则的更新。仅 IP 过滤将允许 Elastic 的全球托管基础设施的所有用户访问您的端点,如果您对此感到担忧,可以考虑通过代理(如 nginx)进行用户/密码身份验证来增加额外的保护。
私有位置允许您从自己的 premises 运行监控。在私有位置上运行监控之前,您需要
- 设置 Fleet Server 和 Elastic Agent.
- 将 Fleet 连接到 Elastic Stack 并将 Elastic Agent 注册到 Fleet。
- 在 Synthetics UI 中添加私有位置。
通过 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 或您的 Observability Serverless 项目,并将 Elastic Agent 注册到 Fleet。
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_RAW 和 SETUID。
您可能需要设置其他环境变量。有关详细信息,请参阅 Elastic Agent 环境变量指南。
当 Elastic Agent 运行时,您可以在 UI 中添加新的私有位置
- 在全局搜索字段中找到
Synthetics。 - 转到 **设置**。
- 转到 **私有位置** 选项卡。
- 点击 **添加位置**。
- 为您的新位置指定一个唯一的位置名称,并选择您上面创建的代理策略。
- 点击 **Save**。
目前无法在私有位置上使用自定义 CA 进行 synthetics 浏览器测试,除非遵循变通方法。要了解有关此变通方法的更多信息,请参考以下 GitHub issue:elastic/synthetics#717。
默认情况下,私有位置配置为允许两个并发浏览器测试和无限数量的轻量级检查。这些限制可以通过环境变量 SYNTHETICS_LIMIT_{{TYPE}} 设置,其中 {{TYPE}} 是运行 Elastic Agent docker 镜像的容器的 BROWSER、HTTP、TCP 和 ICMP 之一。
分配足够的内存和 CPU 容量来处理配置的限制至关重要。请至少分配 2 GiB 内存和两个核心/浏览器实例,以确保一致的性能并避免内存不足错误。然后根据需要进行调整。资源需求将根据工作负载而异。轻量级监控所需的内存要少得多。请至少分配 512MiB 内存和两个核心/轻量级检查。然后根据观察到的使用模式增加分配的内存和 CPU。
这些限制是针对并发测试的,而不是总测试。例如,如果每小时安排运行 60 个浏览器测试,每个测试运行 1 分钟,那么将完全占用一个执行槽。但是,设置具有额外容量的执行槽是一个好习惯。一个好的起点是超额分配 5 倍。在前面的示例中,这意味着分配 5 个槽。
现在您可以在Synthetics UI 中,或使用Elastic Synthetics 库的 push 方法向您的私有位置添加监控。