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 访问日志创建日志配置文件
详细步骤:
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 的输入值。

- 输入代码后,进入 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)

