我複製如何篩選{「foo」:「bar」,「bar」:「foo」} grok只獲取foo字段?
{"name":"myapp","hostname":"banana.local","pid":40161,"level":30,"msg":"hi","time":"2013-01-04T18:46:23.851Z","v":0}
從https://github.com/trentm/node-bunyan並將其保存爲我的logs.json。我試圖通過LogStash將兩個字段(名稱和味精)導入ElasticSearch。問題是我依賴於一種我無法完成的過濾器。那麼我已經成功地將這一行作爲一條消息導入,但在我的真實情況下肯定不值得。
這就是說,我如何才能將名稱和味精導入ElasticSearch?我使用http://grokdebug.herokuapp.com/測試了幾種替代方案,以達到一個有用的過濾器,但根本沒有成功。
例如,%{GREEDYDATA:message}會將整行作爲唯一消息,但如何拆分它並忽略名稱和消息字段以外的所有內容?
最後,我刨用在這裏:
input {
file {
type => "my_type"
path => [ "/home/logs/logs.log" ]
codec => "json"
}
}
filter {
grok {
match => { "message" => "data=%{GREEDYDATA:request}"}
}
#### some extra lines here probably
}
output
{
elasticsearch {
codec => json
hosts => "http://127.0.0.1:9200"
index => "indextest"
}
stdout { codec => rubydebug }
}