本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

通過自建Logstash遷移資料到阿里雲ES

更新時間:2024-06-30 00:40

Logstash是一個開源的資料收集引擎,具有即時傳輸資料,並過濾資料的能力。如果您對遷移即時性要求不高,可以使用Logstash進行資料移轉。本文介紹在ECS上部署自建Logstash,並通過該Logstash將一個記錄檔遷移到Elasticsearch(ES)中。

前提條件

  • 已建立阿里雲ES執行個體,並開啟執行個體的自動建立索引功能。

    說明
  • 已建立ECS執行個體,ECS執行個體需要能夠同時訪問自建Logstash叢集和阿里雲ES叢集。 具體操作,請參見自訂購買執行個體

    說明

    建議您購買與阿里雲ES在同一地區、同一可用性區域、同一Virtual Private Cloud下的ECS執行個體。

  • 在ECS執行個體中安裝JDK。 具體操作,請參見安裝JDK

    說明

    JDK版本選擇Temurin 17及以上。Java JDK版本與Logstash版本的相容情況,請參見JVM相容表

  • 準備待遷移的資料,本文以ECS的日誌資料為例。

操作步驟

(可選)步驟一:建立角色和使用者

自建Logstash訪問ES或在Kibana中查看Logstash監控時,需要使用ES的帳號,您可以使用elastic使用者或自建使用者。

說明

實際業務中建議使用自建使用者,並給自建使用者指派相應的角色和許可權。使用elastic使用者會降低系統安全性。

建立角色

以添加具有logstash-* 讀寫權限的角色為例。

  1. 登入目標阿里雲ES執行個體的Kibana控制台。

    具體步驟,請參見登入Kibana控制台

  2. 單擊Kibana頁面左上方的image表徵圖,選擇Management > Stack Management

  3. 在左側導覽列,選擇安全 > 角色

  4. 角色頁面,單擊建立角色,配置角色參數。

    部分參數說明:

    參數

    說明

    參數

    說明

    角色名稱

    角色名稱,自訂輸入。

    索引

    選擇對應的索引檔案。需要輸入logstash-*

    許可權

    為角色指派索引許可權。需要添加readwritecreatedelete以及create_index許可權。

  5. 單擊建立角色,完成建立。

建立使用者

以建立監控Logstash服務的使用者為例。 您可以選擇以下任一方式建立使用者:

重要

阿里雲ES叢集預設會禁掉logstash_system使用者,因此您需要建立一個角色為logstash_system的使用者名稱,但需要注意使用者名稱不可以配置為logstash_system

  • 方法一:通過Kibana控制台添加使用者

    1. 登入目標阿里雲ES執行個體的Kibana控制台。

      具體步驟,請參見登入Kibana控制台

    2. 單擊Kibana頁面左上方的image表徵圖,選擇Management > Stack Management

    3. 在左側導覽列,選擇安全 > 使用者

    4. 使用者頁面,單擊建立使用者

    5. 建立使用者頁面,配置使用者資訊。

      部分參數說明:

      參數

      說明

      參數

      說明

      Username

      使用者名稱,可以自訂。本章節以建立Logstash監控使用者為例,設定使用者名稱為logstash_system_monitor

      Roles

      使用者的角色,需要選擇logstash_system角色。

    6. 單擊建立使用者,完成建立。

  • 方法二:通過命令列方式建立使用者

    串連ECS執行個體,通過以下命令添加使用者。

    curl -u elastic:<es-password> -XPOST http://<instanceId>.elasticsearch.aliyuncs.com:9200/_xpack/security/user/logstash_system_monitor -d '{"password" : "<logstash-monitor-password>","roles" : ["logstash_system"],"full_name" : "<your full name>"}'

    參數

    說明

    參數

    說明

    es-password

    阿里雲ES執行個體的密碼,即您登入Kibana控制台的密碼。

    <instanceId>

    阿里雲ES執行個體的ID,可在執行個體的基本資料頁面擷取。

    <logstash-monitor-password>

    您建立的logstash_system_monitor使用者的密碼。

    <your full name>

    目前使用者名的全名描述。

    添加成功後,結果如下。添加使用者成功

步驟二:在ECS上安裝Logstash

  1. 串連ECS執行個體。

    具體步驟請參見串連ECS執行個體

  2. 下載Logstash。

    進入Elastic官網,下載與阿里雲ES執行個體版本一致的Logstash。

    wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.1-linux-x86_64.tar.gz
    說明

    下載Logstash7.4版本

    wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gz
  3. 對下載的Logstash壓縮包進行解壓縮。

    以8.5.1版本為例。

    tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz

