本篇介紹何謂Logstash以及他的功用,並從安裝到使用基本的pipeline
Logstash是個開源的資料收集引擎,具有即時的pipelining功能,
可以把不同來源的資料統一且正規化,並傳送到目的地
es的主力資料來源
可水平擴展的資料處理pipeline,加上與es和kibana的彼此搭配
可隨心所欲增減的pipeline架構
pipeline內可以自由搭配不同的inputs, filters, outputs
社群擴展性以及對開發者很友善的plugin生態
有超過200個可用plugins,而且是可以很彈性的建造自己的plugin
[環境]
OS: Windows 10 (64bit)
可以不確定系統是否安裝java,可使用如下指令確認
java -version
以我為例,
代表還未安裝java
[Note]
需搭配Elastic Support Matrix找出logstash支援的版本,確認後可至official Oracle distribution或到OpenJDK下載java
我選擇安裝 Java SE 11,先至 OpenJDK頁面,找到Java SE 11,點擊 Windows/x64 Java Development Kit
,再來 Logstash會使用 JAVA_HOME
,所以需要設定此參數,如果不會設定的可參考此篇
設定完成之後,確認 java -version
有回傳版本資訊以及 JAVA_HOME
參數有正確設定
官網提供不同環境的下載方式,可參閱此頁
我在Download Logstash 下載zip版本,
下載完成後,解壓縮至想要放的目錄下即可
Logstash pipeline 有兩個必要部分 input
和 output
以及 optional的 filter
,input
: 消化來源的datafilter
: 可用來更改dataoutput
: 把data寫入至目的地
如下為示意圖(截自官網)
用 基本的 Logstash pipeline 來測試一下Logstash是否正常運行
cd logstash-7.9.2
.\bin\logstash -e "input { stdin { } } output { stdout {} }"
-e
參數是可以讓你在command line直接指定設定(configuration),
透過直接在command line指定configuration可以讓我們很快速的測試configuration,
而不用一直打開檔案來修改,此範例的pipeline是使用 standard input(stdin
)當作input,
且設定 standard output(stdout
)
p.s. 以 '
(單引號) 包起來會無法被正確parse (OS: Windows 10)
送出指令後,等待看到 [main] Pipeline started
,就可以試著輸入 Hello world
欲離開Logstash,輸入 Ctrl+C
成功建置基本的 Logstash pipeline了!!!
下篇來建立實際應用的pipeline
小小新手,如有理解錯誤或寫錯再請不吝提醒或糾正
Logstash
Getting Started with Logstash