帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据加工
  6. 数据加工(旧版)
  7. 最佳实践
  8. 数据富化
  9. 过滤VPC流日志公网流量

过滤VPC流日志公网流量

  • 数据富化
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

在专有网络VPC控制台上开通流日志功能后,流日志将被采集到日志服务中,您可以通过日志服务对流日志进行查询、分析和排查网络故障。本文介绍通过日志服务数据加工对流日志进行公网流量过滤的操作方法。

前提条件

  • 已开通VPC流日志功能。具体操作,请参见创建流日志。

  • 已创建Project和Logstore,用于保存数据加工后的VPC流日志公网流量日志。具体操作,请参见创建项目Project和创建Logstore。

背景信息

专有网络VPC提供流日志功能,可以记录VPC网络中弹性网卡ENI(Elastic Network Interface)传入和传出的流量信息,帮助您检查访问控制规则、监控网络流量和排查网络故障。

流日志功能捕获的流量信息以日志方式写入日志服务中。每条日志会捕获特定捕获窗口中的特定五元组网络流量,捕获窗口大约为10分钟,该段时间内流日志功能先聚合数据,再发布日志。如果您选择为VPC或交换机创建流日志,则会捕获VPC和交换机中所有弹性网卡的流量,包括开启流日志功能后新建的弹性网卡。

使用场景

例如,开通VPC流日志后,采集到日志服务中的日志示例如下:

{
    "vm-id": "i-bp13cg******zs2l",
    "srcaddr": "172.16.XX.XX",
    "__time__": 1650964251,
    "__topic__": "flow_log",
    "dstport": "53",
    "account-id": "1379******4",
    "__source__": "log_service",
    "start": "1650862360",
    "dstaddr": "100.100.XX.XX",
    "vpc-id": "vpc-bp1cznk******vv",
    "version": "1",
    "packets": "1",
    "eni-id": "eni-bp17w******5sfw6m",
    "protocol": "17",
    "__pack_meta__": "1|MTY1MDk2NDAxOTEyMjczMTQ1NQ==|5|4",
    "bytes": "92",
    "vswitch-id": "vsw-bp16******wqe6p44",
    "srcport": "59986",
    "action": "ACCEPT",
    "end": "1650862391",
    "log-status": "OK",
    "direction": "out"
}

在对流日志查询和分析过程中,为便于分析公网流量,您需要对原始日志做以下处理:

  • 如果srcaddr和dstaddr字段不存在,则丢弃该日志。

  • 如果是私网之间互通的流量,则丢弃该日志。

基于以上需求,您可以通过数据加工,对采集到的流日志进行数据加工,便于问题分析。

