排查公网NAT网关中高流量ECS实例

本文为您介绍如何通过流日志排查通过SNAT形式访问公网的高流量云服务器ECS(Elastic Compute Service)实例。

前提条件

  • 本文以华北5(呼和浩特)地域为例创建专有网络VPC(Virtual Private Cloud),并在该VPC中创建一个交换机。具体操作,请参见搭建IPv4专有网络

  • 您已经在交换机内创建了3台ECS实例。具体操作,请参见自定义购买实例

背景信息

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

配置步骤

配置步骤

步骤一:创建公网NAT网关

  1. 登录NAT网关管理控制台

  2. 公网NAT网关页面,单击创建公网NAT网关

  3. 首次使用NAT网关时,在创建公网NAT网关页面关联角色创建区域,单击创建关联角色。角色创建成功后即可创建NAT网关。

    创建角色 关于NAT网关服务关联角色的更多信息,请参见服务关联角色

  4. 在创建页面,配置以下购买信息,然后单击立即购买

    配置

    说明

    付费模式

    默认选择为按量付费,即一种先使用后付费的付费模式。更多信息,请参见公网NAT网关计费

    资源组

    选择VPC所属的资源组。更多信息,请参见什么是资源组

    标签

    • 标签键:选择或输入完整的标签键。

      最多支持输入20个标签键。一个标签键最多支持128个字符,不能以aliyun和acs:开头,不能包含http://或者https://。

    • 标签值:选择或输入完整的标签值。

      最多支持输入20个标签值。一个标签值最多支持128个字符,不能以aliyun和acs:开头,不能包含http://或者https://。

    所属地域

    选择需要创建公网NAT网关的地域。

    所属专有网络

    选择公网NAT网关所属的VPC。创建后,不能修改公网NAT网关所属的VPC。

    关联交换机

    选择公网NAT网关实例所属的交换机。

    计费类型

    默认选择为按使用量计费,即按公网NAT网关实际使用量收费。更多信息,请参见公网NAT网关计费

    计费周期

    默认选择为按小时,即按使用量计费公网NAT网关的计费周期为1小时,不足1小时按1小时计算。

    实例名称

    设置公网NAT网关实例的名称。

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

    访问模式

    选择公网NAT网关的访问模式。支持以下两种模式:

    • VPC全通模式(SNAT):选择了VPC全通模式,在公网NAT网关创建成功后当前VPC内所有实例即可通过该公网NAT网关访问公网。

      选择VPC全通模式(SNAT)后,您需要配置弹性公网IP(Elastic IP Address,简称EIP)的相关信息。

    • 稍后配置:如需稍后配置或有更多配置需求,可在购买完成后,前往控制台进行配置。

      选择稍后配置,则只购买公网NAT网关实例。

    本文选择稍后配置

  5. 确认订单页面确认公网NAT网关的配置信息,选中服务协议并单击确认订单

    当出现恭喜,购买成功!的提示后,说明您创建成功。

步骤二:创建并绑定EIP

  1. 公网NAT网关页面,找到步骤创建的NAT网关实例,您可以通过以下方式绑定弹性公网IP。

    • 弹性公网IP列单击立即绑定

    • 操作列选择icon > 绑定弹性公网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条目的名称。

    SNAT条目配置成功后,您可以登录ECS实例访问公网。

步骤四:创建流日志

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

  1. 登录专有网络管理控制台
  2. 在左侧导航栏,选择运维与监控 > 流日志
  3. 在顶部菜单栏处,选择华北5(呼和浩特)地域。

  4. 流日志页面,单击创建流日志

  5. 创建流日志对话框,根据以下信息配置流日志,然后单击确定

    • 名称:输入流日志名称,本文输入排查高ECS实例流量

    • 资源类型:选择要捕获流量的资源类型,然后选择相应的资源,本文选择交换机

    • 流量类型:选择要捕获流量的类型,本文选择全部流量

    • 项目(Project):选择存储捕获流量的项目(Project)的类型,本文选择新建Project

    • 日志库(Logstore):选择存储捕获流量的日志库(Logstore)的类型,本文选择新建 Logstore

    • 开启流日志分析报表功能:选择该功能后,所选的LogStore会开启索引并建立仪表盘,支持对数据进行SQL与可视化分析。日志服务索引功能按流量收费,仪表盘不收费。更多信息,请参见日志服务计费说明。本文选择开启该功能。

    • 采样间隔(分钟):选择流日志采样的时间间隔,当前支持1分钟、5分钟和10分钟的采样间隔。本文选择采用10分钟的采样间隔。

    • 描述:输入流日志的描述。

步骤五:查看流日志

  1. 登录专有网络管理控制台
  2. 在左侧导航栏,选择运维与监控 > 流日志
  3. 在顶部菜单栏处,选择华北5(呼和浩特)地域。

  4. 流日志页面,找到目标流日志,然后在 日志服务列单击日志库(Logstore)名称的链接。

    NAT

  5. 根据下图示例顺序,查看通过公网NAT网关SNAT条目访问公网的ECS实例的流量情况。

    查看流日志

    序号

    步骤描述

    输入以下SQL语句对日志进行聚合和排列,筛选去往某一特定公网IP地址的流量较高ECS实例的图表:

    dstaddr: "X.X.X.X" and action: ACCEPT and srcaddr: 10.0.0.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) 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.0.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, 
      dstaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth group by time,dstaddr order by time asc limit 1000
      • srcaddr:公网地址。

      • dstaddr:私网地址。

      • 生成流图时,聚合列选择dstaddr

    • 输入以下SQL语句,筛选ECS实例去往所有公网IP的流量图表:

      srcaddr: 10.0.0.* and action: ACCEPT | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, 
      srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) 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实例出公网的流量情况,排查出高流量的ECS实例。