Logstash通過管道完成資料的採集與處理,管道配置中包含input、output和filter(可選)外掛程式,input和output用來配置輸入和輸出資料來源、filter用來對資料進行過濾或預先處理。阿里雲Logstash支援多管道並行運行,目前最多支援20個。本文介紹如何通過設定檔管理管道,包括建立管道、修改管道、複製管道和刪除管道。
前提條件
您已完成以下操作:
建立Elasticsearch執行個體。
具體操作,請參見建立Elasticsearch執行個體。
開啟目標Elasticsearch執行個體的自動建立索引功能(本文以此為例),或提前在執行個體中建立索引和Mapping。
開啟自動建立索引功能的具體操作,請參見配置YML參數。建立索引和Mapping的具體操作,請參見步驟三:建立索引。
說明Elasticsearch為了保證使用者操作資料的安全性,預設將自動建立索引配置設定為不允許。阿里雲Logstash在傳輸資料的時候,使用提交資料的方式建立索引,而不是Create index API的方式。所以在使用阿里雲Logstash上傳資料之前,需要先把叢集的自動建立索引設定為允許,或提前建立好索引和Mapping。
建立阿里雲Logstash執行個體。
具體操作,請參見建立阿里雲Logstash執行個體。
使用限制
阿里雲Logstash最多支援20個管道並行運行。
如果output指定的資料來源為Elasticsearch,需要提前開啟自動建立索引,或建立目標索引和Mapping。
配置過程中涉及到阿里雲系列產品時,需要在同一專用網路下,否則需要配置網路與安全。詳細資料,請參見配置NAT公網資料轉送。
如果在output中使用了file_extend參數,需要先安裝logstash-output-file_extend外掛程式。具體操作,請參見安裝或卸載外掛程式。
建立管道
- 進入Elasticsearch控制台的Logstash頁面。
- 進入目標執行個體。
- 在頂部功能表列處,選擇地區。
- 在Logstash執行個體中單擊目標執行個體ID。
在左側導覽列,單擊管道管理。
單擊建立管道。
輸入管道ID和Config配置。
配置樣本如下。
input { beats { port => 8000 } } 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
指定輸入資料來源。支援的資料來源類型,請參見Input plugins。
說明當Input外掛程式需要監聽Logstash進程所在節點的連接埠時,請使用8000~9000範圍內的連接埠。
如果您需要在input中定義外掛程式、驅動或其他檔案,可單擊查看擴充檔案路徑,在擴充檔案管理對話方塊中,單擊前往上傳,根據提示上傳對應的檔案。詳細資料,請參見配置擴充檔案。
filter
指定對輸入資料進行過濾的外掛程式。支援的外掛程式類型,請參見Filter plugins。
output
指定目標資料來源類型。支援的資料來源類型,請參見Output plugins。
file_extend:可選,用來開啟調試日誌功能,並通過path參數配置調試日誌的輸出路徑。建議您配置該參數,配置後,可直接在控制台上查看輸出結果。如果未配置,需要去目標端確認輸出結果,再返回控制台修改,這樣會耗費大量的時間和人力。詳細資料,請參見使用Logstash管道配置調試功能。
重要使用file_extend參數前,需要先安裝logstash-output-file_extend外掛程式。具體操作,請參見安裝或卸載外掛程式。其中的path參數預設為系統指定路徑,請勿修改。您也可以單擊開啟配置調試擷取path路徑。
Config配置的結構及支援的資料類型的詳細資料(不同版本支援的資料類型可能不同),請參見Structure of a Config File。
重要為了提升安全性,在使用JDBC驅動並配置管道時,需要在jdbc_connection_string參數後面添加
allowLoadLocalInfile=false&autoDeserialize=false
,否則當您在添加Logstash設定檔的時候,調度系統會拋出校正失敗的提示,例如jdbc_connection_string => "jdbc:mysql://xxx.drds.aliyuncs.com:3306/<資料庫名稱>?allowLoadLocalInfile=false&autoDeserialize=false"
。當Config配置中有類似last_run_metadata_path的參數時,需要阿里雲Logstash服務提供檔案路徑。目前後端開放了/ssd/1/<Logstash執行個體ID>/logstash/data/路徑供您測試使用,且該目錄下的資料不會被刪除。因此在使用時,請確保磁碟有充足的使用空間。指定參數路徑後,Logstash會在對應路徑下自動組建檔案,但不支援查看檔案內容。
由於阿里雲Logstash建立在專用網路下,配置過程中涉及到阿里雲系列產品時,建議使用同一專用網路下的執行個體。如果使用外網訪問阿里雲Logstash,需要配置網路與安全,詳細資料,請參見配置NAT公網資料轉送。
建議使用file_extend列印日誌進行測試,不要使用stdout。
單擊下一步,配置管道參數。
參數
說明
管道背景工作執行緒
並存執行管道的Filter和Output的背景工作執行緒數量。當事件出現積壓或CPU未飽和時,請考慮增大線程數,更好地使用CPU處理能力。預設值:執行個體的CPU核心數。
管道批大小
單個背景工作執行緒在嘗試執行Filter和Output前,可以從Input收集的最大事件數目。較大的管道批大小可能會帶來較大的記憶體開銷。您可以設定LS_HEAP_SIZE變數,來增大JVM堆大小,從而有效使用該值。預設值:125。
管道批延遲
建立管道事件批時,將過小的批指派給管道背景工作執行緒之前,要等候每個事件的時間長度,單位為毫秒。預設值:50ms。
隊列類型
用於事件緩衝的內部排隊模型。可選值:
MEMORY:預設值。基於記憶體的傳統隊列。
PERSISTED:基於磁碟的ACKed隊列(持久隊列)。
隊列最大位元組數
請確保該值小於您的磁碟總容量。預設值:1024 MB。
隊列檢查點寫入數
啟用持久性隊列時,在強制執行檢查點之前已寫入事件的最大數目。設定為0,表示無限制。預設值:1024。
警告配置完成後,需要儲存並部署才會生效。儲存並部署操作會觸發執行個體重啟,請在不影響業務的前提下,繼續執行以下步驟。
單擊儲存或者儲存並部署。
儲存:將管道資訊儲存在Logstash裡並觸發執行個體變更,配置不會生效。儲存後,系統會返回管道管理頁面。可在管道列表地區,單擊操作列下的立即部署,觸發執行個體重啟,使配置生效。
儲存並部署:儲存並且部署後,會觸發執行個體重啟,使配置生效。
在建立成功提示框中,單擊確認,在管道列表中查看建立成功的管道。
等待執行個體重啟完成後,即可完成管道任務的建立。
修改管道
修改管道後,在儲存並部署時會觸發執行個體重啟,請在不影響業務的情況下執行操作。
在管道列表地區,單擊目標管道右側操作列下的修改管道。
在修改管道任務頁面,修改管道的Config配置和管道參數配置(管道ID不可修改)。
單擊儲存或儲存並部署,等待執行個體重啟完成後,即可完成管道修改。
複製管道
複製管道後,在儲存並部署時會觸發執行個體重啟,請在不影響業務的情況下執行操作。
在管道列表地區,選擇目標管道右側操作列下的 。
在複製管道任務頁面,修改管道ID,其他配置保持不變。
單擊儲存或儲存並部署,等待執行個體重啟完成後,即可完成管道複製。
刪除管道
管道刪除後無法恢複,正在啟動並執行管道任務會被中斷,請確認後操作。
管道刪除操作會觸發執行個體變更,請在不影響業務的情況下執行操作。
在管道列表地區,選擇目標管道右側操作列下的 。
在刪除管道對話方塊中,查看風險提示。
單擊繼續,等待執行個體變更完成後,即可刪除管道。
相關文檔
建立管道的API文檔:CreatePipelines
通過Logstash遷移資料的最佳實務文檔:通過阿里雲Logstash將自建Elasticsearch資料移轉至阿里雲
通過Logstash同步處理記錄資料的文檔:logstash-input-sls外掛程式使用說明