您好,登錄后才能下訂單哦!
本篇內容主要講解“如何使用logstash multi pipeline”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用logstash multi pipeline”吧!
假設我們需要從多個渠道來收集數據,比如:1、從文件收集。2、從tcp收集。不同的渠道收集過來的數據需要做不同的處理。那么我們這個時候應該如何處理呢?
使用同一個 logstash 實例,然后將在一個 pipeline 中,接收多個輸入,比如:
input { file {} file {} tcp {} }
這樣雖然可以實現,但是我們 在 filter
和 output
階段如果不同的輸入存在不同的過濾、輸出等,那么這個文件將會非常復雜,需要進行各種判斷,不好維護。
使用多個 logstash 實例,每個 logstash 實例處理不同的輸入。這樣雖然可以實現,但是 logstash 稍微有點耗費性能,也是不可取的。
在同一個 logstash 實例中,使用多個 pipeline,每個 pipeline 處理不同的 input
,filter
和out
。即配置分散在多個配置文件中。
> 此處采用上方的 方案三
來實現。
vim file-pipeline.conf
input { file { path => ["/Users/huan/soft/elastic-stack/logstash/logstash/pipeline.conf/multi-pipeline/file-pipeline.log"] start_position => "end" sincedb_path => "/Users/huan/soft/elastic-stack/logstash/logstash/pipeline.conf/multi-pipeline/sincedb.db" sincedb_write_interval => "15 seconds" mode => "tail" type => "file-pipeline" } } filter { } output { stdout { codec => rubydebug { metadata => true } } }
vim tcp-pipeline.conf
# 開啟一個tcp監聽在9092端口 # id 的值建議設置成唯一的值,這在多個tcp input時,使用監控api時非常有用的。 input { tcp { port => 9202 host => "127.0.0.1" mode => "server" type => "tcp-pipeline" id => "console-tcp" } } filter { } output { stdout { codec => line { charset => "UTF-8" } } }
注意??:
1、tcp 中的 id
的值建議設置成一個唯一的值,這個當我們有多個 tcp
輸入時,在我們使用監控api會非常有用。
vim LS_HOME/config/pipelines.yml
- pipeline.id: file-pipeline path.config: "/Users/huan/soft/elastic-stack/logstash/logstash/pipeline.conf/multi-pipeline/file-pipeline.conf" - pipeline.id: tcp-pipeline queue.type: persisted path.config: "/Users/huan/soft/elastic-stack/logstash/logstash/pipeline.conf/multi-pipeline/tcp-pipeline.conf"
注意??:
1、如果上方的配置文件使用的是一個 pipeline
,比如刪除下方的 tcp-pipeline,將 file-pipeline的 path.config 的值修改成 .../*.conf
,
那么此時會共用 output
,會發現數據重復。
即修改成:
# 這樣是多個配置文件共用一個 pipeline,filter\output等會共享。 - pipeline.id: file-pipeline path.config: "/Users/huan/soft/elastic-stack/logstash/logstash/pipeline.conf/multi-pipeline/*.conf"
bin/logstash
注意??:
1、此處的啟動命令后不可跟 -e
或-f
,如果跟了,則不會使用默認的 config/pipelines.yml
。
cd /Users/huan/soft/elastic-stack/logstash/logstash/pipeline.conf/multi-pipeline echo "觀察控制臺輸出" >> file-pipeline.log
nc 127.0.0.1 9202 123456 -> 觀察控制臺輸出
到此,相信大家對“如何使用logstash multi pipeline”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。