Logstash 處理多個input

2022-06-21 18:00:11 字數 1665 閱讀 4362

我們知道logstash的架構如下:

它的整個pipleline分為三個部分:

input外掛程式:提取資料。 這可以來自日誌檔案,tcp或udp偵聽器,若干協議特定外掛程式(如syslog或irc)之一,甚至是排隊系統(如redis,aqmp或kafka)。 此階段使用圍繞事件**的元資料標記傳入事件。

filter 外掛程式:外掛程式轉換並豐富資料

output外掛程式: 將已處理的事件載入到其他內容中,例如elasticsearch或其他文件資料庫,或排隊系統,如redis,aqmp或kafka。 它還可以配置為與api通訊。 也可以將像pagerduty這樣的東西連線到logstash輸出。

這裡的input可以支援多個input,同時多個worker可以處理filter及output:

在今天的介紹中,我們來介紹一下如何使用多個input。

logstash的配置檔案如下:

}為了說明問題的方便,我們使用了兩個input。它們分別對應不同的log檔案。對於這兩個input,我們也使用了不同的type來表示:apache和daily。儘管它們的格式是一樣的,它們共同使用同樣的乙個grok filter,但是我們還是想分別對它們進行處理。為此,我們新增了乙個tag。我們也可以新增乙個field來進行區別。在output的部分,我們根據在filter部分設定的tag來對它們輸出到不同的index裡。

$ pwd

/users/liuxg/elastic/logstash-7.3.0bogon:logstash-7.3.0 liuxg$ sudo ./bin/logstash -f ~/data/multi-input/multi-input.conf

當你們執行這個例子的時候,你們需要根據自己存放multi-input.conf檔案的位置改變而改變上面的命令。

執行的結果如下:

根據顯示的結果可以看出來daily的事件最早被處理及輸出。接著apache的資料才開始處理。在實際的應用中,我們可能有不同的資料來源,比如來自其它beats的監聽某個埠的資料。

我們可以在kibana中看到我們最終的index資料:

Logstash 參考指南(多個管道)

如果需要在同一程序中執行多個管道,logstash提供了一種通過名為pipelines.yml的配置檔案完成此操作的方法,這個檔案必須放在path.settings資料夾,並遵循此結構 pipeline.id my pipeline 1 path.config etc path to p1.conf...

Logstash 多個配置檔案(conf)

logstash 多個配置檔案 conf 對於多個配置的處理方法,有多個處理方法 乙個pipeline含有乙個邏輯的資料流,它從input接收資料,並把它們傳入到佇列裡,經過worker的處理,最後輸出到output。這個output可以是elasticsearch或其它。下面針對這兩種情況,來分別...

Logstash 資料處理引擎

簡介 logstash是一款輕量級的日誌蒐集處理框架,它支援動態的從各種資料來源蒐集資料,並對資料進行過濾 分析 豐富 統一格式等操作,並按照開發者制定的規範傳輸到指定的位置。官網介紹,並茂 小貼士 logstash 依賴 jdk1.8 因此在安裝之前請確保機器已經安裝和配置好 jdk1.8。log...