阿里云Logstash实例部署在专有网络VPC(Virtual Private Cloud)下,如果您需要通过Logstash采集公网网络中的数据,或者将Logstash采集的数据输出到公网网络中,则需要配置NAT网关,实现专有网络下的阿里云Logstash与公网连通。本文介绍具体的配置方法。

背景信息

由于阿里云Logstash实例部署在专有网络VPC下,如果源端或目标端任意一个与阿里云Logstash不在同一VPC下(源端和目标端网络不通),会导致数据无法传输。在这种情况下,您可以使用阿里云NAT网关的DNAT条目实现公网服务向Logstash节点推送数据,SNAT条目实现Logstash访问公网,解决网络不通的问题。阿里云NAT网关是一种网络地址转换服务,更多详细信息请参见什么是NAT网关

前提条件

您已完成以下操作:

操作步骤

  1. 登录阿里云Logstash控制台
  2. 进入目标实例。
    1. 在顶部菜单栏处,选择地域。
    2. Logstash实例中单击目标实例ID。
  3. 在左侧导航栏,单击网络与安全
  4. 网络配置区域,单击前往配置NAT网关
    关于NAT网关的详细说明和配置流程,请参见创建和管理公网NAT网关实例。其中DNAT条目适用于公网服务向Logstash节点推送数据;SNAT条目适用于Logstash主动访问公网。
  5. 在NAT网关配置页面,创建NAT网关。
    创建NAT网关时,所选的地域和VPC ID需要与阿里云Logstash保持一致。详细创建方法,请参见步骤一:创建公网NAT网关
  6. 绑定弹性公网IP。
    1. 在NAT网关列表右侧操作列下,选择更多操作 > 绑定弹性公网IP
    2. 绑定弹性公网IP页面,选择从已有弹性公网IP中选择
      如果还没有EIP,可选择新购弹性公网IP并绑定,按照页面提示完成绑定。
    3. 选择可用的EIP,单击确定
      重要 一个NAT网关最多可绑定20个EIP(最多可绑定10个按流量计费的EIP,每个按流量计费的EIP的最大峰值不能超过200 Mbps),您可以提交工单申请更多配额。
  7. 创建DNAT条目。
    1. 在NAT网关列表中,单击对应网关右侧操作列下的设置DNAT
    2. 单击DNAT管理页签。
    3. DNAT条目列表区域,单击创建DNAT条目
    4. 创建DNAT条目页面,填写相关参数。
      参数说明
      选择公网IP地址选择一个可用的公网IP。
      说明 用于创建SNAT条目的公网IP不能再用来创建DNAT条目。
      选择私网IP地址选择通过手动输入,输入Logstash的IP地址。可在Logstash的基本信息页面获取,获取方式请参见查看实例的基本信息
      端口设置选择DNAT映射的方式:
      • 任意端口:该方式属于IP映射,相当于为目标Logstash实例配置了一个弹性公网IP。任何访问该公网IP的请求,都将转发到目标Logstash实例上。
      • 具体端口:该方式属于端口映射,NAT网关会将指定协议和端口访问该公网IP的请求,转发到目标Logstash实例的指定端口上。

        选择具体端口后,请根据业务需求输入公网端口(进行端口转发的外部端口)、私网端口(进行端口转发的内部端口)和协议类型(进行端口转发的协议类型)。

      条目名称输入DNAT条目的名称。

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

    5. 单击确定创建,完成创建。
  8. 创建SNAT条目。
    1. 返回NAT网关列表页面,单击对应网关右侧操作列下的设置SNAT
    2. 单击SNAT管理页签。
    3. SNAT条目列表区域,单击创建SNAT条目
    4. 创建SNAT条目页面,单击SNAT条目粒度区域的交换机粒度,并填写相关参数。
      参数说明
      选择交换机选择Logstash所属的专有网络中的交换机。该交换机下所有ECS实例,都将通过SNAT功能进行公网访问。
      选择公网IP地址选择用来提供互联网访问的公网IP,支持选择多个公网IP,多个公网IP构建SNAT IP地址池。

      当选择多个公网IP地址配置SNAT IP地址池时,请确保每个公网IP地址加入到一个共享带宽中。详细信息,请参见加入与移出共享带宽

      更多参数的详细信息,请参见创建和管理SNAT条目

    5. 单击确定创建,完成创建。
  9. 返回Logstash控制台,通过管道配置实现公网数据传输。
    详细信息,请参见通过配置文件管理管道。配置示例如下:
    input {
        beats {
            port => 8000
            host => "118.11.xx.xx"
        }
    }
    filter {
    
    }
    output {
        elasticsearch {
            hosts => ["http://es-cn-o40xxxxxxxxxx****.elasticsearch.aliyuncs.com:9200"]
            index => "logstash_test_1"
            password => "es_password"
            user => "elastic"
        }
        file_extend {
            path => "/ssd/1/ls-cn-v0h1kzca****/logstash/logs/debug/test"
        }
    }

    假如管道配置的input为beats、output为elasticsearch,其中Beats所在服务器与Logstash在同一VPC下,但Elasticsearch与Logstash不在同一VPC下,此时Logstash要将数据输出到Elasticsearch(Logstash主动访问公网),就需要先配置SNAT条目。

相关文档

最佳实践:腾讯云Elasticsearch数据迁移至阿里云

常见问题