找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

973

积分

0

好友

121

主题
发表于 11 小时前 | 查看: 2| 回复: 0

在多云战略日益普及的今天,企业往往需要在不同云平台部署业务系统,同时又希望将可观测数据统一采集到单一平台进行分析和管理。然而,跨云数据传输的高昂成本成为了企业实施统一可观测性战略的主要障碍。

我们发现,CloudFront 等 CDN 产品的出站流量价格更低,随用量增加还享有阶梯折扣。通过将 CDN 作为数据传输的“跳板”,可以大幅降低跨云传输成本。基于这一发现,我们设计了 LoongCollector + CDN 的跨云低成本采集方案:

  • LoongCollector 作为新一代可观测数据采集器,具备 10 倍于同类开源方案的吞吐性能,同时资源占用降低 50% 以上,确保数据链路的高效与稳定。
  • CDN 作为流量出口,利用其价格优势和全球加速能力,在保证传输质量的同时显著降低成本。

本方案可将跨云数据传输成本显著降低,让企业以更低的代价实现统一可观测平台的愿景。对云原生技术和监控方案感兴趣的开发者,欢迎来云栈社区交流探讨。

现有方案与痛点

跨云数据采集方案对比:纯公网、公网+加速、跨云专线三种方案痛点分析

方案一:纯公网

日志服务 SLS 对外提供公网域名,用户可以直接通过公网将数据发送到 SLS,且 SLS 不收取入站流量费用。

痛点

  • 成本问题:虽然 SLS 不收取入站流量费用,但跨云采集面临源云平台的出站流量费用。以 AWS 为例,数据传输到互联网的费用约为 $0.09/GB,对于大规模数据采集场景,成本不可忽视。
  • 网络质量问题:跨云公网访问受网络波动影响较大,可能出现丢包、延迟增加等问题,影响数据采集的稳定性和实时性。

方案二:纯公网 + SLS 加速域名

SLS 传输加速利用全球分布的云机房,将全球各地用户对日志服务的访问,经过智能路由解析至就近的接入点,使用优化后的网络及协议极大地提升访问速度。

痛点
双重成本:除了源云平台的出站流量费用之外,还需要承担 DCDN 的加速费用,整体成本进一步增加。

方案三:跨云专线打通

通过云服务提供商的专线服务(如 AWS Direct Connect、阿里云高速通道等)建立跨云专用网络连接。

痛点

  • 建设成本高:专线建设需要一次性投入大量资金,包括端口费用、专线租用费用等。
  • 维护复杂:需要专业团队维护专线连接,运维成本高。
  • 灵活性差:专线带宽固定,难以应对突发流量需求。
  • 建设周期长:从申请到开通通常需要数周甚至数月时间。

跨云低成本采集方案设计

EC2 每月有 100GB 的出站免费额度,但是 CloudFront 的出站和公网访问源站的价格要比 EC2 的价格更低。更重要的是,CDN 产品通常提供分级定价和批量折扣,随着使用量增加,单位成本会进一步降低。通过 CDN 的加速链路,将 SLS 服务设置成源站的方式,我们可以复用 CDN 的转发链路,实现以下优势:

  • 成本优化:利用 CDN 的价格优势,降低数据传输成本。
  • 易于实施:无需建设专线,配置简单,可快速上线。
  • 弹性扩展:按需使用,无需预留带宽,可灵活应对流量波动。

CloudFront 区域数据传输到源站的价格:
CloudFront不同区域数据传输到源站的费用(每GB)表格

CloudFront 请求次数价格(每月前 100 万次免费):
CloudFront不同区域HTTP/HTTPS请求定价(每10000个请求)表格

EC2 出公网价格:
AWS EC2数据传出至互联网的阶梯计费规则表格

以美国地域为例:10TB 的数据,通过 CloudFront 传输,成本比 EC2 直接公网传输可以节约 70%

整体方案

本方案以 CloudFront 为例,整体的采集方案如图所示:
LoongCollector + CloudFront + SLS分层技术架构图

架构概览

AWS EC2(LoongCollector)

  • 部署在 AWS 上的采集/转发程序
  • 主要职责:
    a. 从本地/应用采集日志或数据
    b. 按 SLS 写入协议组包(HTTP POST)
    c. 将数据发送到目标 SLS

CloudFront

  • 作为数据链路的中转入口,提供统一的域名接入点与边缘节点接入能力
  • 主要职责:
    a. 接收 LoongCollector 的请求(HTTP/HTTPS)
    b. 按行为规则转发到源站(此处源站为阿里云 SLS 的写入端)

SLS(阿里云日志服务)

  • 作为日志/数据接收与存储分析平台
  • 对外暴露 HTTP(S) 写入接口
  • 写入后数据落入指定 Project / Logstore(图中 Project)

SLS ConfigServer(管控端)

  • 用于下发采集配置、心跳、元数据管理、鉴权信息刷新等“控制面”能力
  • 对数据量要求低、实时性要求相对可控

链路分层:管控链路 & 数据链路

A. 管控链路(Control Plane)——直连公网
特点:请求量小、数据量小、对带宽不敏感。

  • LoongCollector 直接通过公网访问 SLS ConfigServer
  • 典型动作包括:拉取采集配置/规则
  • 选择直连公网的原因:控制流量小,对成本与链路质量要求不高;架构更简单(减少中转层)

