最近在折騰logstash,其處理流程不過於input、filter、output三個處理流程,以下是我翻譯的幾個常用的處理引數
output流之http
output}
input流codec之json格式
input}}
被用來解析完全格式的json訊息,如果json資料使用'\n'分割的,則可以使用json_lines
filter流之json
filteradd_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
filteradd_tag => ... # array (optional), default:
remove_field => ... # array (optional), default:
remove_tag => ... # array (optional), default:
source => ... # string (required)
target => ... # string (optional)
}}
把乙個field序列化成json格式。
filter流之grep
filteradd_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
filteradd_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外掛...