logstash 常用引數

2022-05-28 16:27:12 字數 3228 閱讀 7400

最近在折騰logstash,其處理流程不過於input、filter、output三個處理流程,以下是我翻譯的幾個常用的處理引數

output流之http

output 

}

input流codec之json格式

input 

}}

被用來解析完全格式的json訊息,如果json資料使用'\n'分割的,則可以使用json_lines

filter流之json

filter 

add_tag => ... # array (optional), default:

remove_field => ... # array (optional), default:

remove_tag => ... # array (optional), default:

source => ... # string (required)

target => ... # string (optional)

}}

對乙個包含json的字段,可以擴充套件成乙個資料結構

add_field: 值型別為hash,預設是{} 空。如果這個過濾成功了,會增加任意field到這個事件。例如:add_field => [ "foo_%", "hello world, from %" ],如果這個事件有乙個欄位somefiled,它的值是hello,那麼我們會增加乙個欄位foo_hello,字段值則用%代替。

add_tag: 值型別為array,預設是 空。執行成功會增加乙個任意的tags到事件。例如:add_tag => [ "foo_%" ]

remove_field: 值型別為array,預設是 空,執行成功,刪除乙個field,例如:remove_tag => [ "foo_%" ]

source: 值型別為字串,預設沒有設定。

filter流之json_encode

filter 

add_tag => ... # array (optional), default:

remove_field => ... # array (optional), default:

remove_tag => ... # array (optional), default:

source => ... # string (required)

target => ... # string (optional)

}}

把乙個field序列化成json格式。

filter流之grep

filter 

add_tag => ... # array (optional), default:

drop => ... # boolean (optional), default: true

ignore_case => ... # boolean (optional), default: false

match => ... # hash (optional), default: {}

negate => ... # boolean (optional), default: false

remove_field => ... # array (optional), default:

remove_tag => ... # array (optional), default:

}}

grep過濾器,如果你不想通過哪些事件可以把它drop掉,或者給每個匹配的事件增加tags和fields。如果negate的值是true,則匹配到的事件會被丟棄。

add_field: 值型別是hash,預設是{} 空。過濾成功,會增加乙個field到事件。例如:add_field => [ "foo_%", "hello world, from %" ]

add_tag: 值型別是array,預設是 空。過濾成功,會增加乙個tags到事件,例如:add_tag => [ "foo_%" ]

drop: 值是布林型別,預設是true。drop掉不匹配的事件,如果該值設定為false,則不會有事件被drop。

ifnore_case: 值型別是布林型別,預設是false。不區分大小寫匹配,類似於grep -i,如果是true,則區分大小寫

match: 值是hash型別,預設是{} 空。乙個hash匹配field=>regxp。如果有多個匹配,則必須所有的都成功。例如:match => [ "message", "hello world" ]

negate: 值是布林型別,預設值是false。類似於grep -v

remove_field: 值是array型別,預設是 空。如果成功,刪除乙個fields。

remove_tag: 值是array型別,同上。

filter流之grok

filter 

add_tag => ... # array (optional), default:

break_on_match => ... # boolean (optional), default: true

drop_if_match => ... # boolean (optional), default: false

keep_empty_captures => ... # boolean (optional), default: false

match => ... # hash (optional), default: {}

named_captures_only => ... # boolean (optional), default: true

overwrite => ... # array (optional), default:

patterns_dir => ... # array (optional), default:

remove_field => ... # array (optional), default:

remove_tag => ... # array (optional), default:

tag_on_failure => ... # array (optional), default: ["_grokparsefailure"]

}}

解析任意文字並且結構化他們。grok目前是logstash中最好的解析非結構化日誌並且結構化他們的工具。這個工具非常適合syslog、apache log、mysql log之類的人們可讀日誌的解析。

logstash引數配置

input配置 file 讀取檔案 input start position logstash從什麼位置讀取檔案資料,預設是結束的位置,也就是說logstash會以類似tail f的形式執行。如果需要匯入原始資料,需要把這個設定為 beginnning logstash就從頭開始讀取.stdin 標...

Logstash常用外掛程式

logstash外掛程式 常用的流行外掛程式 input 外掛程式 filters 外掛程式 output 外掛程式 input 外掛程式 流行的logstash輸入外掛程式 file 檔案流 檔案輸入外掛程式從輸入的內容中流事件,每個事件都被假定為單行。它會自動檢測到旋轉的旋轉並處理它。它保留了讀...

logstash常用外掛程式介紹

在 使用efk快速搭建安全可靠的日誌服務 一文中,我們已經大致介紹了分布式日誌服務的各個元件。但是對於很多實現細節,並未涵蓋到。本文主要介紹logstash用到的外掛程式,以及對外掛程式的離線打包,避免每次手動安裝外掛程式。本文主要分為4部分 外掛程式的離線打包 input外掛程式 filter外掛...