操作步骤

  1. 登录日志服务控制台。

  2. 在Project列表区域,单击目标Project。

    image

  3. 在控制台左侧,单击日志存储,在日志库列表中单击目标Logstore。

    image

  4. 单击数据加工,进入数据加工模式。

  5. 在数据加工编辑框中,输入如下加工语句。

    # 如果srcaddr和dstaddr字段不存在,丢弃。
    e_if(e_not_has("srcaddr"), e_drop())
    e_if(e_not_has("dstaddr"), e_drop())
    
    # 如果srcaddr和dstaddr不符合IP地址格式,丢弃。
    e_if(op_not(e_match("srcaddr", grok(r'%{IP}'))), e_drop());
    e_if(op_not(e_match("dstaddr", grok(r'%{IP}'))), e_drop());
    
    # 如果是内网之间互通的流量,丢弃。
    e_if(op_and(
    op_or(ip_cidrmatch("10.0.0.0/8", v("srcaddr")),
          ip_cidrmatch("172.16.0.0/12", v("srcaddr")),
          ip_cidrmatch("192.168.0.0/16", v("srcaddr"))
    ),
    op_or(ip_cidrmatch("10.0.0.0/8", v("dstaddr")),
          ip_cidrmatch("172.16.0.0/12", v("dstaddr")),
          ip_cidrmatch("192.168.0.0/16", v("dstaddr"))
    )),e_drop())
    • 通过e_if和e_not_has函数删除不存在srcaddr和dstaddr字段的日志。更多信息,请参见e_if、e_not_has和e_drop。

    • 通过e_if、op_not、e_match函数删除srcaddr和dstaddr字段不符合IP地址格式的日志。更多信息,请参见op_not和e_match。

    • 通过e_if、op_and、op_or和ip_cidrmatch函数删除内网日志。更多信息,请参见op_and、op_or和ip_cidrmatch。

  6. 单击预览数据。

    您可以看到原始日志只保留了公共流量的流日志。preview

  7. 单击保存数据加工。

  8. 在创建数据加工任务页面,配置如下参数,然后单击确定。

    1. 配置基本信息。

      参数

      说明

      任务名称

      数据加工任务的名称。例如输入vpc-flowlog-public。

      授权方式

      授予日志服务读取源日志库中数据的权限。以默认角色为例,选择默认角色。

    2. 配置存储目标。

      参数

      说明

      目标名称

      存储目标名称。例如输入target-a。

      目标Region

      目标Project所在地域。例如选择华东1(杭州)。

      目标Project

      用于存储公网流量日志的Project名称。例如输入project-vpc-flowlog-public。

      目标库

      用于存储公网流量日志的Logstore名称。例如输入logstore-vpc-flowlog-public。

      授权方式

      授予日志服务读写存储目标Logstore权限。

      以默认角色为例,选择默认角色。

    3. 配置加工时间范围。

      参数

      说明

      时间范围

      加工的时间范围。 选择所有,即表示对Logstore中的数据从开始时间持续加工。

    创建完成后,您可以:

    • 查看任务详情与状态,修改、启动、停止和删除任务等。具体操作,请参见管理数据加工任务。

    • 进入存储目标Logstore查看VPC流日志的公网流量。新的日志数据,只保留公网日志。

      您可以输入查询和分析语句,对公网流量的请求来源城市和目的地城市进行查询分析。例如:

      *|select ip_to_city(srcaddr) as sourceAddr,ip_to_city(dstaddr) as dstAddr,COUNT(*) as pv group by sourceAddr,dstAddr order by pv limit 10

      fenxi

相关文章

从其他Logstore获取数据进行数据富化 2025-04-22 10:53

本文档介绍如何通过资源函数从其他Logstore中获取数据对数据进行富化。 背景信息 某酒店将客人个人信息存储在名为user_logstore的Logstore中,将客人入住信息存储在名为check-in_logstore的Logstore中,现

从OSS获取IPIP库进行IP地址数据富化 2025-04-22 10:53

日志服务数据加工功能支持从OSS获取IPIP库数据,对日志中的IP地址进行富化,补充IP地址所属的国家、省、市等信息。 前提条件

从OSS获取IP2Location库进行IP地址数据富化 2025-04-22 10:53

日志服务数据加工功能支持从OSS获取IP2Location库数据,对日志中的IP地址进行富化,补充IP地址所属的国家、省、市等信息。 前提条件

从OSS获取CSV文件进行数据富化 2025-04-22 10:53

本文档介绍如何通过资源函数和映射富化函数从OSS中获取数据对日志数据进行富化。 前提条件

从RDS MySQL数据库获取数据进行数据富化 2025-04-22 10:53

日志服务数据加工功能支持从阿里云RDS MySQL数据库获取数据,结合数据加工规则,进行数据富化。 背景信息 在数据存储场景中,您可能经常遇到数据分散存储的问题,例如用户操作、行为等相关数据存储在日志

通过日志服务访问RDS MySQL进行数据富化 2025-04-22 10:53

当数据分别存储在日志服务的Logstore和RDS MySQL数据库中时,您可以使用日志服务的数据加工功能,通过RDS的内网地址访问RDS MySQL数据库以获取数据,进而实现数据富化。 工作原理 使用日志服务数据加工功能,通过RDS内网地址访问RDS MySQL获取数据进行数据富化的过程如图所示:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1