本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
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。
隊列類型
用于事件緩沖的內部排隊模型??蛇x值:
MEMORY:默認值。基于內存的傳統隊列。
PERSISTED:基于磁盤的ACKed隊列(持久隊列)。
隊列最大字節數
請確保該值小于您的磁盤總容量。默認值:1024 MB。
隊列檢查點寫入數
啟用持久性隊列時,在強制執行檢查點之前已寫入事件的最大數目。設置為0,表示無限制。默認值:1024。
警告配置完成后,需要保存并部署才能生效。保存并部署操作會觸發實例重啟,請在不影響業務的前提下,繼續執行以下步驟。
單擊保存或者保存并部署。
保存:將管道信息保存在Logstash里并觸發實例變更,配置不會生效。保存后,系統會返回管道管理頁面??稍?b data-tag="uicontrol" id="uicontrol-85q-rau-utk" class="uicontrol">管道列表區域,單擊操作列下的立即部署,觸發實例重啟,使配置生效。
保存并部署:保存并且部署后,會觸發實例重啟,使配置生效。
在創建成功提示框中,單擊確認,在管道列表中查看創建成功的管道。
等待實例重啟完成后,即可完成管道任務的創建。
修改管道
修改管道后,在保存并部署時會觸發實例重啟,請在不影響業務的情況下執行操作。
在管道列表區域,單擊目標管道右側操作列下的修改管道。
在修改管道任務頁面,修改管道的Config配置和管道參數配置(管道ID不可修改)。
單擊保存或保存并部署,等待實例重啟完成后,即可完成管道修改。
復制管道
復制管道后,在保存并部署時會觸發實例重啟,請在不影響業務的情況下執行操作。
在管道列表區域,選擇目標管道右側操作列下的 。
在復制管道任務頁面,修改管道ID,其他配置保持不變。
單擊保存或保存并部署,等待實例重啟完成后,即可完成管道復制。
刪除管道
管道刪除后無法恢復,正在運行的管道任務會被中斷,請確認后操作。
管道刪除操作會觸發實例變更,請在不影響業務的情況下執行操作。
在管道列表區域,選擇目標管道右側操作列下的 。
在刪除管道對話框中,查看風險提示。
單擊繼續,等待實例變更完成后,即可刪除管道。
相關文檔
創建管道的API文檔:CreatePipelines
通過Logstash遷移數據的最佳實踐文檔:
- 說明
該文檔同樣適用于跨賬號、跨地域的阿里云Elasticsearch之間的數據遷移。
通過Logstash同步MySQL數據的最佳實踐文檔:通過Logstash將RDS MySQL數據同步至Elasticsearch
通過Logstash同步日志數據的文檔: