AWS API 网关访问日志
Amazon API Gateway 是一种集中式服务,可在一个屋檐下创建、发布、维护、监控和保护您的 API。为了帮助调试与请求执行或客户端访问 API 相关的问题,您可以为 API 调用启用日志。
AWS API Gateway 访问日志包含命中 API Gateway 实例的各个请求的摘要。这些日志用作 API 网关处理的请求的一般摘要。
借助Site24x7 AppLogs,您可以收集、整合、跟踪和管理您的 AWS API Gateway 访问日志。
Site24x7 是 AWS 审核的 Lambda 服务就绪计划合作伙伴
先决条件:
您需要为 API 网关启用日志记录,并且应该将其转发到 CloudWatch 日志,以便使用 Site24x7 监控它们。
目录:
1. 为 AWS API Gateway 访问日志创建日志配置文件
详细步骤:
监控 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 函数的环境变量(在下一步中说明)。
- 单击保存。
- 从服务下拉列表中选择Lambda ,然后选择创建函数。从头开始选择作者,为函数定义一个名称,然后选择 Python 3.7 作为Runtime。
- 权限:您可以选择现有的 IAM 角色或创建具有基本 Lambda 权限的新角色。您还可以选择创建新的用户角色并将权限扩展到其他服务。
- 添加触发器:向下滚动以选择 CloudWatch Logs。添加的任何日志文件都将由 Lambda 函数发送到 Site24x7。
- 配置触发器
- 日志组:选择作为源的 CloudWatch 日志组。所选组中触发的任何事件都将调用 Lambda 函数。
- 过滤器名称:为您的过滤器选择一个名称。
- 选中启用触发器复选框,然后单击添加。
- 在打开的窗口中,单击Lambda 函数,如图所示:
- 滚动到编辑器,然后将提供的代码放在下面的链接中:
-
- 输入代码后,导航到 Site24x7 Web 客户端,选择管理> Applogs > 日志配置文件,然后选择创建的日志配置文件,并将屏幕上显示的代码复制为字段Environment variables 下变量logTypeConfig的输入。
- 将此代码粘贴到环境变量下,并在 AWS 控制台中 使用字段名称logTypeConfig 。
Site24x7 AppLogs 为每种日志类型创建一个专属仪表板,并默认显示一些小窗件。以下是 AWS API Gateway 访问仪表板可用的小窗件列表:
- 总请求
- 平均响应时间
- 平均响应大小
- 失败的请求
- 前 20 个失败的请求
- 请求趋势
- 前 10 名客户端 IP
- 状态码统计
- 响应时间统计
- 前 50 个成功请求
- 前 10 个最慢的请求