AWS API 网关访问日志

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

AWS API Gateway 访问日志包含命中 API Gateway 实例的各个请求的摘要。这些日志用作 API 网关处理的请求的一般摘要。

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

Site24x7 是 AWS 审核的 Lambda 服务就绪计划合作伙伴

AWS-reviewed Lambda Service Ready Program partner

先决条件:

您需要为 API 网关启用日志记录,并且应该将其转发到 CloudWatch 日志,以便使用 Site24x7 监控它们。

目录:

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

2. 创建 Lambda 函数

3. 查看 AWS API Gateway 访问日志

详细步骤:

1.创建日志配置文件

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

  • 登录到您的Site24x7 帐户 > 管理 > AppLogs > 日志配置文件
  • 输入配置文件名称
  • 选择AWS API Gateway 访问日志作为日志类型
    • 通常,应用默认日志模式。日志模式:
      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作为日志源
  • 复制显示的输入变量;这是 Lambda 函数的环境变量(在下一步中说明)。
  • 单击保存

2. 创建 Lambda 函数

  • 服务下拉列表中选择Lambda ,然后选择创建函数。从头开始选择作者,为函数定义一个名称,然后选择 Python 3.7 作为Runtime。 

Configure lambda function

  • 权限:您可以选择现有的 IAM 角色或创建具有基本 Lambda 权限的新角色。您还可以选择创建新的用户角色并将权限扩展到其他服务。
  • 添加触发器:向下滚动以选择 CloudWatch Logs。添加的任何日志文件都将由 Lambda 函数发送到 Site24x7。Add trigger
  • 配置触发器
    • 日志组:选择作为源的 CloudWatch 日志组。所选组中触发的任何事件都将调用 Lambda 函数。
    • 过滤器名称:为您的过滤器选择一个名称。
    • 选中启用触发器复选框,然后单击添加。
  • 在打开的窗口中,单击Lambda 函数,如图所示:s3 trigger
  • 滚动到编辑器,然后将提供的代码放在下面的链接中:
    • 输入代码后,导航到 Site24x7 Web 客户端,选择管理> Applogs > 日志配置文件,然后选择创建的日志配置文件,并将屏幕上显示的代码复制为字段Environment variables 下变量logTypeConfig的输入
  • 将此代码粘贴到环境变量下,并在 AWS 控制台中 使用字段名称logTypeConfig

3.  查看 AWS API Gateway 访问日志

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

  • 总请求
  • 平均响应时间
  • 平均响应大小
  • 失败的请求
  • 前 20 个失败的请求
  • 请求趋势
  • 前 10 名客户端 IP
  • 状态码统计
  • 响应时间统计
  • 前 50 个成功请求
  • 前 10 个最慢的请求