解析 AWS VPC 流日志

编辑

parse_aws_vpc_flow_log 处理器用于解码 AWS VPC 流日志消息。

以下是一个示例配置,它使用默认的版本 2 VPC 流日志格式解码 message 字段。

processors:
  - parse_aws_vpc_flow_log:
      format: version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status
      field: message

parse_aws_vpc_flow_log 处理器具有以下配置设置。

表 4. 解析 AWS VPC 流日志选项

名称 必填 默认值 描述

field

message

包含 VPC 流日志消息的源字段。

target_field

aws.vpcflow

VPC 流日志对象的目标字段。这仅适用于原始 VPC 流日志字段。ECS 字段写入标准位置。

format

VPC 流日志格式。这支持版本 2 到 5 的 VPC 流日志字段。它将接受字符串或字符串列表。每个格式必须具有唯一的字段数量,以便能够将其与流日志消息匹配。

mode

ecs

模式控制生成哪些字段。可用选项为 originalecsecs_and_originaloriginal 生成格式字符串中指定的字段。 ecs 将原始字段映射到 ECS 并删除映射到 ECS 的原始字段。 ecs_and_original 将原始字段映射到 ECS 并保留所有原始字段。

ignore_missing

false

忽略缺少的源字段。

ignore_failure

false

在解析和转换流日志消息时忽略错误。

id

用于调试目的的实例 ID。

模式

编辑

原始

编辑

此模式返回在 format 字符串中找到的相同字段。它将删除值为连字符 (-) 的任何字段。它将字符串转换为相应的数据类型。以下是已知的字段名称及其数据类型。

AWS VPC 流字段名称在 Filebeat 中使用下划线而不是连字符。您可以使用包含任一字符的字段名称配置 format

VPC 流日志字段 数据类型

account_id

字符串

action

字符串

az_id

字符串

bytes

长整型

dstaddr

IP

dstport

整数

end

时间戳

flow_direction

字符串

instance_id

字符串

interface_id

字符串

log_status

字符串

packets

长整型

pkt_dst_aws_service

字符串

pkt_dstaddr

IP

pkt_src_aws_service

字符串

pkt_srcaddr

IP

protocol

整数

region

字符串

srcaddr

IP

srcport

整数

start

时间戳

sublocation_id

字符串

sublocation_type

字符串

subnet_id

字符串

tcp_flags

整数

tcp_flags_array*

整数

traffic_path

整数

type

字符串

version

整数

vpc_id

字符串

此模式将原始 VPC 流日志字段映射到其关联的 Elastic Common Schema (ECS) 字段。它删除了映射到 ECS 的原始字段以减少重复。这些是字段关联。可能应用一些转换以导出 ECS 字段。

VPC 流日志字段 ECS 字段

account_id

cloud.account.id

action

event.outcome

action

event.action

action

event.type

az_id

cloud.availability_zone

bytes

network.bytes

bytes

source.bytes

dstaddr

destination.address

dstaddr

destination.ip

dstport

destination.port

end

@timestamp

end

event.end

flow_direction

network.direction

instance_id

cloud.instance.id

packets

network.packets

packets

source.packets

protocol

network.iana_number

protocol

network.transport

region

cloud.region

srcaddr

network.type

srcaddr

source.address

srcaddr

source.ip

srcport

source.port

start

event.start

ECS 和原始

编辑

此模式将字段映射到 ECS 并保留所有原始字段。以下是使用 ecs_and_orignal 模式生成的示例文档。

{
  "@timestamp": "2021-03-26T03:29:09Z",
  "aws": {
    "vpcflow": {
      "account_id": "64111117617",
      "action": "REJECT",
      "az_id": "use1-az5",
      "bytes": 1,
      "dstaddr": "10.200.0.0",
      "dstport": 33004,
      "end": "2021-03-26T03:29:09Z",
      "flow_direction": "ingress",
      "instance_id": "i-0axxxxxx1ad77",
      "interface_id": "eni-069xxxxxb7a490",
      "log_status": "OK",
      "packets": 52,
      "pkt_dst_aws_service": "CLOUDFRONT",
      "pkt_dstaddr": "10.200.0.80",
      "pkt_src_aws_service": "AMAZON",
      "pkt_srcaddr": "89.160.20.156",
      "protocol": 17,
      "region": "us-east-1",
      "srcaddr": "89.160.20.156",
      "srcport": 50041,
      "start": "2021-03-26T03:28:12Z",
      "sublocation_id": "fake-id",
      "sublocation_type": "wavelength",
      "subnet_id": "subnet-02d645xxxxxxxdbc0",
      "tcp_flags": 1,
      "tcp_flags_array": [
        "fin"
      ],
      "traffic_path": 1,
      "type": "IPv4",
      "version": 5,
      "vpc_id": "vpc-09676f97xxxxxb8a7"
    }
  },
  "cloud": {
    "account": {
      "id": "64111117617"
    },
    "availability_zone": "use1-az5",
    "instance": {
      "id": "i-0axxxxxx1ad77"
    },
    "region": "us-east-1"
  },
  "destination": {
    "address": "10.200.0.0",
    "ip": "10.200.0.0",
    "port": 33004
  },
  "event": {
    "action": "reject",
    "end": "2021-03-26T03:29:09Z",
    "outcome": "failure",
    "start": "2021-03-26T03:28:12Z",
    "type": [
      "connection",
      "denied"
    ]
  },
  "message": "5 64111117617 eni-069xxxxxb7a490 89.160.20.156 10.200.0.0 50041 33004 17 52 1 1616729292 1616729349 REJECT OK vpc-09676f97xxxxxb8a7 subnet-02d645xxxxxxxdbc0 i-0axxxxxx1ad77 1 IPv4 89.160.20.156 10.200.0.80 us-east-1 use1-az5 wavelength fake-id AMAZON CLOUDFRONT ingress 1",
  "network": {
    "bytes": 1,
    "direction": "ingress",
    "iana_number": "17",
    "packets": 52,
    "transport": "udp",
    "type": "ipv4"
  },
  "related": {
    "ip": [
      "89.160.20.156",
      "10.200.0.0",
      "10.200.0.80"
    ]
  },
  "source": {
    "address": "89.160.20.156",
    "bytes": 1,
    "ip": "89.160.20.156",
    "packets": 52,
    "port": 50041
  }
}