使用 Lambda 函数收集 VPC flow日志
VPC flow日志为您提供有关进出 VPC 中网络接口的 IP 流量的信息。这可以作为一种安全措施来监控流向您的实例的流量。您可以将 VPC flow日志配置为发布到 Amazon S3 存储桶,Site24x7 从中收集它以进行监控。了解有关使用 Site24x7 进行日志管理的更多信息。
Site24x7 是 AWS 审核的 Lambda 服务就绪计划合作伙伴
flow日志语法示例
flow日志记录是一个空格分隔的字符串,格式如下:
<version> <account-id> <interface-id> <srcaddr> <dstaddr> <srcport> <dstport> <protocol> <packets> <bytes> <start> <end> <action> <log-status>
创建日志配置文件
要收集 VPC flow日志,您首先需要创建一个日志配置文件。导航到管理> AppLogs> 日志配置文件> 添加日志配置文件,然后按照以下说明进行操作:
- 配置文件名称:输入日志配置文件的名称。
- 日志类型:选择 VPC flow日志。如果您尚未在 AWS 账户中启用VPC Flow 日志,请按照此处提供的说明进行操作。
- 日志来源:选择 Amazon Lambda。
- 时区:为您的日志选择一个时区。
- 单击保存。
- 按照此处所述配置 Lambda 函数。
创建flow日志以发布到 Amazon S3 存储桶
- 在https://console.aws.amazon.com/vpc/打开 Amazon VPC 控制台。
- 在导航窗格中,选择您的 VPC。
- 选择一个或多个 VPC,然后选择操作、创建flow日志。
- 过滤器:指定要记录的 IP 流量数据的类型。选择全部以记录接受和拒绝的流量,选择拒绝以仅记录拒绝的流量,或选择接受以仅记录接受的流量。目的地:选择发送到 Amazon S3 存储桶。
- 对于 S3 存储桶 ARN,指定现有 Amazon S3 存储桶的 Amazon 资源名称 (ARN)。您可以在存储桶 ARN 中包含子文件夹。
存储桶不能使用 AWSLogs 作为子文件夹名称,因为这是一个保留期限。
- 对于现有用户或角色,请确保为flow日志授予写入权限。否则,创建一个新用户或角色并提供必要的权限。
- 选择创建。
配置 Lambda 函数
- 从服务下拉列表中选择Lambda ,然后选择创建函数。从头开始选择作者,为函数定义一个名称,然后选择 Python 3.7 作为Runtime。
- 权限:您可以选择现有 IAM 角色或从 AWS 策略模板创建新角色。从策略模板下拉列表中选择Amazon S3 Object 只读权限,然后输入角色名称。您还可以选择创建新的用户角色并将权限扩展到其他服务。
- 添加触发器:向下滚动以选择S3 Bucket。添加到 S3 存储桶的任何日志文件都将由 Lambda 函数发送到 Site24x7。
- 配置触发器
- 存储桶:输入将从中收集日志的 S3 存储桶的名称。
- 事件类型:选择所有对象创建事件。
- 单击添加。
- 滚动到编辑器,然后将提供的代码放在下面的链接中:
https://github.com/site24x7/applogs-aws-lambda/blob/master/s3/s3-sender.py
- 输入代码后,导航到 Site24x7 Web 客户端,选择管理> Applogs > 日志配置文件,然后选择创建的日志配置文件,然后复制屏幕上显示的代码作为变量logtypeConfig 的输入。
- 将此代码粘贴到 环境变量下, 并在 AWS 控制台中 使用字段名称 logTypeConfig 。
VPC flow日志仪表板
AppLogs 为每种日志类型创建一个专属仪表板,并默认显示一些小窗件。以下是 VPC flow日志仪表板中可用的小窗件列表:
- 传输的总字节数
- 平均传输字节数
- 平均传输数据包
- 网络行动统计
- 拒绝请求数最多的前 IP 地址
- 使用 UDP 传输协议的排名靠前的 IP 地址
- 按源的前 10 字节传输
- 按源和目标 IP 地址传输的字节数
除了默认小窗件之外,您保存的搜索也将自动添加到仪表板中。