帮助手册

AWS API Gateway 访问日志

Amazon API Gateway 是一项集中式服务,可帮助您在同一平台下创建、发布、维护、监控和保护您的 API。为帮助调试与请求执行或客户端访问 API 相关的问题,您可以为 API 调用启用日志记录。

AWS API Gateway 访问日志包含到达 API Gateway 实例的各个请求的摘要,这些日志是 API 网关处理请求的总体摘要。

借助 Site24x7 AppLogs,您可以收集、整合、跟踪和管理您的 AWS API Gateway 访问日志。

前提条件:

您需要为 API Gateway 启用日志记录,并将其转发到 CloudWatch 日志,才能使用 Site24x7 对其进行监控。

目录:

1. 为 AWS API Gateway 访问日志创建日志配置文件

2. 创建 Lambda 函数

3. 查看 AWS API Gateway 访问日志

详细步骤:

1. 创建日志配置文件

监控 AWS API 日志的第一步是在 Site24x7 AppLogs 中为其创建日志配置文件。创建日志配置文件的步骤:

  • 登录您的 Site24x7 账号 > 管理(Admin)> AppLogs > 日志配置文件(Log Profile)
  • 输入配置文件名称(Profile Name)
  • 选择 AWS API Gateway 访问日志(AWS API Gateway Access Logs)作为日志类型(Log Type)
    • 通常情况下,将应用默认日志模式。日志模式:
      json $requestTime:date:dd/MMM/yyyy:HH:mm:ss Z$ $domainname$ $path$ $caller$ $protocol$ $requestId$ $ip:ip$ $resourcePath$ $responseLength$ $httpMethod$ $user$ $status$ $responselatency:number$File Path
    • 示例日志:
      { "domainname":"zlyker.com", "path":"\user", "requestId":"1f286b4d-2d8b-432a-9841-6e931accb312", "ip": "16.41.70.121", "caller":"-", "user":"-","requestTime":"14/Feb/2020:20:42:25 +0000", "httpMethod":"POST","resourcePath":"/{myproxy+}", "status":"200","protocol":"HTTP/1.1", "responseLength":"307", "responselatency":"39" }
      { "domainname":"zlyker.com", "path":"\view", "requestId":"1f286b4d-2d8b-432a-9841-6e931accb322", "ip": "46.11.70.221", "caller":"-", "user":"-","requestTime":"14/Feb/2020:20:43:25 +0000", "httpMethod":"POST","resourcePath":"/{myproxy+}", "status":"200","protocol":"HTTP/1.1", "responseLength":"1507", "responselatency":"149" }
      { "domainname":"zlyker.com", "path":"\validate", "requestId":"1f286b4d-2d8b-432a-9841-6e931accb332", "ip": "86.41.10.221", "caller":"-", "user":"-","requestTime":"14/Feb/2020:20:44:30 +0000", "httpMethod":"POST","resourcePath":"/{myproxy+}", "status":"400","protocol":"HTTP/1.1", "responseLength":"7","responselatency":"3" }
    • 您也可以使用自定义日志模式替代默认模式。为此,请点击铅笔图标
    • 输入您的日志模式,并提供三个示例,以便我们理解和查询您的日志模式。
  • 选择 AWS Lambda 作为日志来源(Log Source)
  • 复制显示的输入变量;这是 Lambda 函数的环境变量(在下一步中说明)。
  • 点击保存(Save)

2. 创建 Lambda 函数

  • 从"服务(Services)"下拉列表中选择 Lambda,然后选择"创建函数(Create Function)"。选择"从头开始创作(Author from scratch)",为函数定义名称,并选择 Python 3.7 作为运行时。 

  • 权限(Permissions): 您可以选择现有的 IAM 角色,或创建具有基本 Lambda 权限的新角色。您也可以选择创建新用户角色并扩展其他服务的权限。
  • 添加触发器(Add triggers):向下滚动选择 CloudWatch Logs。添加的任何日志文件都将由 Lambda 函数发送到 Site24x7。 
  • 配置触发器(Configure Triggers)
    • 日志组(Log group):选择作为来源的 CloudWatch 日志组。在所选组中触发的任何事件都将调用 Lambda 函数。
    • 过滤器名称(Filter name):为您的过滤器选择一个名称。
    • 选中"启用触发器(enable trigger)"复选框,然后点击"添加(Add)"。
  • 在打开的窗口中,如图所示点击 Lambda 函数(Lambda Function)
  • 滚动到编辑器,粘贴以下链接中提供的代码:
    • 输入代码后,进入 Site24x7 Web 客户端,选择管理(Admin)> AppLogs > 日志配置文件(Log Profile),选择已创建的日志配置文件(Log Profile),并复制屏幕上显示的代码,作为"环境变量(Environment variables)"字段下变量 logTypeConfig 的输入值。
  • 在 AWS 控制台的环境变量(Environment Variable)下,以 logTypeConfig 为字段名粘贴此代码。

3. 查看 AWS API Gateway 访问日志

Site24x7 AppLogs 为每种日志类型创建专属仪表板,并默认显示一些小部件。以下是 AWS API Gateway 访问日志仪表板中可用的小部件列表:

  • 总请求数(Total Requests)
  • 平均响应时间(Average Response Time)
  • 平均响应大小(Average Response Size)
  • 失败请求数(Failed Requests)
  • Top 20 失败请求(Top 20 Failed Requests)
  • 请求趋势(Request Trend)
  • Top 10 客户端 IP(Top 10 Client IPs)
  • 状态码统计(Status Code Stats)
  • 响应时间统计(Response Time Stats)
  • Top 50 成功请求(Top 50 Successful Requests)
  • Top 10 最慢请求(Top 10 Slowest Requests)

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!