logstash 學習小記

2021-09-07 14:20:32 字數 2770 閱讀 3593

標籤(空格分隔): 日誌收集

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). –

可是眾多log 收集framwork,像flume,scribe。fluent,為什麼選用logstash呢?

原因非常簡單:

部署啟動非常easy。僅僅須要有jdk就ok了

配置簡單,無需編碼

支援收集log路徑的正規表示式,不像flume那樣必須寫死要收集的檔名稱。logstash不是,像這樣

path => [「/var/log/.log「]

有個flume vs fluentd vs logstash能夠看看

logstash事件處理流程氛圍三個stages:input ,filter,output。input支援非常多。如file。redis,kafka等等,filter主要是對input的log進行自己想要的處理,output則是輸出到你要儲存log的第三方framework。如kafka,redis,elasticsearch。db什麼的。詳細的檢視官網。

廢話不多說,開始樣例:

1. 最最簡單的樣例

input和output都是標準輸入輸出

[joeywen@192 logstash]$ bin/logstash -e 'input  } output }'

logstash startup completed

>hello world ## 輸入的內容

>2015-08-02

t05:26:

55.564z joeywens-macbook-pro.local hello world ## logstash收集的內容

編寫config檔案

input 

}output

# elasticsearch '

# }

}

輸入是file形式,收集系統日誌,假設有異常發生,通常異常會多行,這裡用codec => multiline 來對出現異常的多行轉換為一行輸入

輸出就是es。或者你也能夠把stdout作為除錯開啟看看,輸出的是什麼內容。執行命令例如以下以及輸出

[joeywen@192 logstash]$ bin/logstash -f sys.conf

logstash startup completed

", "@version" => "1",

"host" => "joeywens-macbook-pro.local",

"path" => "/var/log/system.log",

"type" => "syslog"

}

假設想加入或刪除字段,該怎麼辦?filter就該登場了

filter

filter的功能十分強大。能夠對input的內容做不論什麼更改。input的內容會轉換為乙個叫event的map,裡面存放著key/value對,正如你所示輸出一樣,@timestamp,type,@version, host,message等等,都是event裡面的key,在filter裡面你能夠啟動ruby 程式設計plugin對其做不論什麼更改

如:

input 

}filter

if [type] =~ /^syslog/

}}output

}

如上我對type已syslog開頭的event做更改,呼叫ruby程式設計

看看輸出

[joeywen@192 logstash]$ bin/logstash -f sys.conf

logstash startup completed

能夠看到多了個file_name的字段,

假設相對message做解析的話。須要呼叫grok plugin來做,grok是非常強大外掛程式,比如

input 

}filter % % % %" }

}}

對於message欄位呼叫正則匹配,語法是%

第乙個syntax是正規表示式名稱,第二個是對於匹配成功的字段取名字,這些syntax存在指定的pattern_dir資料夾下的檔案,格式是:

name pattern

如 number \d+

也能夠使用mutate來最event的key和value做更改。包含remove,add,update,rename 等等。詳細的都能夠看看(logstas**檔)[

這裡給個詳細的樣例吧

配置:

input 

}filter

if [type] =~ /^syslog/

grok "}

}mutate

add_field=> "

=>

"hello world, from %"}}}

}output

}

輸出

[joeywen@192 logstash]$ bin/logstash -f sys.conf

logstash startup completed

Logstash學習1 logstash的簡單例子

如何安裝elk redis外掛程式 logstash f test.conf config.test and exit 會列印出錯誤並且會自動退出 7.測試顯示ok的話。執行 logstash f first pipeline.conf config.reload.automatic 這個配置可以使...

Logstash學習 配置語法

logstash 用 來定義區域。區域內可以包括外掛程式區域定義,你可以在乙個區域定義多個外掛程式,外掛程式區域內則可以定義鍵值對設定。logstash支援少量的資料值型別 注意 地域1.2.0的版本雜湊語法跟陣列一樣。欄位是 logstash event 物件的屬性。事件就像乙個雜湊一樣,所以可以...

iBatis學習小記

1.注意sqlmap.config檔案的sqlmap資源的順序 由於ibatis在初始化時,會將所有的資源檔案,按配置的順序讀入,如果資源的順序錯了,會引發以下異常。this sql map does not contain an resultmap named codenode.codetype ...