B. 数据链路(Data Plane)——通过 CloudFront 转发到 SLS
特点:持续写入、对稳定性/连通性敏感,可能存在跨境网络波动。

  • LoongCollector 将日志数据以 HTTP POST 方式发送到 CloudFront 域名
  • CloudFront 再将请求回源转发到阿里云 SLS 写入端
  • SLS 接收后写入指定 Project/Logstore

CloudFront 详细配置

这里以采集数据到 SLS 上海地域的 Project 为例。

源配置

CloudFront源配置界面截图:设置SLS公网域名,选择HTTPS协议

注意事项:

  1. SLS 的域名不要带 Project 前缀。
  2. CloudFront 访问 SLS 域名,使用 HTTP 或者 HTTPS 都可以。

行为配置

CloudFront行为配置界面截图:路径模式、源、允许的HTTP方法等设置
CloudFront行为配置界面截图:缓存策略与源请求策略设置

注意事项:

  1. CDN 默认会缓存响应内容,但 LoongCollector 发送数据是 POST 请求,需要配置为不缓存。
  2. CloudFront 对 SLS 域名的请求,需要转发除 HOST 外所有的 header。

CloudFront 的域名验证

CloudFront分发详情界面截图:显示分配的域名

直接 Curl CloudFront 域名,如果有如下返回,则说明已配置成功。

{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"XXX"}}

终端执行curl命令返回错误信息的截图,表明配置成功

LoongCollector 详细配置

使用 HTTP 协议发送数据

# /usr/local/ilogtail/ilogtail_config.json
{
    "primary_region" : "cn-shanghai",
    "config_servers" :
    [
        "https://logtail.cn-shanghai.log.aliyuncs.com"
    ],
    "data_servers" :
    [
        {
            "region" : "cn-shanghai",
            "disable_subdomain" : true,
            "endpoint_list": [
                "http://xxx.cloudfront.net"
            ]
        }
    ],
    ...
}

关键配置说明:

  • config_servers 中,配置 SLS 公网域名,标准格式为 logtail.${region}.log.aliyuncs.com
  • data_servers 中
    • 只需要配置主地域,endpoint_list 中设置成 HTTP 的 CloudFront 域名
    • disable_subdomain: true(关闭子域名转发)

使用 HTTPS 协议发送数据

# /usr/local/ilogtail/ilogtail_config.json
{
    "primary_region" : "cn-shanghai",
    "config_servers" :
    [
        "https://logtail.cn-shanghai.log.aliyuncs.com"
    ],
    "data_servers" :
    [
        {
            "region" : "cn-shanghai",
            "disable_subdomain" : true,
            "endpoint_list": [
                "https://xxx.cloudfront.net"
            ]
        }
    ],
    "enable_host_ip_replace": false,
    ...
}

关键配置说明:

  • config_servers 中,配置 SLS 公网域名,标准格式为 logtail.${region}.log.aliyuncs.com
  • data_servers
    • 只需要配置主地域,endpoint_list 中设置成 HTTPS 的 CloudFront 域名
    • disable_subdomain: true(关闭子域名转发)
  • enable_host_ip_replace: false(关闭 LoongCollector 内部的 DNS 解析)

LoongCollector 资源参数配置

LoongCollector 是部署在 EC2 或者节点上,因此需要预估单机采集的日志的原始数据量,调整资源参数,具体可以参考帮助文档:https://help.aliyun.com/zh/sls/select-a-network-type

LoongCollector推荐参数设置示例表格,分主机和容器环境,对应不同采集速率

PS:LoongCollector 进行数据发送的时候,默认采用 LZ4 进行压缩,针对日志数据,可以有 5 ~ 10 倍的压缩效果。

网络质量测试结果

测试场景:

  • 韩国地域 EC2 采集数据到韩国地域 SLS。
  • 数据包压缩后 800K 左右。

直接公网与通过CloudFront采集数据到SLS的延迟对比表格

可以看到在同地域场景下,CloudFront 的访问质量跟直接公网访问基本持平,HTTP 的访问延迟还是略低一些。

限制说明

  • LoongCollector 版本需要>=3.3.0。
  • 目前仅支持日志数据采集,时序、主机监控等数据还不支持通过 CDN 链路发送。
  • 本功能逐步按照地域灰度中,如需使用,可以联系 SLS 技术支持人员。

总结与展望

方案总结

本文介绍的跨云低成本可观测数据实时采集方案,通过 CDN + LoongCollector 的组合,实现了:

  1. 成本降低:相比纯公网方案,显著降低跨云数据传输成本。
  2. 性能提升:利用 CDN 的全球节点和 LoongCollector 的高性能,提升数据采集速度和稳定性。
  3. 易于实施:配置简单,无需建设专线,可快速上线。
  4. 灵活扩展:按需付费,自动弹性扩展,适应流量波动。

LoongCollector 作为新一代统一可观测 Agent,将持续致力于为用户提供高性能、低成本、易使用的跨云数据采集解决方案,助力企业构建统一的可观测平台。

参考资料:
[1] LoongCollector 官方文档
https://github.com/alibaba/loongcollector

[2] AWS CloudFront 官方文档
https://docs.aws.amazon.com/cloudfront/

[3] 阿里云 SLS 官方文档
https://help.aliyun.com/zh/sls/




上一篇:解析Instant Replay机制:高效捕捉与复现客户侧Windows桌面应用UI崩溃问题
下一篇:Python psutil库全解析:从CPU到电池的跨平台系统监控
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-7 21:45 , Processed in 0.300937 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表