跳转至

AWS CloudFront

采集 AWS CloudFront 指标、日志数据

配置

AWS CloudFront 的核心性能指标包括请求总数、数据传输量、HTTP 错误率、缓存命中率和延迟,这些可以帮助用户评估和优化内容分发网络的性能。

安装 Func

推荐开通 观测云集成 - 扩展 - 托管版 Func: 一切前置条件都自动安装好, 请继续脚本安装

如果自行部署 Func 参考自行部署 Func

安装脚本

提示:请提前准备好符合要求的亚马逊 AK(简单起见,可直接授予全局只读权限ReadOnlyAccess

托管版开通脚本

  1. 登陆观测云控制台
  2. 点击【集成】菜单,选择【云帐号管理】
  3. 点击【添加云帐号】,选择【AWS】,填写界面所需的信息,如之前已配置过云帐号信息,则忽略此步骤
  4. 点击【测试】,测试成功后点击【保存】,如果测试失败,请检查相关配置信息是否正确,并重新测试
  5. 点击【云帐号管理】列表上可以看到已添加的云账号,点击相应的云帐号,进入详情页
  6. 点击云帐号详情页的【集成】按钮,在未安装列表下,找到AWS CloudFront,点击【安装】按钮,弹出安装界面安装即可。

手动开通脚本

  1. 登陆Func 控制台,点击【脚本市场】,进入观测云脚本市场,搜索:integration_aws_cloudfront

  2. 点击【安装】后,输入相应的参数:AWS AK ID 、AK Secret 及账户名。

  3. 点击【部署启动脚本】,系统会自动创建 Startup 脚本集,并自动配置相应的启动脚本。

  4. 开启后可以在「管理 / 自动触发配置」里看到对应的自动触发配置。点击【执行】,即可立即执行一次,无需等待定期时间。稍等片刻,可以查看执行任务记录以及对应日志。

验证

  1. 在「管理 / 自动触发配置」确认对应的任务是否已存在对应的自动触发配置,同时可以查看对应任务记录及日志检查是否有异常
  2. 在观测云,「基础设施 / 自定义」中查看是否存在资产信息
  3. 在观测云,「指标」查看是否有对应监控数据

指标

配置好亚马逊-云监控,默认的指标集如下, 可以通过配置的方式采集更多的指标 亚马逊云监控指标详情

监控指标

指标英文名 指标中文名 含义
Requests 请求书 CloudFront接收到的所有HTTP方法以及HTTP和HTTPS请求的查看器请求总数。
Bytes downloaded 下载字节数 查看器为GET、HEAD和OPTIONS请求下载的总字节数。
Bytes uploaded 上传字节数 查看器使用POST和PUT请求通过CloudFront上传到您的源位置的总字节数。
4xx error rate 4xx 错误数 响应的HTTP状态代码为4xx的所有查看器请求的百分比。
5xx error rate 5xx 错误数 响应的HTTP状态代码为5xx的所有查看器请求的百分比。
Total error rate 总错误数 响应的HTTP状态代码为4xx或5xx的所有查看器请求的百分比。

Logging

CloudFront

日志采集方式

  • 可以配置 CloudFront 使其创建日志文件,其中包含有关 CloudFront 接收的每个用户(查看器)请求的详细信息,并存储到 S3 桶。这些日志称为标准日志,也称为访问日志。
  • S3 触发 Event 调用 Lambda 函数,通过 DataKit 或者 DataWay 将数据上报到平台(推荐通过 DataWay 直接上传)

CloudFront 日志写入 S3 存储桶

  1. 选择对应的CloudFront分配,进入详情页
  2. 在【Logging】页中,在【设置】中点击【编辑】
  3. 选择【标准日志目标】部分,点击【Add】,选择Amazon S3
  4. 选择为日志文件创建的 S3 存储桶,选择所需的日志字段(可增加DistrubtionIdc-country 等字段),同时选择输出格式为JSON
  5. 点击【Submit】保存配置。

Lambda 配置

参考:Lambda 抓取 S3 日志数据

日志解析

观测云 已内置了 CloudFront 日志解析,可以在【日志】 - 【Pipelines】 - 【Pipeline 官方库】 - 选择 CloudFront ,添加类型为 中心 Pipeline,保存即可,对新上报数据生效。

对象

上报的数据示例如下:

{
  "measurement": "aws_cloudfront",
  "tags": {
    "ARN": "arn:aws-cn:cloudfront::F",
    "DomainName": "d3q33pv83.cloudfront.cn",
    "Id": "E183FMUG1QDCZF",
    "Status": "Deployed",
    "name": "E183FMUG1ZF"
  },
  "fields": {
    "CreatedDate"              : "2022-03-09T06:13:31Z",
    "ApiKeySelectionExpression": "$request.header.",
    "DisableSchemaValidation"  : "xxxxx",
    "Description"              : "Created by AWS Lambda"
  }
}

注意:tagsfields中的字段可能会随后续更新有所变动

文档评价

文档内容是否对您有帮助? ×