當Logstash管道配置出現錯誤時,可能導致輸出資料結果不符合預期,需要反覆去目標端確認資料格式,再返回控制台修改配置,這樣會耗費大量的時間和人力。對於這種情況,您可以通過阿里雲Logstash提供的管道配置調試功能,在管道配置完成後,直接在控制台上查看管道配置的輸出結果,降低調試成本。本文介紹具體的實現方法。
前提條件
已安裝logstash-output-file_extend外掛程式。如果還未安裝,請先安裝該外掛程式,安裝方法請參見安裝或卸載外掛程式。
操作步驟
- 進入Elasticsearch控制台的Logstash頁面。
- 在頂部功能表列處,選擇地區。
在頂部功能表列處,選擇地區,然後在執行個體列表中單擊目標執行個體ID。
在左側導覽列,單擊管道管理。
單擊建立管道。
配置並啟動管道。
在Config配置中,填寫管道ID和Config配置。
參數
說明
管道ID
自訂輸入。輸入後,管道ID會自動對應到file_extend的path路徑下。
Config配置
Config配置由三部分組成:
input:指定待讀取的資料來源,支援Logstash內建的input plugins(除過file外掛程式)。
filter:進一步加工處理資料來源採集到的資料,支援豐富的Filter plugins。
output:將過濾後的資料發送到特定的目的端。阿里雲Logstash不僅支援開源的 Logstash output plugins,還可通過配置特有的file_extend外掛程式,開啟調試日誌功能,即可在管道部署完成後直接查看輸出結果,並進行驗證與調試。
config配置樣本如下。
input { elasticsearch { hosts => "http://es-cn-0pp1jxv000****.elasticsearch.aliyuncs.com:9200" user => "elastic" index => "twitter" password => "<YOUR_PASSWORD>" docinfo => true } } filter { } output { elasticsearch { hosts => ["http://es-cn-000000000i****.elasticsearch.aliyuncs.com:9200"] user => "elastic" password => "<your_password>" index => "%{[@metadata][_index]}" document_id => "%{[@metadata][_id]}" } file_extend { path => "/ssd/1/ls-cn-v0h1kzca****/logstash/logs/debug/test" } }
重要output中的file_extend配置預設為注釋狀態,如果需要使用調試功能,請先刪除注釋。
file_extend中的path參數預設為系統指定路徑,請勿修改。您也可以單擊開啟配置調試擷取path路徑。
path中的{pipelineid}將自動對應為管道ID,請勿修改為其他名稱,否則無法擷取調試日誌。
Elasticsearch input外掛程式可以根據配置的查詢語句,從Elasticsearch叢集讀取文檔資料,適用於大量匯入測試日誌等操作。預設讀取完資料後,同步動作會自動關閉,而阿里雲Logstash需保證進程一直運行,關閉後將會重新啟動進程,導致某些單一任務情境(如logstash input es)存在重複寫資料的情況。設定長時間範圍的定時任務可繞過寫重複的情況,如每年3月5日13點20分觸發任務執行,執行完第一次任務後停止管道運行,可避免重複寫情況。可以通過cron文法配合schedule參數實現,詳情請參見Logstash官網Scheduling介紹。
例如,設定3月5日13點20分執行任務:
schedule => "20 13 5 3 *"
單擊下一步,配置管道參數。
管道配置參數的詳細資料,請參見通過設定檔管理管道。
儲存並部署管道。
儲存:將管道資訊儲存在Logstash裡並觸發執行個體變更,配置不會生效。儲存後,系統會返回管道管理頁面。可在管道列表地區,單擊操作列下的立即部署,觸發執行個體重啟,使配置生效。
儲存並部署:儲存並且部署後,會觸發執行個體重啟,使配置生效。
在建立成功提示框中,單擊確認。
查看調試日誌。
等待執行個體重啟完成後,在管道列表中,單擊目標管道右側操作列下的查看調試日誌。
在日誌查詢頁面的調試日誌頁簽中,擷取管道處理後的輸出資料。
對於多個管道,您可在搜尋方塊中輸入pipelineId: <管道ID>過濾對應的日誌。