是什么
Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). -- http://logstash.net
Logstash 就像管道符一樣!
你輸入(就像命令行的 cat
)數(shù)據(jù),然后處理過濾(就像awk
或者uniq
之類)數(shù)據(jù),最后輸出(就像 tee
)到其他地方窑多。
Logstash 不只是一個(gè)input | filter | output
的數(shù)據(jù)流嚼锄,而是一個(gè) input | decode | filter | encode | output
的數(shù)據(jù)流凿跳!
實(shí)現(xiàn)方式
logstash用不同的線程來實(shí)現(xiàn)接受輸入办桨,處理過濾,輸出這些動(dòng)作的想际。
數(shù)據(jù)在不同線程之間以事件的形式流轉(zhuǎn)。
事實(shí)上事件就是一個(gè) Ruby 對(duì)象溪厘,或者更簡(jiǎn)單的理解為就是一個(gè)哈希也行胡本。
logstash會(huì)給事件添加一些額外信息。如
-
@timestamp
標(biāo)記事件的發(fā)生時(shí)間畸悬。是一個(gè)內(nèi)部流轉(zhuǎn)用的joda對(duì)象侧甫,請(qǐng)使用 filters/date 插件 來管理這個(gè)特殊字段。 -
host
標(biāo)記事件發(fā)生在哪里蹋宦。 -
type
標(biāo)記事件的唯一類型披粟。 -
tags
標(biāo)記事件的某方面屬性。這是一個(gè)數(shù)組冷冗,一個(gè)事件可以有多個(gè)標(biāo)簽守屉。
小貼士:每個(gè) logstash 過濾插件,都會(huì)有四個(gè)方法叫 add_tag
, remove_tag
, add_field
和 remove_field
蒿辙。它們?cè)诓寮^濾匹配成功時(shí)生效拇泛。
問題咨詢
logstash 是一個(gè)開放的,極其互助和友好的大家庭思灌。有任何問題俺叭,盡管在 github issue,Google groups泰偿,F(xiàn)reenode#logstash channel 上發(fā)問就好熄守!