步驟三:配置並執行Logstash遷移任務

  1. 進入Logstash目錄。

    cd logstash-8.5.1
  2. 建立conf檔案。

    touch test.conf
  3. 配置test.conf檔案。

    配置樣本如下。

    input {
        file {
            path => "/your/file/path/xxx"
            }
    }
    filter {
    }
    output {
      elasticsearch {
        hosts => "<http://<instanceId>.elasticsearch.aliyuncs.com:9200>"
      	index => "<index-name>"
        user => "<user-name>"
        password => "<logstash-password>"
      }
    }

    參數

    說明

    參數

    說明

    path

    記錄檔的路徑。本文以/var/log/messages為例。

    hosts

    阿里雲ES執行個體的訪問地址。instanceId為執行個體ID,可在執行個體的基本資料頁面擷取。例如:http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200

    index

    檔案寫入目標ES中的索引名字,索引名字自訂。

    user

    訪問阿里雲ES執行個體的帳號。 本文使用elastic。

    重要
    • 實際業務中建議使用自建使用者,使用elastic使用者會降低系統安全性。

    • 使用者名稱上需要加英文引號(""),防止在啟動Logstash時,因出現特殊字元報錯。

    password

    阿里雲ES執行個體帳號的密碼。

    重要

    密碼上需要加英文引號(""),防止在啟動Logstash時,因為特殊字元報錯。

    Logstash提供了豐富的input、filter、output外掛程式,只需要簡單的配置即可實現資料的流轉,詳情請參見官方設定檔結構文檔。

  4. 啟動logstash

    bin/logstash -f test.conf

    命令執行成功後,系統會自動通過Logstash擷取記錄檔的變化,並提交到阿里雲ES叢集。只要監控的記錄檔有新增內容,Logstash就會自動同步資料到ES叢集中。

步驟四:查看遷移成功的資料

  1. 登入目標阿里雲ES執行個體的Kibana控制台。

    具體步驟,請參見登入Kibana控制台

  2. 單擊Kibana頁面左上方的image表徵圖,選擇Management > 開發工具

  3. 在Kibana控制台中,執行以下命令。

    GET /logstash-*/_search

(可選)步驟五:監控Logstash節點

  1. 進入Logstash安裝目錄的config檔案中。

    cd logstash-8.5.1/config
  2. 配置logstash.yml檔案。

    1. 開啟logstash.yml檔案。

      vim logstash.yml
    2. 在logstash.yml檔案中,去掉以下幾個參數的注釋,並配置參數值。

      xpack.monitoring.enabled:true
      xpack.monitoring.elasticsearch.username:"<user-name>"
      xpack.monitoring.elasticsearch.password:"<logstash-password>"
      xpack.monitoring.elasticsearch.hosts:["http://es-cn-nwy3fwjp8xxxxxxx.elasticsearch.aliyuncs.com:9200"]

      參數

      說明

      參數

      說明

      xpack.monitoring.enable

      預設為false,需要設定為true

      xpack.monitoring.elasticsearch.username

      您建立的Logstash監控帳號,本文使用elastic使用者。

      重要

      實際業務中建議使用自建使用者,使用elastic使用者會降低系統安全性。

      xpack.monitoring.elasticsearch.password

      Logstash監控使用者的密碼。

      xpack.monitoring.elasticsearch.hosts

      阿里雲ES執行個體的訪問地址。例如:http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200

  3. 返回Logstash安裝目錄,啟動Logstash服務。

    cd ../
    bin/logstash -f test.conf
  4. 登入目標阿里雲ES執行個體的Kibana控制台。

    具體步驟,請參見登入Kibana控制台

  5. 單擊Kibana頁面左上方的image表徵圖,選擇Management > 堆棧監測

  6. (可選)在彈出的Create rules對話方塊,單擊OK

  7. 叢集概覽頁面,查看Logstash監控資訊。

相關文檔

  • 本頁導讀 (1, M)
  • 前提條件
  • 操作步驟
  • (可選)步驟一:建立角色和使用者
  • 步驟二:在ECS上安裝Logstash
  • 步驟三:配置並執行Logstash遷移任務
  • 步驟四:查看遷移成功的資料
  • (可選)步驟五:監控Logstash節點
  • 相關文檔
文檔反饋
phone 聯絡我們

立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

alicare alicarealicarealicare