本文为您介绍如何通过流日志排查通过SNAT形式访问公网的高流量ECS实例。

前提条件

开始前,请确保满足以下条件:
  • 您已经在华北5(呼和浩特)地域创建了VPC,并在该VPC中创建一个交换机。具体操作,请参见搭建IPv4专有网络
  • 您已经在交换机内创建了三个ECS实例。具体操作,请参见使用向导创建实例

背景信息

本文以下图场景为例。VPC内同一个交换机下的多台ECS实例,通过NAT网关以SNAT形式访问公网。现需排查出流量占比较高的ECS实例。 交换机流日志

配置步骤

配置步骤

步骤一:创建NAT网关

  1. 登录NAT网关管理控制台
  2. NAT网关页面,单击创建NAT网关
  3. 首次使用NAT网关时,需在创建NAT网关页面最下方的关联角色创建须知区域,单击创建,创建服务关联角色。
    角色创建成功后即可创建NAT网关。 创建角色
  4. 创建NAT网关面板,配置以下购买信息,然后单击立即购买
    • 付费模式:本文选择按量付费
    • 地域和可用区:本文选择华北5(呼和浩特)
    • 可用区:选择交换机所属的可用区,本文选择呼和浩特可用区A。
    • VPC ID:选择创建的VPC。创建NAT网关后,不能修改NAT网关所属的VPC。
    • 交换机ID:选择已创建的交换机。
    • 网关类型:默认选择为增强型
    • 名称:设置NAT网关实例的名称为NATGW-1。

      名称长度为2~128个字符,以英文字母或中文开头,可包含数字、下划线(_)和短划线(-)。

    • 计费类型:本文选择按使用量计费
    • 计费周期:默认显示NAT网关实例的计费周期为按小时
  5. 在支付订单页面确认支付金额,然后单击支付完成购买。
    当出现 恭喜,支付成功!的提示后,说明您购买成功。

步骤二:创建并绑定EIP

  1. NAT网关页面,找到步骤创建的NAT网关实例,然后在弹性公网IP列单击立即绑定
  2. 绑定弹性公网IP对话框,配置以下参数,然后单击确定
    • 所在资源组:选择EIP所在的资源组。
    • 选择弹性公网IP:选择要绑定到NAT网关的EIP。

      本文以选择新购弹性公网IP并绑定为例进行说明。系统会为您创建1个按使用流量计费的按量付费EIP,并绑定到NAT网关。

    绑定成功后,在NAT网关实例的 弹性公网IP列将会显示出绑定的公网IP。

步骤三:创建SNAT条目

  1. NAT网关页面,找到步骤创建的NAT网关实例,然后在操作列单击设置SNAT
  2. SNAT管理页签,单击创建SNAT条目
  3. 创建SNAT条目页面,配置以下参数,然后单击确定创建
    • SNAT条目粒度:选择SNAT条目的粒度。本文以选择交换机粒度为例。
      • 选择交换机:在下拉列表中选择交换机。如果下拉列表中没有可选的交换机,可在下拉列表单击创建交换机跳转到VPC控制台创建交换机。
        说明 如您选择多个交换机,将会为您创建多条SNAT条目,使用相同的公网IP地址。
      • 交换机网段:显示交换机的网段。
    • 选择公网IP地址:选择用来提供互联网访问的公网IP。本文以选择使用单IP为例,在下拉列表中选择步骤创建的EIP。
    • 条目名称:输入SNAT条目的名称。名称长度为2~128个字符,以大小写字母或中文开头, 可包含数字、下划线(_)和短划线(-)。
    SNAT条目配置成功后,您可以登录ECS实例访问公网。

步骤四:创建流日志

创建流日志前,您需要登录日志服务产品页开通日志服务功能。

  1. 登录专有网络管理控制台
  2. 在左侧导航栏,选择运维与监控 > 流日志
  3. 在顶部菜单栏处,选择华北5(呼和浩特)地域。
  4. 流日志页面,单击创建流日志
  5. 创建流日志对话框,根据以下信息配置流日志,然后单击确定
    • 名称:输入流日志名称,本文输入排查高ECS实例流量
    • 资源类型:选择要捕获流量的资源类型,然后选择相应的资源,本文选择交换机
    • 流量类型:选择要捕获流量的类型,本文选择全部流量
    • 项目(Project):选择存储捕获流量的项目(Project)的类型,本文选择新建Project
    • 日志库(Logstore):选择存储捕获流量的日志库(Logstore)的类型,本文选择新建 Logstore
    • 开启流日志分析报表功能:选择该功能后,所选的LogStore会开启索引并建立仪表盘,支持对数据进行SQL与可视化分析。日志服务索引功能按流量收费,仪表盘不收费。更多信息,请参见日志服务计费说明。本文选择开启该功能。
    • 描述:输入流日志的描述。

步骤五:查看流日志

  1. 流日志页面,找到目标流日志,然后在 日志服务列单击日志库(Logstore)名称的链接。
    NAT网关
  2. 根据下图示例顺序,查看通过NAT网关SNAT条目访问公网的ECS实例的流量情况。
    查看流图
    序号 步骤描述
    输入以下SQL语句对日志进行聚合和排列,筛选去往某一特定公网IP的流量较高的ECS实例的图表:
    dstaddr: "X.X.X.X" and action: ACCEPT and srcaddr: 10.0.2.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/("end"-start)) as bandwidth group by time,srcaddr order by time asc limit 1000
    该SQL语句定义了时间time、带宽bandwidth(bps)、源地址srcaddr三个参数,time和srcaddr为聚合列,并按time从小到大排序,取1000条日志。其中参数说明如下:
    • dstaddr:公网地址。
    • srcaddr:私网网段。
    • 其余字段请参照示例值输入。
    说明
    • 输入以下SQL语句,筛选某一特定公网IP到ECS实例的入流量图表:
      srcaddr: "X.X.X.X" and action: ACCEPT and dstaddr: 10.0.2.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, 
      dstaddr,sum(bytes*8/("end"-start)) as bandwidth group by time,dstaddr order by time asc limit 1000
      • srcaddr:公网地址。
      • dstaddr:私网地址。
      • 生成流图时,聚合列选择dstaddr
    • 输入以下SQL语句,筛选ECS实例去往所有公网IP的流量图表:
      srcaddr: 10.0.2.* and action: ACCEPT | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, 
      srcaddr,sum(bytes*8/("end"-start)) as bandwidth from log where ip_to_domain(dstaddr)!='intranet' group by time,srcaddr order by time asc limit 1000
      • srcaddr:私网地址。
      • dstaddr:私网地址。
      • 生成流图时,聚合列选择srcaddr
    选择要查看流日志的时间。
    单击统计图表页签,然后单击流图选择流图格式。
    属性配置区域,设置以下参数信息:
    • 图表类型:本文以线图为例进行说明。
    • X轴:设置为time
    • Y轴:设置为bandwidth
    • 聚合列:设置为srcaddr
    • 格式化:设置为bps, Kbps, Mbps
    其余参数保持默认值。
    单击添加到仪表盘,在弹出的对话框中设置以下参数信息:
    • 操作类型:本文以新建仪表盘为例进行说明。
    • 仪表盘名称:填写仪表盘的名称,本文输入ECS走NAT网关出流量
    • 图表名称:填写图表名称,本文输入ECS走NAT网关出流量
    您可以在仪表盘查看流日志信息。
    单击查询/分析,即可查看各个ECS实例出公网的流量情况,排查出高流量的ECS实例。