Logstash是一個開源的資料收集引擎,具有即時傳輸資料,並過濾資料的能力。如果您對遷移即時性要求不高,可以使用Logstash進行資料移轉。本文介紹在ECS上部署自建Logstash,並通過該Logstash將一個記錄檔遷移到Elasticsearch(ES)中。
前提條件
已建立阿里雲ES執行個體,並開啟執行個體的自動建立索引功能。
說明本文以通用商業版8.5.1為例。
具體操作,請參見建立Elasticsearch執行個體和快速存取與配置。
已建立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-* 讀寫權限的角色為例。
登入目標阿里雲ES執行個體的Kibana控制台。
具體步驟,請參見登入Kibana控制台。
單擊Kibana頁面左上方的
表徵圖,選擇Management > Stack Management。在左側導覽列,選擇安全 > 角色。
在角色頁面,單擊建立角色,配置角色參數。
部分參數說明:
參數
說明
角色名稱
角色名稱,自訂輸入。
索引
選擇對應的索引檔案。需要輸入logstash-*。
許可權
為角色指派索引許可權。需要添加read、write、create、delete以及create_index許可權。
單擊建立角色,完成建立。
建立使用者
以建立監控Logstash服務的使用者為例。 您可以選擇以下任一方式建立使用者:
阿里雲ES叢集預設會禁掉logstash_system使用者,因此您需要建立一個角色為logstash_system的使用者名稱,但需要注意使用者名稱不可以配置為logstash_system。
方法一:通過Kibana控制台添加使用者
登入目標阿里雲ES執行個體的Kibana控制台。
具體步驟,請參見登入Kibana控制台。
單擊Kibana頁面左上方的
表徵圖,選擇Management > Stack Management。在左側導覽列,選擇安全 > 使用者。
在使用者頁面,單擊建立使用者。
在建立使用者頁面,配置使用者資訊。
部分參數說明:
參數
說明
Username
使用者名稱,可以自訂。本章節以建立Logstash監控使用者為例,設定使用者名稱為logstash_system_monitor。
Roles
使用者的角色,需要選擇logstash_system角色。
單擊建立使用者,完成建立。
方法二:通過命令列方式建立使用者
串連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
串連ECS執行個體。
具體步驟請參見串連ECS執行個體。
下載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對下載的Logstash壓縮包進行解壓縮。
以8.5.1版本為例。
tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz
步驟三:配置並執行Logstash遷移任務
進入Logstash目錄。
cd logstash-8.5.1建立conf檔案。
touch test.conf配置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外掛程式,只需要簡單的配置即可實現資料的流轉,詳情請參見官方設定檔結構文檔。
啟動logstash。
bin/logstash -f test.conf命令執行成功後,系統會自動通過Logstash擷取記錄檔的變化,並提交到阿里雲ES叢集。只要監控的記錄檔有新增內容,Logstash就會自動同步資料到ES叢集中。
步驟四:查看遷移成功的資料
登入目標阿里雲ES執行個體的Kibana控制台。
具體步驟,請參見登入Kibana控制台。
單擊Kibana頁面左上方的
表徵圖,選擇Management > 開發工具。在Kibana控制台中,執行以下命令。
GET /logstash-*/_search
(可選)步驟五:監控Logstash節點
進入Logstash安裝目錄的config檔案中。
cd logstash-8.5.1/config配置logstash.yml檔案。
開啟logstash.yml檔案。
vim logstash.yml在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.passwordLogstash監控使用者的密碼。
xpack.monitoring.elasticsearch.hosts阿里雲ES執行個體的訪問地址。例如:
http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200。
返回Logstash安裝目錄,啟動Logstash服務。
cd ../ bin/logstash -f test.conf登入目標阿里雲ES執行個體的Kibana控制台。
具體步驟,請參見登入Kibana控制台。
單擊Kibana頁面左上方的
表徵圖,選擇Management > 堆棧監測。(可選)在彈出的Create rules對話方塊,單擊OK。
在叢集概覽頁面,查看Logstash監控資訊。
相關文檔
阿里雲ES外掛程式能夠提升叢集在穩定性、查詢和寫入效能、分詞查詢、資料檢索等各方面的能力,請參見外掛程式配置概述。