Logstash工做原理

Logstash事件處理有三個階段:inputs → filters → outputs。是一個接收,處理,轉發日誌的工具。支持系統日誌,webserver日誌,錯誤日誌,應用日誌,總之包括全部能夠拋出來的日誌類型。java

 

Input:輸入數據到logstashgit

一些經常使用的輸入爲:github

file:從文件系統的文件中讀取,相似於tial -f命令web

syslog:在514端口上監聽系統日誌消息,並根據RFC3164標準進行解析正則表達式

redis:從redis service中讀取redis

beats:從filebeat中讀取json

Filters:數據中間處理,對數據進行操做。app

一些經常使用的過濾器爲:elasticsearch

grok:解析任意文本數據,Grok 是 Logstash 最重要的插件。它的主要做用就是將文本格式的字符串,轉換成爲具體的結構化的數據,配合正則表達式使用。內置120多個解析語法。工具

官方提供的grok表達式:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns
grok在線調試:https://grokdebug.herokuapp.com/

mutate:對字段進行轉換。例如對字段進行刪除、替換、修改、重命名等。

drop:丟棄一部分events不進行處理。

clone:拷貝 event,這個過程當中也能夠添加或移除字段。

geoip:添加地理信息(爲前臺kibana圖形化展現使用)

Outputsoutputslogstash處理管道的最末端組件。一個event能夠在處理過程當中通過多重輸出,可是一旦全部的outputs都執行結束,這個event也就完成生命週期。

一些常見的outputs爲:

elasticsearch:能夠高效的保存數據,而且可以方便和簡單的進行查詢。

file:將event數據保存到文件中。

graphite:將event數據發送到圖形化組件中,一個很流行的開源存儲圖形化展現的組件。

Codecscodecs 是基於數據流的過濾器,它能夠做爲inputoutput的一部分配置。Codecs能夠幫助你輕鬆的分割發送過來已經被序列化的數據。

一些常見的codecs:

json:使用json格式對數據進行編碼/解碼。

multiline:將匯多個事件中數據彙總爲一個單一的行。好比:java異常信息和堆棧信息。

相關文章
相關標籤/搜索