阿里云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數據遷移至阿里云

常見問題